00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef __UAPI__DEVICESPEAKER
00021 #define __UAPI__DEVICESPEAKER
00022 
00023 #include "exports.h"
00024 #include "ReturnCode.h"
00025 #include "Codec.h"
00026 #include "Singleton.h"
00027 #include "SmartProxy.h"
00028 
00029 
00030 namespace android
00031 {
00032   namespace speech
00033   {
00034     namespace recognition
00035     {
00036       class DeviceSpeakerListenerProxy;
00037       class System;
00038       class AudioStreamProxy;
00039     }
00040   }
00041 }
00042 namespace android
00043 {
00044   namespace speech
00045   {
00046     namespace recognition
00047     {
00048       class DeviceSpeakerProxy;
00052       class DeviceSpeaker : public Singleton
00053       {
00054         public:
00061           UAPI_EXPORT static DeviceSpeakerProxy getInstance(ReturnCode::Type& returnCode);
00062           
00072           virtual void start(AudioStreamProxy& audio, ReturnCode::Type& returnCode) = 0;
00073           
00080           virtual void stop(ReturnCode::Type& returnCode) = 0;
00081           
00088           virtual void setCodec(Codec::Type playbackCodec, ReturnCode::Type& returnCode) = 0;
00089           
00096           virtual void setListener(DeviceSpeakerListenerProxy& listener, ReturnCode::Type& returnCode) = 0;
00097           
00098         protected:
00102           DeviceSpeaker();
00106           virtual ~DeviceSpeaker();
00107           
00111           static DeviceSpeaker* instance;
00112           
00113           friend class DeviceSpeakerProxy;
00114       };
00115       
00116       
00117 
00118 
00119       DECLARE_SMARTPROXY(UAPI_EXPORT, DeviceSpeakerProxy, SmartProxy, DeviceSpeaker)
00120     }
00121   }
00122 }
00123 
00124 #endif