blob: 1a61552d9166e9723ff16fa9e3a0efeabe659d41 [file] [log] [blame]
The Android Open Source Project7c1b96a2008-10-21 07:00:00 -07001/* //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/AudioHardwareInterface.h>
25
26namespace android {
27
28// ----------------------------------------------------------------------------
29
30class AudioStreamOutStub : public AudioStreamOut {
31public:
32 virtual status_t set(int format, int channelCount, uint32_t sampleRate);
33 virtual uint32_t sampleRate() const { return 44100; }
34 virtual size_t bufferSize() const { return 4096; }
35 virtual int channelCount() const { return 2; }
36 virtual int format() const { return AudioSystem::PCM_16_BIT; }
37 virtual status_t setVolume(float volume) { return NO_ERROR; }
38 virtual ssize_t write(const void* buffer, size_t bytes);
39 virtual status_t dump(int fd, const Vector<String16>& args);
40};
41
42class AudioStreamInStub : public AudioStreamIn {
43public:
44 virtual status_t set(int format, int channelCount, uint32_t sampleRate);
45 virtual uint32_t sampleRate() const { return 8000; }
46 virtual size_t bufferSize() const { return 320; }
47 virtual int channelCount() const { return 1; }
48 virtual int format() const { return AudioSystem::PCM_16_BIT; }
49 virtual status_t setGain(float gain) { return NO_ERROR; }
50 virtual ssize_t read(void* buffer, ssize_t bytes);
51 virtual status_t dump(int fd, const Vector<String16>& args);
52};
53
54class AudioHardwareStub : public AudioHardwareInterface
55{
56public:
57 AudioHardwareStub();
58 virtual ~AudioHardwareStub();
59 virtual status_t initCheck();
60 virtual status_t standby();
61 virtual status_t setVoiceVolume(float volume);
62 virtual status_t setMasterVolume(float volume);
63
64 // mic mute
65 virtual status_t setMicMute(bool state) { mMicMute = state; return NO_ERROR; }
66 virtual status_t getMicMute(bool* state) { *state = mMicMute ; return NO_ERROR; }
67
68 virtual status_t setParameter(const char* key, const char* value)
69 { return NO_ERROR; }
70
71 // create I/O streams
72 virtual AudioStreamOut* openOutputStream(
73 int format=0,
74 int channelCount=0,
75 uint32_t sampleRate=0);
76
77 virtual AudioStreamIn* openInputStream(
78 int format,
79 int channelCount,
80 uint32_t sampleRate);
81
82protected:
83 virtual status_t doRouting() { return NO_ERROR; }
84 virtual status_t dump(int fd, const Vector<String16>& args);
85
86 bool mMicMute;
87private:
88 status_t dumpInternals(int fd, const Vector<String16>& args);
89};
90
91// ----------------------------------------------------------------------------
92
93}; // namespace android
94
95#endif // ANDROID_AUDIO_HARDWARE_STUB_H