[AudioToolbox] Make P/Invokes in AudioServices.cs have blittable signatures. (#19841)
Contributes towards #15684.
This commit is contained in:
Родитель
b7ee32350f
Коммит
aa4e24cfc7
|
@ -61,12 +61,12 @@ namespace AudioToolbox {
|
|||
//static extern AudioServicesError AudioServicesGetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, IntPtr specifier, out uint propertyDataSize, IntPtr propertyData);
|
||||
|
||||
[DllImport (Constants.AudioToolboxLibrary)]
|
||||
public static extern AudioServicesError AudioServicesGetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, ref uint specifier, out uint propertyDataSize, out uint propertyData);
|
||||
public unsafe static extern AudioServicesError AudioServicesGetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, uint* specifier, uint* propertyDataSize, uint* propertyData);
|
||||
|
||||
//[DllImport (Constants.AudioToolboxLibrary)]
|
||||
//static extern AudioServicesError AudioServicesSetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, IntPtr specifier, uint propertyDataSize, IntPtr propertyData);
|
||||
|
||||
[DllImport (Constants.AudioToolboxLibrary)]
|
||||
public static extern AudioServicesError AudioServicesSetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, ref uint specifier, uint propertyDataSize, ref uint propertyData);
|
||||
public unsafe static extern AudioServicesError AudioServicesSetProperty (AudioServicesPropertyKey propertyId, uint specifierSize, uint* specifier, uint propertyDataSize, uint* propertyData);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,8 +101,12 @@ namespace AudioToolbox {
|
|||
get {
|
||||
uint out_size = sizeof (uint);
|
||||
uint data;
|
||||
AudioServicesError res;
|
||||
var soundId = this.soundId;
|
||||
|
||||
var res = AudioServices.AudioServicesGetProperty (AudioServicesPropertyKey.IsUISound, sizeof (AudioServicesPropertyKey), ref soundId, out out_size, out data);
|
||||
unsafe {
|
||||
res = AudioServices.AudioServicesGetProperty (AudioServicesPropertyKey.IsUISound, sizeof (AudioServicesPropertyKey), &soundId, &out_size, &data);
|
||||
}
|
||||
if (res != AudioServicesError.None)
|
||||
throw new ArgumentException (res.ToString ());
|
||||
|
||||
|
@ -111,8 +115,12 @@ namespace AudioToolbox {
|
|||
|
||||
set {
|
||||
uint data = value ? (uint) 1 : 0;
|
||||
AudioServicesError res;
|
||||
var soundId = this.soundId;
|
||||
|
||||
var res = AudioServices.AudioServicesSetProperty (AudioServicesPropertyKey.IsUISound, sizeof (AudioServicesPropertyKey), ref soundId, sizeof (uint), ref data);
|
||||
unsafe {
|
||||
res = AudioServices.AudioServicesSetProperty (AudioServicesPropertyKey.IsUISound, sizeof (AudioServicesPropertyKey), &soundId, sizeof (uint), &data);
|
||||
}
|
||||
if (res != AudioServicesError.None)
|
||||
throw new ArgumentException (res.ToString ());
|
||||
}
|
||||
|
@ -122,8 +130,11 @@ namespace AudioToolbox {
|
|||
get {
|
||||
uint out_size = sizeof (uint);
|
||||
uint data;
|
||||
|
||||
var res = AudioServices.AudioServicesGetProperty (AudioServicesPropertyKey.CompletePlaybackIfAppDies, sizeof (AudioServicesPropertyKey), ref soundId, out out_size, out data);
|
||||
AudioServicesError res;
|
||||
var soundId = this.soundId;
|
||||
unsafe {
|
||||
res = AudioServices.AudioServicesGetProperty (AudioServicesPropertyKey.CompletePlaybackIfAppDies, sizeof (AudioServicesPropertyKey), &soundId, &out_size, &data);
|
||||
}
|
||||
if (res != AudioServicesError.None)
|
||||
throw new ArgumentException (res.ToString ());
|
||||
|
||||
|
@ -132,8 +143,11 @@ namespace AudioToolbox {
|
|||
|
||||
set {
|
||||
uint data = value ? (uint) 1 : 0;
|
||||
|
||||
var res = AudioServices.AudioServicesSetProperty (AudioServicesPropertyKey.CompletePlaybackIfAppDies, sizeof (AudioServicesPropertyKey), ref soundId, sizeof (uint), ref data);
|
||||
AudioServicesError res;
|
||||
var soundId = this.soundId;
|
||||
unsafe {
|
||||
res = AudioServices.AudioServicesSetProperty (AudioServicesPropertyKey.CompletePlaybackIfAppDies, sizeof (AudioServicesPropertyKey), &soundId, sizeof (uint), &data);
|
||||
}
|
||||
if (res != AudioServicesError.None)
|
||||
throw new ArgumentException (res.ToString ());
|
||||
}
|
||||
|
|
|
@ -76,8 +76,6 @@ namespace Cecil.Tests {
|
|||
"AudioToolbox.AudioQueueStatus AudioToolbox.AudioQueueProcessingTap::AudioQueueProcessingTapGetSourceAudio(System.IntPtr,System.UInt32,AudioToolbox.AudioTimeStamp&,AudioToolbox.AudioQueueProcessingTapFlags&,System.UInt32&,System.IntPtr)",
|
||||
"AudioToolbox.AudioQueueStatus AudioToolbox.OutputAudioQueue::AudioQueueOfflineRender(System.IntPtr,AudioToolbox.AudioTimeStamp&,AudioToolbox.AudioQueueBuffer*,System.Int32)",
|
||||
"AudioToolbox.AudioQueueStatus AudioToolbox.OutputAudioQueue::AudioQueueSetOfflineRenderFormat(System.IntPtr,AudioToolbox.AudioStreamBasicDescription&,System.IntPtr)",
|
||||
"AudioToolbox.AudioServicesError AudioToolbox.AudioServices::AudioServicesGetProperty(AudioToolbox.AudioServicesPropertyKey,System.UInt32,System.UInt32&,System.UInt32&,System.UInt32&)",
|
||||
"AudioToolbox.AudioServicesError AudioToolbox.AudioServices::AudioServicesSetProperty(AudioToolbox.AudioServicesPropertyKey,System.UInt32,System.UInt32&,System.UInt32,System.UInt32&)",
|
||||
"AudioToolbox.MusicPlayerStatus AudioToolbox.MusicSequence::MusicSequenceBarBeatTimeToBeats(System.IntPtr,AudioToolbox.CABarBeatTime,System.Double&)",
|
||||
"AudioToolbox.MusicPlayerStatus AudioToolbox.MusicSequence::MusicSequenceBeatsToBarBeatTime(System.IntPtr,System.Double,System.Int32,AudioToolbox.CABarBeatTime&)",
|
||||
"AudioToolbox.MusicPlayerStatus AudioToolbox.MusicSequence::MusicSequenceFileCreateData(System.IntPtr,AudioToolbox.MusicSequenceFileTypeID,AudioToolbox.MusicSequenceFileFlags,System.UInt16,System.IntPtr&)",
|
||||
|
|
|
@ -53,6 +53,16 @@ namespace MonoTouchFixtures.AudioToolbox {
|
|||
using (var ss = SystemSound.FromFile (NSUrl.FromFilename (path))) {
|
||||
Assert.That (ss.IsUISound, Is.True, "#1");
|
||||
Assert.That (ss.CompletePlaybackIfAppDies, Is.False, "#2");
|
||||
|
||||
ss.CompletePlaybackIfAppDies = true;
|
||||
ss.IsUISound = false;
|
||||
Assert.That (ss.IsUISound, Is.False, "#1 B");
|
||||
Assert.That (ss.CompletePlaybackIfAppDies, Is.True, "#2 B");
|
||||
|
||||
ss.CompletePlaybackIfAppDies = false;
|
||||
ss.IsUISound = true;
|
||||
Assert.That (ss.IsUISound, Is.True, "#1 C");
|
||||
Assert.That (ss.CompletePlaybackIfAppDies, Is.False, "#2 C");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче