00001 #ifndef VOLUMEBASE
00002 #define VOLUMEBASE
00003
00004 #include <iostream>
00005 using namespace std;
00006
00007 #include <qstring.h>
00008 #include "mythcontext.h"
00009
00010 typedef enum {
00011 MUTE_OFF = 0,
00012 MUTE_LEFT,
00013 MUTE_RIGHT,
00014 MUTE_BOTH
00015 } kMuteState;
00016
00017 class MPUBLIC VolumeBase
00018 {
00019 public:
00020 VolumeBase();
00021 virtual ~VolumeBase() {};
00022
00023 virtual int GetCurrentVolume(void);
00024 virtual void SetCurrentVolume(int value);
00025 virtual void AdjustCurrentVolume(int change);
00026 virtual void SetMute(bool on);
00027 virtual void ToggleMute(void);
00028 virtual kMuteState GetMute(void);
00029 virtual kMuteState IterateMutedChannels(void);
00030
00031 protected:
00032
00033 virtual int GetVolumeChannel(int channel) = 0;
00034 virtual void SetVolumeChannel(int channel, int volume) = 0;
00035
00036 void UpdateVolume(void);
00037 void SyncVolume(void);
00038
00039 bool internal_vol;
00040
00041 private:
00042
00043 int volume;
00044 kMuteState current_mute_state;
00045
00046 };
00047
00048 #endif
00049