Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AudioToolbox] Make P/Invokes in AudioSession.cs have blittable signatures. #19834

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions src/AudioToolbox/AudioSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -345,39 +345,39 @@ static void Interruption (IntPtr userData, uint state)
}

[DllImport (Constants.AudioToolboxLibrary)]
extern static OSStatus AudioSessionSetActive ([MarshalAs (UnmanagedType.I1)] bool active);
extern static OSStatus AudioSessionSetActive (byte active);

public static void SetActive (bool active)
{
int k = AudioSessionSetActive (active);
int k = AudioSessionSetActive (active ? (byte) 1 : (byte) 0);
if (k != 0)
throw new AudioSessionException (k);
}

[DllImport (Constants.AudioToolboxLibrary)]
extern static AudioSessionErrors AudioSessionSetActiveWithFlags ([MarshalAs (UnmanagedType.I1)] bool active, AudioSessionActiveFlags inFlags);
extern static AudioSessionErrors AudioSessionSetActiveWithFlags (byte active, AudioSessionActiveFlags inFlags);

public static AudioSessionErrors SetActive (bool active, AudioSessionActiveFlags flags)
{
return AudioSessionSetActiveWithFlags (active, flags);
return AudioSessionSetActiveWithFlags (active ? (byte) 1 : (byte) 0, flags);
}

[DllImport (Constants.AudioToolboxLibrary)]
extern static OSStatus AudioSessionGetProperty (AudioSessionProperty id, ref int size, IntPtr data);
unsafe extern static OSStatus AudioSessionGetProperty (AudioSessionProperty id, int* size, IntPtr data);

[DllImport (Constants.AudioToolboxLibrary)]
extern static OSStatus AudioSessionSetProperty (AudioSessionProperty id, int size, IntPtr data);

[DllImport (Constants.AudioToolboxLibrary)]
// deprecated in iOS7 but not exposed / used anywhere
extern static OSStatus AudioSessionGetPropertySize (AudioSessionProperty id, out int size);
unsafe extern static OSStatus AudioSessionGetPropertySize (AudioSessionProperty id, int* size);

static double GetDouble (AudioSessionProperty property)
{
unsafe {
double val = 0;
int size = 8;
int k = AudioSessionGetProperty (property, ref size, (IntPtr) (&val));
int k = AudioSessionGetProperty (property, &size, (IntPtr) (&val));
if (k != 0)
throw new AudioSessionException (k);

Expand All @@ -390,7 +390,7 @@ static float GetFloat (AudioSessionProperty property)
unsafe {
float val = 0;
int size = 4;
int k = AudioSessionGetProperty (property, ref size, (IntPtr) (&val));
int k = AudioSessionGetProperty (property, &size, (IntPtr) (&val));
if (k != 0)
throw new AudioSessionException (k);
return val;
Expand All @@ -402,7 +402,7 @@ static int GetInt (AudioSessionProperty property)
unsafe {
int val = 0;
int size = 4;
int k = AudioSessionGetProperty (property, ref size, (IntPtr) (&val));
int k = AudioSessionGetProperty (property, &size, (IntPtr) (&val));
if (k != 0)
throw new AudioSessionException (k);

Expand All @@ -415,7 +415,7 @@ static IntPtr GetIntPtr (AudioSessionProperty property)
unsafe {
IntPtr val;
int size = IntPtr.Size;
int k = AudioSessionGetProperty (property, ref size, (IntPtr) (&val));
int k = AudioSessionGetProperty (property, &size, (IntPtr) (&val));
if (k != 0)
throw new AudioSessionException (k);

Expand Down
Loading