MythTV master
volumebase.h
Go to the documentation of this file.
1#ifndef VOLUME_BASE_H
2#define VOLUME_BASE_H
3
4#include <cstdint>
5
6#include "libmyth/mythexp.h"
7
8enum MuteState : std::uint8_t {
13};
14
16{
17 public:
18 VolumeBase();
19 virtual ~VolumeBase() = default;
20
21 void SWVolume(bool set);
22 bool SWVolume(void) const;
23 virtual uint GetCurrentVolume(void) const;
24 virtual void SetCurrentVolume(int value);
25 virtual void AdjustCurrentVolume(int change);
26 virtual void ToggleMute(void);
27
28 virtual MuteState GetMuteState(void) const;
29 virtual MuteState SetMuteState(MuteState /*mstate*/);
30
31 static MuteState NextMuteState(MuteState /*cur*/);
32
33 protected:
34
35 virtual int GetVolumeChannel(int channel) const = 0; // Returns 0-100
36 virtual void SetVolumeChannel(int channel, int volume) = 0; // range 0-100 for vol
37 virtual void SetSWVolume(int new_volume, bool save) = 0;
38 virtual int GetSWVolume(void) = 0;
39
40 void UpdateVolume(void);
41 void SyncVolume(void);
42 void SetChannels(int new_channels);
43 bool m_internalVol {false};
44
45 private:
46
47 int m_volume {80};
48 MuteState m_currentMuteState {kMuteOff};
49 bool m_swvol {false};
50 bool m_swvolSetting {false};
51 int m_channels {0};
52
53};
54
55#endif // VOLUME_BASE_H
virtual ~VolumeBase()=default
virtual int GetSWVolume(void)=0
virtual void SetSWVolume(int new_volume, bool save)=0
virtual int GetVolumeChannel(int channel) const =0
virtual void SetVolumeChannel(int channel, int volume)=0
unsigned int uint
Definition: freesurround.h:24
#define MPUBLIC
Definition: mythexp.h:10
MuteState
Definition: volumebase.h:8
@ kMuteLeft
Definition: volumebase.h:10
@ kMuteOff
Definition: volumebase.h:9
@ kMuteRight
Definition: volumebase.h:11
@ kMuteAll
Definition: volumebase.h:12