summaryrefslogtreecommitdiff
path: root/lcdproc.c
diff options
context:
space:
mode:
authorJoachim Wilke <vdr@joachim-wilke.de>2010-01-17 13:13:24 +0100
committerJoachim Wilke <vdr@joachim-wilke.de>2010-01-17 13:13:24 +0100
commitfae59a873397874d4d073f58d7db5e62eb581755 (patch)
treee10863326402a0eac65426e7170a62be6e2e0c1c /lcdproc.c
parent9373f475d568cefa8604da07cfe8e96466dd64f8 (diff)
downloadvdr-plugin-lcdproc-fae59a873397874d4d073f58d7db5e62eb581755.tar.gz
vdr-plugin-lcdproc-fae59a873397874d4d073f58d7db5e62eb581755.tar.bz2
Implemented cStatus::SetAudioChannel and SetAudioTrack to display audio track information on lcd.
Diffstat (limited to 'lcdproc.c')
-rw-r--r--lcdproc.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/lcdproc.c b/lcdproc.c
index 89b9e38..4ce0385 100644
--- a/lcdproc.c
+++ b/lcdproc.c
@@ -45,11 +45,19 @@ static const char * OutputFunctionText[]= {"Off",
"User3"};
class cLcdFeed : public cStatus {
+public:
+ cLcdFeed() {
+ AudioTrack = NULL;
+ }
+private:
+ char * AudioTrack;
protected:
virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
virtual void Replaying(const cControl *DvbPlayerControl, const char *Name, const char *FileName, bool On);
virtual void SetVolume(int Volume, bool Absolute);
+ virtual void SetAudioTrack(int Index, const char * const *Tracks);
+ virtual void SetAudioChannel(int AudioChannel);
virtual void OsdClear(void);
virtual void OsdTitle(const char *Title);
virtual void OsdStatusMessage(const char *Message);
@@ -108,6 +116,33 @@ void cLcdFeed::SetVolume(int Volume, bool Absolute)
LCDproc->ShowVolume( Volume, Absolute );
}
+void cLcdFeed::SetAudioTrack(int Index, const char * const *Tracks)
+{
+ OsdTitle(trVDR("Button$Audio"));
+ if (AudioTrack)
+ free(AudioTrack);
+ asprintf(&AudioTrack, "%s", Tracks[Index]);
+ OsdCurrentItem(AudioTrack);
+}
+
+void cLcdFeed::SetAudioChannel(int AudioChannel){
+ char * TrackDescription;
+ switch (AudioChannel){
+ case 0:
+ asprintf(&TrackDescription, "%s (%s)", AudioTrack, tr("Stereo"));
+ break;
+ case 1:
+ asprintf(&TrackDescription, "%s (%s)", AudioTrack, tr("Left channel"));
+ break;
+ case 2:
+ asprintf(&TrackDescription, "%s (%s)", AudioTrack, tr("Right channel"));
+ break;
+ default:
+ return;
+ }
+ OsdCurrentItem(TrackDescription);
+ free(TrackDescription);
+}
void cLcdFeed::OsdClear(void)
{
//syslog(LOG_INFO, "lcdproc: cLcdFeed::OsdClear");