Commit 8973167f authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

auhal: Support 10.6 64bits framework.

parent 18b554b5
...@@ -40,25 +40,43 @@ ...@@ -40,25 +40,43 @@
#define __MACHINEEXCEPTIONS__ #define __MACHINEEXCEPTIONS__
#include <CoreAudio/CoreAudio.h> #include <CoreAudio/CoreAudio.h>
#include <AudioUnit/AudioUnit.h>
#include <AudioUnit/AudioUnitProperties.h> #include <AudioUnit/AudioUnitProperties.h>
#include <AudioUnit/AudioUnitParameters.h> #include <AudioUnit/AudioUnitParameters.h>
#include <AudioUnit/AudioOutputUnit.h> #include <AudioUnit/AudioOutputUnit.h>
#include <AudioToolbox/AudioFormat.h> #include <AudioToolbox/AudioFormat.h>
#ifndef verify_noerr
#define verify_noerr(a) assert((a) == noErr)
#endif
#if AUDIO_UNIT_VERSION < 1060
#define AudioComponent Component
#define AudioComponentDescription ComponentDescription
#define AudioComponentFindNext FindNextComponent
#define AudioComponentInstanceNew OpenAComponent
#define AudioComponentInstanceDispose CloseComponent
#define AudioComponentInstanceNew OpenAComponent
#define AudioComponentInstanceNew OpenAComponent
#else
#include <AudioUnit/AudioComponent.h>
#endif
#define STREAM_FORMAT_MSG( pre, sfm ) \ #define STREAM_FORMAT_MSG( pre, sfm ) \
pre "[%ld][%4.4s][%ld][%ld][%ld][%ld][%ld][%ld]", \ pre "[%u][%4.4s][%u][%u][%u][%u][%u][%u]", \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \ (UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \ sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \ sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mChannelsPerFrame, sfm.mBitsPerChannel sfm.mChannelsPerFrame, sfm.mBitsPerChannel
#define STREAM_FORMAT_MSG_FULL( pre, sfm ) \ #define STREAM_FORMAT_MSG_FULL( pre, sfm ) \
pre ":\nsamplerate: [%ld]\nFormatID: [%4.4s]\nFormatFlags: [%ld]\nBypesPerPacket: [%ld]\nFramesPerPacket: [%ld]\nBytesPerFrame: [%ld]\nChannelsPerFrame: [%ld]\nBitsPerChannel[%ld]", \ pre ":\nsamplerate: [%u]\nFormatID: [%4.4s]\nFormatFlags: [%u]\nBypesPerPacket: [%u]\nFramesPerPacket: [%u]\nBytesPerFrame: [%u]\nChannelsPerFrame: [%u]\nBitsPerChannel[%u]", \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \ (UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \ sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \ sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mChannelsPerFrame, sfm.mBitsPerChannel sfm.mChannelsPerFrame, sfm.mBitsPerChannel
#define FRAMESIZE 2048
#define BUFSIZE 0xffffff #define BUFSIZE 0xffffff
#define AOUT_VAR_SPDIF_FLAG 0xf00000 #define AOUT_VAR_SPDIF_FLAG 0xf00000
...@@ -86,7 +104,7 @@ struct aout_sys_t ...@@ -86,7 +104,7 @@ struct aout_sys_t
mtime_t clock_diff; /* Difference between VLC clock and Device clock */ mtime_t clock_diff; /* Difference between VLC clock and Device clock */
/* AUHAL specific */ /* AUHAL specific */
Component au_component; /* The Audiocomponent we use */ AudioComponent au_component; /* The Audiocomponent we use */
AudioUnit au_unit; /* The AudioUnit we use */ AudioUnit au_unit; /* The AudioUnit we use */
uint8_t p_remainder_buffer[BUFSIZE]; uint8_t p_remainder_buffer[BUFSIZE];
uint32_t i_read_bytes; uint32_t i_read_bytes;
...@@ -129,6 +147,7 @@ static int AudioDeviceCallback ( vlc_object_t *, const char *, ...@@ -129,6 +147,7 @@ static int AudioDeviceCallback ( vlc_object_t *, const char *,
vlc_value_t, vlc_value_t, void * ); vlc_value_t, vlc_value_t, void * );
/***************************************************************************** /*****************************************************************************
* Module descriptor * Module descriptor
*****************************************************************************/ *****************************************************************************/
...@@ -281,7 +300,7 @@ static int OpenAnalog( aout_instance_t *p_aout ) ...@@ -281,7 +300,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
OSStatus err = noErr; OSStatus err = noErr;
UInt32 i_param_size = 0, i = 0; UInt32 i_param_size = 0, i = 0;
int i_original; int i_original;
ComponentDescription desc; AudioComponentDescription desc;
AudioStreamBasicDescription DeviceFormat; AudioStreamBasicDescription DeviceFormat;
AudioChannelLayout *layout; AudioChannelLayout *layout;
AudioChannelLayout new_layout; AudioChannelLayout new_layout;
...@@ -294,14 +313,14 @@ static int OpenAnalog( aout_instance_t *p_aout ) ...@@ -294,14 +313,14 @@ static int OpenAnalog( aout_instance_t *p_aout )
desc.componentFlags = 0; desc.componentFlags = 0;
desc.componentFlagsMask = 0; desc.componentFlagsMask = 0;
p_sys->au_component = FindNextComponent( NULL, &desc ); p_sys->au_component = AudioComponentFindNext( NULL, &desc );
if( p_sys->au_component == NULL ) if( p_sys->au_component == NULL )
{ {
msg_Warn( p_aout, "we cannot find our HAL component" ); msg_Warn( p_aout, "we cannot find our HAL component" );
return false; return false;
} }
err = OpenAComponent( p_sys->au_component, &p_sys->au_unit ); err = AudioComponentInstanceNew( p_sys->au_component, &p_sys->au_unit );
if( err != noErr ) if( err != noErr )
{ {
msg_Warn( p_aout, "we cannot open our HAL component" ); msg_Warn( p_aout, "we cannot open our HAL component" );
...@@ -550,7 +569,7 @@ static int OpenAnalog( aout_instance_t *p_aout ) ...@@ -550,7 +569,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
/* Do the last VLC aout setups */ /* Do the last VLC aout setups */
aout_FormatPrepare( &p_aout->output.output ); aout_FormatPrepare( &p_aout->output.output );
p_aout->output.i_nb_samples = 2048; p_aout->output.i_nb_samples = FRAMESIZE;
aout_VolumeSoftInit( p_aout ); aout_VolumeSoftInit( p_aout );
/* set the IOproc callback */ /* set the IOproc callback */
...@@ -831,7 +850,7 @@ static void Close( vlc_object_t * p_this ) ...@@ -831,7 +850,7 @@ static void Close( vlc_object_t * p_this )
{ {
verify_noerr( AudioOutputUnitStop( p_sys->au_unit ) ); verify_noerr( AudioOutputUnitStop( p_sys->au_unit ) );
verify_noerr( AudioUnitUninitialize( p_sys->au_unit ) ); verify_noerr( AudioUnitUninitialize( p_sys->au_unit ) );
verify_noerr( CloseComponent( p_sys->au_unit ) ); verify_noerr( AudioComponentInstanceDispose( p_sys->au_unit ) );
} }
if( p_sys->b_digital ) if( p_sys->b_digital )
...@@ -942,7 +961,7 @@ static void Probe( aout_instance_t * p_aout ) ...@@ -942,7 +961,7 @@ static void Probe( aout_instance_t * p_aout )
goto error; goto error;
} }
msg_Dbg( p_aout, "system has [%ld] device(s)", p_sys->i_devices ); msg_Dbg( p_aout, "system has [%u] device(s)", p_sys->i_devices );
/* Allocate DeviceID array */ /* Allocate DeviceID array */
p_devices = (AudioDeviceID*)malloc( sizeof(AudioDeviceID) * p_sys->i_devices ); p_devices = (AudioDeviceID*)malloc( sizeof(AudioDeviceID) * p_sys->i_devices );
...@@ -993,7 +1012,7 @@ static void Probe( aout_instance_t * p_aout ) ...@@ -993,7 +1012,7 @@ static void Probe( aout_instance_t * p_aout )
&i_param_size, psz_name); &i_param_size, psz_name);
if( err ) goto error; if( err ) goto error;
msg_Dbg( p_aout, "DevID: %#lx DevName: %s", p_devices[i], psz_name ); msg_Dbg( p_aout, "DevID: %u DevName: %s", p_devices[i], psz_name );
if( !AudioDeviceHasOutput( p_devices[i]) ) if( !AudioDeviceHasOutput( p_devices[i]) )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment