summaryrefslogtreecommitdiff
path: root/state.c
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2011-10-01 13:16:40 +0200
committermrwastl <mrwastl@users.sourceforge.net>2011-10-01 13:16:40 +0200
commit898a8985746efb429d721f42c0d380a59be98828 (patch)
tree72f355678275a9991e3d841645fcd0f348d830b4 /state.c
parentd4dc62c55c2b5c4713df89a12a33b55c0085ed6b (diff)
downloadvdr-plugin-graphlcd-898a8985746efb429d721f42c0d380a59be98828.tar.gz
vdr-plugin-graphlcd-898a8985746efb429d721f42c0d380a59be98828.tar.bz2
support added for audio track selection / audio channel display (new tokens: 'AudioTrackItem', 'AudioTrackCurrent', 'IsAudioTrackCurrent', 'AudioChannel'); skins: support for new display section 'audio'; default.skin: bug fixes, enhancements
Diffstat (limited to 'state.c')
-rw-r--r--state.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/state.c b/state.c
index b2adb37..a70f16c 100644
--- a/state.c
+++ b/state.c
@@ -79,6 +79,10 @@ cGraphLCDState::cGraphLCDState(cGraphLCDDisplay * Display)
mVolume.value = -1;
mVolume.lastChange = 0;
+ mAudio.currentTrack = -1;
+ mAudio.currentChannel = -1;
+ mAudio.lastChange = 0;
+
SetChannel(cDevice::CurrentChannel());
}
@@ -359,6 +363,32 @@ void cGraphLCDState::SetVolume(int Volume, bool Absolute)
}
}
+void cGraphLCDState::SetAudioTrack(int Index, const char * const *Tracks) {
+ if (GraphLCDSetup.PluginActive) {
+ mutex.Lock();
+ mAudio.currentTrack = Index;
+ mAudio.tracks.clear();
+ int i = 0;
+ while (Tracks[i]) {
+ mAudio.tracks.push_back(Tracks[i]);
+ i++;
+ }
+ mAudio.lastChange = cTimeMs::Now();
+ mutex.Unlock();
+ //mDisplay->Update(); -> will be done in SetAudioChannel
+ }
+}
+
+void cGraphLCDState::SetAudioChannel(int AudioChannel) {
+ if (GraphLCDSetup.PluginActive) {
+ mutex.Lock();
+ mAudio.currentChannel = AudioChannel;
+ mAudio.lastChange = cTimeMs::Now();
+ mutex.Unlock();
+ mDisplay->Update();
+ }
+}
+
void cGraphLCDState::Tick()
{
//printf("graphlcd plugin: cGraphLCDState::Tick\n");
@@ -410,6 +440,11 @@ void cGraphLCDState::OsdClear()
mOsd.currentTextItemScroll = 0;
mOsd.currentTextItemScrollReset = false;
+ mAudio.currentTrack = -1;
+ mAudio.currentChannel = -1;
+ mAudio.tracks.clear();
+ mAudio.lastChange = 0;
+
mutex.Unlock();
mDisplay->SetMenuClear();
}
@@ -892,6 +927,17 @@ tVolumeState cGraphLCDState::GetVolumeState()
return ret;
}
+tAudioState cGraphLCDState::GetAudioState()
+{
+ tAudioState ret;
+
+ mutex.Lock();
+ ret = mAudio;
+ mutex.Unlock();
+
+ return ret;
+}
+
bool cGraphLCDState::ShowMessage()
{
bool ret;