From 898a8985746efb429d721f42c0d380a59be98828 Mon Sep 17 00:00:00 2001 From: mrwastl Date: Sat, 1 Oct 2011 13:16:40 +0200 Subject: 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 --- state.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'state.c') 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; -- cgit v1.2.3