sipxmedialib  Version 3.3
MpAndroidX_XAudioRecord.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2010-2013 SIPez LLC. All rights reserved.
3 //
4 // $$
6 
7 // Author: Dan Petrie <dpetrie AT SIPez DOT com>
8 
9 #ifndef _MpAndroidX_XAudioRecord_h_
10 #define _MpAndroidX_XAudioRecord_h_
11 
12 // Must be included before Android utils/log.h so we define LOG_TAG first
13 
14 #ifdef ANDROID_2_0
15 # define MP_ANDROID_AUDIO_RECORD MpAndroid2_0AudioRecord
16 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid2_0AudioRecord"
17 # ifndef LOG_TAG
18 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
19 # endif
20 #elif ANDROID_2_3
21 # define MP_ANDROID_AUDIO_RECORD MpAndroid2_3AudioRecord
22 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid2_3AudioRecord"
23 # ifndef LOG_TAG
24 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
25 # endif
26 #elif ANDROID_2_3_4
27 # define MP_ANDROID_AUDIO_RECORD MpAndroid2_3_4AudioRecord
28 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid2_3_4AudioRecord"
29 # ifndef LOG_TAG
30 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
31 # endif
32 #elif ANDROID_4_0_1
33 # define MP_ANDROID_AUDIO_RECORD MpAndroid4_0_1AudioRecord
34 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid4_0_1AudioRecord"
35 # ifndef LOG_TAG
36 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
37 # endif
38 #elif ANDROID_4_1_1
39 # define MP_ANDROID_AUDIO_RECORD MpAndroid4_1_1AudioRecord
40 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid4_1_1AudioRecord"
41 # ifndef LOG_TAG
42 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
43 # endif
44 #elif ANDROID_4_2_1
45 # define MP_ANDROID_AUDIO_RECORD MpAndroid4_2_1AudioRecord
46 # define QUOTED_MP_ANDROID_AUDIO_RECORD "MpAndroid4_2_1AudioRecord"
47 # ifndef LOG_TAG
48 # define LOG_TAG QUOTED_MP_ANDROID_AUDIO_RECORD
49 # endif
50 #else
51 # error Unsupported version of Android AudioRecord
52 #endif
53 
54 // SIPX INCLUDES
56 
57 // SYSTEM INCLUDES
58 #include <media/AudioRecord.h>
59 
60 // DEFINES
61 // MACROS
62 // EXTERNAL FUNCTIONS
64 
65 using namespace android;
66 
67 // EXTERNAL VARIABLES
68 // CONSTANTS
69 // STRUCTS
70 // TYPEDEFS
71 // FORWARD DECLARATIONS
72 
73 
81 {
82 /* //////////////////////////// PUBLIC //////////////////////////////////// */
83 public:
85 
87 
88 /* ============================ CREATORS ================================== */
90 
91 
92 private:
95 
96 public:
98  virtual ~MP_ANDROID_AUDIO_RECORD();
99 
101 
102 /* ============================ MANIPULATORS ============================== */
104 
105  virtual int /*status_t*/ start();
106 
107  virtual void stop();
108 
109  virtual int /*status_t*/ set(int inputSource,
110  int sampleRate,
111  sipXcallback_t audioCallback,
112  void* user,
113  int notificationFrames);
115 
116 /* ============================ ACCESSORS ================================= */
118 
119 
121 
122 /* ============================ INQUIRY =================================== */
124 
125 
127 
128 /* //////////////////////////// PROTECTED ///////////////////////////////// */
129 protected:
130 
131  AudioRecord* mpAudioRecord;
132 
133 /* //////////////////////////// PRIVATE /////////////////////////////////// */
134 private:
135 
137  MP_ANDROID_AUDIO_RECORD(const MP_ANDROID_AUDIO_RECORD& rMpAndroidAudioRecord);
138 
141 
142 };
143 
144 /* ============================ INLINE METHODS ============================ */
145 
146 #endif // _MpAndroidX_XAudioRecord_h_
Audio input driver for Android OS.
Definition: MpAndroidX_XAudioRecord.h:80
void(* sipXcallback_t)(int event, void *user, void *info)
Definition: MpAndroidAudioBindingInterface.h:32
MP_ANDROID_AUDIO_BINDING_INTERFACE & operator=(const MP_ANDROID_AUDIO_BINDING_INTERFACE &rhs)
Assignment operator (not implemented for this class)
Audio interface for Android OS version specific differences.
Definition: MpAndroidX_XAudioBinding.h:95
MpAndroidAudioRecord * createAndroidAudioRecord()
Definition: MpAndroidX_XAudioRecord.cpp:37
Audio input driver for Android OS.
Definition: MpAndroidAudioRecord.h:34
AudioRecord * mpAudioRecord
Definition: MpAndroidX_XAudioRecord.h:131