diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-01 13:16:40 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-01 13:16:40 +0200 |
commit | 898a8985746efb429d721f42c0d380a59be98828 (patch) | |
tree | 72f355678275a9991e3d841645fcd0f348d830b4 /state.c | |
parent | d4dc62c55c2b5c4713df89a12a33b55c0085ed6b (diff) | |
download | vdr-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.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -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; |