Chris@0
|
1 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 A waveform viewer and audio annotation editor.
|
Chris@2
|
5 Chris Cannam, Queen Mary University of London, 2005-2006
|
Chris@0
|
6
|
Chris@0
|
7 This is experimental software. Not for distribution.
|
Chris@0
|
8 */
|
Chris@0
|
9
|
Chris@0
|
10 #ifndef _AUDIO_CORE_AUDIO_TARGET_H_
|
Chris@0
|
11 #define _AUDIO_CORE_AUDIO_TARGET_H_
|
Chris@0
|
12
|
Chris@0
|
13 #ifdef HAVE_COREAUDIO
|
Chris@0
|
14
|
Chris@0
|
15 #include <jack/jack.h>
|
Chris@0
|
16 #include <vector>
|
Chris@0
|
17
|
Chris@0
|
18 #include <CoreAudio/CoreAudio.h>
|
Chris@0
|
19 #include <CoreAudio/CoreAudioTypes.h>
|
Chris@0
|
20 #include <AudioUnit/AUComponent.h>
|
Chris@0
|
21 #include <AudioUnit/AudioUnitProperties.h>
|
Chris@0
|
22 #include <AudioUnit/AudioUnitParameters.h>
|
Chris@0
|
23 #include <AudioUnit/AudioOutputUnit.h>
|
Chris@0
|
24
|
Chris@0
|
25 #include "AudioCallbackPlayTarget.h"
|
Chris@0
|
26
|
Chris@0
|
27 class AudioCallbackPlaySource;
|
Chris@0
|
28
|
Chris@0
|
29 class AudioCoreAudioTarget : public AudioCallbackPlayTarget
|
Chris@0
|
30 {
|
Chris@0
|
31 Q_OBJECT
|
Chris@0
|
32
|
Chris@0
|
33 public:
|
Chris@0
|
34 AudioCoreAudioTarget(AudioCallbackPlaySource *source);
|
Chris@0
|
35 ~AudioCoreAudioTarget();
|
Chris@0
|
36
|
Chris@0
|
37 virtual bool isOK() const;
|
Chris@0
|
38
|
Chris@0
|
39 public slots:
|
Chris@0
|
40 virtual void sourceModelReplaced();
|
Chris@0
|
41
|
Chris@0
|
42 protected:
|
Chris@0
|
43 OSStatus process(void *data,
|
Chris@0
|
44 AudioUnitRenderActionFlags *flags,
|
Chris@0
|
45 const AudioTimeStamp *timestamp,
|
Chris@0
|
46 unsigned int inbus,
|
Chris@0
|
47 unsigned int inframes,
|
Chris@0
|
48 AudioBufferList *ioData);
|
Chris@0
|
49
|
Chris@0
|
50 int m_bufferSize;
|
Chris@0
|
51 int m_sampleRate;
|
Chris@0
|
52 int m_latency;
|
Chris@0
|
53 };
|
Chris@0
|
54
|
Chris@0
|
55 #endif /* HAVE_COREAUDIO */
|
Chris@0
|
56
|
Chris@0
|
57 #endif
|
Chris@0
|
58
|