DeviceSpeaker.h

00001 /*---------------------------------------------------------------------------*
00002  *  DeviceSpeaker.h                                                          *
00003  *                                                                           *
00004  *  Copyright 2007 Nuance Communciations, Inc.                               *
00005  *                                                                           *
00006  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
00007  *  you may not use this file except in compliance with the License.         *
00008  *                                                                           *
00009  *  You may obtain a copy of the License at                                  *
00010  *      http://www.apache.org/licenses/LICENSE-2.0                           *
00011  *                                                                           *
00012  *  Unless required by applicable law or agreed to in writing, software      *
00013  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
00014  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
00015  *  See the License for the specific language governing permissions and      *
00016  *  limitations under the License.                                           *
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        * @see android::speech::recognition::SmartProxy
00118        */
00119       DECLARE_SMARTPROXY(UAPI_EXPORT, DeviceSpeakerProxy, SmartProxy, DeviceSpeaker)
00120     }
00121   }
00122 }
00123 
00124 #endif

Generated on Thu May 1 17:16:37 2008 for UAPI by  doxygen 1.5.3