From 212331440624cc0c7a077ca6695a752c36866154 Mon Sep 17 00:00:00 2001 From: lordjaxom Date: Tue, 11 Jan 2005 17:59:04 +0000 Subject: - implemented audio channel name token --- display.c | 22 +++++++++++++++++++--- display.h | 5 ++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/display.c b/display.c index ba7916c..fae5217 100644 --- a/display.c +++ b/display.c @@ -1,5 +1,5 @@ /* - * $Id: display.c,v 1.7 2005/01/09 18:43:00 lordjaxom Exp $ + * $Id: display.c,v 1.8 2005/01/11 17:59:04 lordjaxom Exp $ */ #include "render.h" @@ -952,12 +952,15 @@ cxType cText2SkinDisplayMenu::GetTokenData(const txToken &Token) #if VDRVERSNUM >= 10318 // --- cText2SkinDisplayTracks ------------------------------------------------ +const std::string ChannelNames[] = { "", "stereo", "left", "right" }; + cText2SkinDisplayTracks::cText2SkinDisplayTracks(cText2SkinLoader *Loader, const char *Title, int NumTracks, const char * const *Tracks): cText2SkinRender(Loader, cxDisplay::audioTracks), mTitle(Title), mItems(), - mCurrentItem((uint)-1) + mCurrentItem((uint)-1), + mAudioChannel(-1) { for (int i = 0; i < NumTracks; ++i) { tListItem item(Tracks[i]); @@ -969,6 +972,11 @@ cText2SkinDisplayTracks::~cText2SkinDisplayTracks() { } +const std::string &cText2SkinDisplayTracks::ChannelName(int AudioChannel) +{ + return ChannelNames[AudioChannel + 1]; +} + void cText2SkinDisplayTracks::SetTrack(int Index, const char * const *Tracks) { UpdateLock(); @@ -981,7 +989,12 @@ void cText2SkinDisplayTracks::SetTrack(int Index, const char * const *Tracks) void cText2SkinDisplayTracks::SetAudioChannel(int AudioChannel) { - //XXX + UpdateLock(); + if (mAudioChannel != AudioChannel) { + mAudioChannel = AudioChannel; + SetDirty(); + } + UpdateUnlock(); } cxType cText2SkinDisplayTracks::GetTokenData(const txToken &Token) @@ -1017,6 +1030,9 @@ cxType cText2SkinDisplayTracks::GetTokenData(const txToken &Token) case tIsMenuCurrent: return mItems.size() > (uint)Token.Index && mCurrentItem == (uint)Token.Index; + + case tAudioChannel: + return mAudioChannel; default: return cText2SkinRender::GetTokenData(Token); diff --git a/display.h b/display.h index 41abe81..e97ad6d 100644 --- a/display.h +++ b/display.h @@ -1,5 +1,5 @@ /* - * $Id: display.h,v 1.6 2005/01/09 18:43:00 lordjaxom Exp $ + * $Id: display.h,v 1.7 2005/01/11 17:59:04 lordjaxom Exp $ */ #ifndef VDR_TEXT2SKIN_SKIN_H @@ -203,12 +203,15 @@ private: tListItems mItems; uint mCurrentItem; + int mAudioChannel; protected: virtual cxType GetTokenData(const txToken &Token); virtual bool HasTabText(int Index, int n); public: + static const std::string &ChannelName(int AudioChannel); + cText2SkinDisplayTracks(cText2SkinLoader *Loader, const char *Title, int NumTracks, const char * const *Tracks); virtual ~cText2SkinDisplayTracks(); -- cgit v1.2.3