1 /* //device/servers/AudioFlinger/AudioHardwareStub.h 2 ** 3 ** Copyright 2007, The Android Open Source Project 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 #ifndef ANDROID_AUDIO_HARDWARE_STUB_H 19 #define ANDROID_AUDIO_HARDWARE_STUB_H 20 21 #include <stdint.h> 22 #include <sys/types.h> 23 24 #include <hardware_legacy/AudioHardwareBase.h> 25 26 namespace android { 27 28 // ---------------------------------------------------------------------------- 29 30 class AudioStreamOutStub : public AudioStreamOut { 31 public: 32 virtual status_t set(int *pFormat, uint32_t *pChannels, uint32_t *pRate); sampleRate()33 virtual uint32_t sampleRate() const { return 44100; } bufferSize()34 virtual size_t bufferSize() const { return 4096; } channels()35 virtual uint32_t channels() const { return AudioSystem::CHANNEL_OUT_STEREO; } format()36 virtual int format() const { return AudioSystem::PCM_16_BIT; } latency()37 virtual uint32_t latency() const { return 0; } setVolume(float left,float right)38 virtual status_t setVolume(float left, float right) { return NO_ERROR; } 39 virtual ssize_t write(const void* buffer, size_t bytes); 40 virtual status_t standby(); 41 virtual status_t dump(int fd, const Vector<String16>& args); setParameters(const String8 & keyValuePairs)42 virtual status_t setParameters(const String8& keyValuePairs) { return NO_ERROR;} 43 virtual String8 getParameters(const String8& keys); 44 }; 45 46 class AudioStreamInStub : public AudioStreamIn { 47 public: 48 virtual status_t set(int *pFormat, uint32_t *pChannels, uint32_t *pRate, AudioSystem::audio_in_acoustics acoustics); sampleRate()49 virtual uint32_t sampleRate() const { return 8000; } bufferSize()50 virtual size_t bufferSize() const { return 320; } channels()51 virtual uint32_t channels() const { return AudioSystem::CHANNEL_IN_MONO; } format()52 virtual int format() const { return AudioSystem::PCM_16_BIT; } setGain(float gain)53 virtual status_t setGain(float gain) { return NO_ERROR; } 54 virtual ssize_t read(void* buffer, ssize_t bytes); 55 virtual status_t dump(int fd, const Vector<String16>& args); standby()56 virtual status_t standby() { return NO_ERROR; } setParameters(const String8 & keyValuePairs)57 virtual status_t setParameters(const String8& keyValuePairs) { return NO_ERROR;} 58 virtual String8 getParameters(const String8& keys); 59 }; 60 61 class AudioHardwareStub : public AudioHardwareBase 62 { 63 public: 64 AudioHardwareStub(); 65 virtual ~AudioHardwareStub(); 66 virtual status_t initCheck(); 67 virtual status_t setVoiceVolume(float volume); 68 virtual status_t setMasterVolume(float volume); 69 70 // mic mute setMicMute(bool state)71 virtual status_t setMicMute(bool state) { mMicMute = state; return NO_ERROR; } getMicMute(bool * state)72 virtual status_t getMicMute(bool* state) { *state = mMicMute ; return NO_ERROR; } 73 74 // create I/O streams 75 virtual AudioStreamOut* openOutputStream( 76 uint32_t devices, 77 int *format=0, 78 uint32_t *channels=0, 79 uint32_t *sampleRate=0, 80 status_t *status=0); 81 virtual void closeOutputStream(AudioStreamOut* out); 82 83 virtual AudioStreamIn* openInputStream( 84 uint32_t devices, 85 int *format, 86 uint32_t *channels, 87 uint32_t *sampleRate, 88 status_t *status, 89 AudioSystem::audio_in_acoustics acoustics); 90 virtual void closeInputStream(AudioStreamIn* in); 91 92 protected: 93 virtual status_t dump(int fd, const Vector<String16>& args); 94 95 bool mMicMute; 96 private: 97 status_t dumpInternals(int fd, const Vector<String16>& args); 98 }; 99 100 // ---------------------------------------------------------------------------- 101 102 }; // namespace android 103 104 #endif // ANDROID_AUDIO_HARDWARE_STUB_H 105