From f03ed68807b86529d20dffa6124527405ed75343 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 29 Jan 2006 11:15:08 +0100 Subject: [PATCH] Fixed displaying the current audio track in the channel display --- HISTORY | 3 ++- menu.c | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/HISTORY b/HISTORY index 9c1d9ed7..3f4fe643 100644 --- a/HISTORY +++ b/HISTORY @@ -4228,7 +4228,7 @@ Video Disk Recorder Revision History - Fixed handling the '0' key for switching between the last two channels (thanks to Thomas Bergwinkl). -2006-01-28: Version 1.3.41 +2006-01-29: Version 1.3.41 - EPG events from epg.data or SVDRP's PUTE command now have their Title set to "No Title" if none was set. @@ -4259,3 +4259,4 @@ Video Disk Recorder Revision History (reported by Rolf Ahrenberg). - Changed DVBS_TUNE_TIMEOUT and DVBC_TUNE_TIMEOUT to 9000ms to avoid problems with channels that have low symbol rates (reported by Suur Karu). +- Fixed displaying the current audio track in the channel display. diff --git a/menu.c b/menu.c index 247aeed6..28a0998c 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.405 2006/01/28 12:37:02 kls Exp $ + * $Id: menu.c 1.406 2006/01/29 11:13:51 kls Exp $ */ #include "menu.h" @@ -2956,13 +2956,13 @@ eOSState cMenuMain::ProcessKey(eKeys Key) // --- SetTrackDescriptions -------------------------------------------------- -static void SetTrackDescriptions(bool Live) +static void SetTrackDescriptions(int LiveChannel) { cDevice::PrimaryDevice()->ClrAvailableTracks(true); const cComponents *Components = NULL; cSchedulesLock SchedulesLock; - if (Live) { - cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel()); + if (LiveChannel) { + cChannel *Channel = Channels.GetByNumber(LiveChannel); if (Channel) { const cSchedules *Schedules = cSchedules::Schedules(SchedulesLock); if (Schedules) { @@ -3061,7 +3061,7 @@ void cDisplayChannel::DisplayInfo(void) const cEvent *Present = Schedule->GetPresentEvent(true); const cEvent *Following = Schedule->GetFollowingEvent(true); if (Present != lastPresent || Following != lastFollowing) { - SetTrackDescriptions(true); + SetTrackDescriptions(channel->Number()); displayChannel->SetEvents(Present, Following); cStatus::MsgOsdProgramme(Present ? Present->StartTime() : 0, Present ? Present->Title() : NULL, Present ? Present->ShortText() : NULL, Following ? Following->StartTime() : 0, Following ? Following->Title() : NULL, Following ? Following->ShortText() : NULL); lastPresent = Present; @@ -3239,7 +3239,9 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) DisplayInfo(); displayChannel->Flush(); if (NewChannel) { + SetTrackDescriptions(NewChannel->Number()); // to make them immediately visible in the channel display Channels.SwitchTo(NewChannel->Number()); + SetTrackDescriptions(NewChannel->Number()); // switching the channel has cleared them channel = NewChannel; } return osContinue; @@ -3324,7 +3326,7 @@ cDisplayTracks::cDisplayTracks(void) :cOsdObject(true) { cDevice::PrimaryDevice()->EnsureAudioTrack(); - SetTrackDescriptions(!cDevice::PrimaryDevice()->Replaying() || cTransferControl::ReceiverDevice()); + SetTrackDescriptions(!cDevice::PrimaryDevice()->Replaying() || cTransferControl::ReceiverDevice() ? cDevice::CurrentChannel() : 0); currentDisplayTracks = this; numTracks = track = 0; audioChannel = cDevice::PrimaryDevice()->GetAudioChannel();