diff options
author | Joachim Wilke <vdr@joachim-wilke.de> | 2010-01-17 13:13:24 +0100 |
---|---|---|
committer | Joachim Wilke <vdr@joachim-wilke.de> | 2010-01-17 13:13:24 +0100 |
commit | fae59a873397874d4d073f58d7db5e62eb581755 (patch) | |
tree | e10863326402a0eac65426e7170a62be6e2e0c1c /lcdproc.c | |
parent | 9373f475d568cefa8604da07cfe8e96466dd64f8 (diff) | |
download | vdr-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.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -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"); |