1 /*
2 **
3 ** Copyright 2014, 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_HDMI_AUDIO_OUTPUT_H
19 #define ANDROID_HDMI_AUDIO_OUTPUT_H
20 
21 #include <hardware/audio.h>
22 
23 #include "AudioOutput.h"
24 
25 namespace android {
26 
27 class AudioStreamOut;
28 
29 class HDMIAudioOutput : public AudioOutput {
30   public:
31                         HDMIAudioOutput();
32     virtual            ~HDMIAudioOutput();
33     virtual status_t    setupForStream(const AudioStreamOut& stream);
getOutputName()34     virtual const char* getOutputName() { return "HDMI"; }
classDevMask()35     static  uint32_t    classDevMask() { return AUDIO_DEVICE_OUT_AUX_DIGITAL; }
devMask()36     virtual uint32_t    devMask() const { return classDevMask(); }
37     virtual void        dump(String8& result);
38 
39 protected:
40     virtual void        applyPendingVolParams();
41     void                setChannelStatusToCompressed(bool compressed);
42 };
43 
44 }  // namespace android
45 #endif  // ANDROID_HDMI_AUDIO_OUTPUT_H
46