00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef __UAPI__MICROPHONE
00021 #define __UAPI__MICROPHONE
00022 
00023 #include "exports.h"
00024 #include "AudioSource.h"
00025 #include "Codec.h"
00026 #include "Singleton.h"
00027 #include "SmartProxy.h"
00028 
00029 namespace android
00030 {
00031   namespace speech
00032   {
00033     namespace recognition
00034     {
00035       class AudioSourceListenerProxy;
00036       class System;
00037     }
00038   }
00039 }
00040 
00041 
00042 namespace android
00043 {
00044   namespace speech
00045   {
00046     namespace recognition
00047     {
00048       class MicrophoneProxy;
00052       class Microphone: public AudioSource, public Singleton
00053       {
00054         public:
00061           UAPI_EXPORT static MicrophoneProxy getInstance(ReturnCode::Type& returnCode);
00062           
00069           virtual void setCodec(Codec::Type recordingCodec, ReturnCode::Type& returnCode) = 0;
00070           
00077           virtual void setListener(AudioSourceListenerProxy& listener, ReturnCode::Type& returnCode) = 0;
00078           
00079         protected:
00083           Microphone();
00087           virtual ~Microphone();
00088           
00092           static Microphone* instance;
00093         private:
00097           Microphone& operator=(Microphone&);
00098           
00099           friend class MicrophoneProxy;
00100       };
00101       
00105       DECLARE_SMARTPROXY(UAPI_EXPORT, MicrophoneProxy, AudioSourceProxy, Microphone)
00106     }
00107   }
00108 }
00109 
00110 #endif