mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Implemented displaying audio channel
This commit is contained in:
parent
f79f81dfd4
commit
264fa085bd
5
HISTORY
5
HISTORY
@ -3262,7 +3262,8 @@ Video Disk Recorder Revision History
|
|||||||
- The format of the 'epg.data' files has been extended by the new tag 'X', which
|
- The format of the 'epg.data' files has been extended by the new tag 'X', which
|
||||||
contains the stream components of an event (see man vdr(5) for details).
|
contains the stream components of an event (see man vdr(5) for details).
|
||||||
- The cStatus class now has the new member function SetAudioTrack(), which can be
|
- The cStatus class now has the new member function SetAudioTrack(), which can be
|
||||||
used to get notified when the audio track has been switched.
|
used to get notified when the audio track has been switched, and the new member
|
||||||
|
function SetAudioChannel() which is called when the audio channel is changed.
|
||||||
- Skins need to implement the new cSkinDisplayTrack class to display the audio
|
- Skins need to implement the new cSkinDisplayTrack class to display the audio
|
||||||
track menu.
|
track menu.
|
||||||
- The ST:TNG skin now displays the current audio track description (if any) at the
|
- The ST:TNG skin now displays the current audio track description (if any) at the
|
||||||
@ -3273,8 +3274,6 @@ Video Disk Recorder Revision History
|
|||||||
- The "Left" and "Right" keys in the "Audio" menu can be used to switch between
|
- The "Left" and "Right" keys in the "Audio" menu can be used to switch between
|
||||||
the left and right stereo channels in case there are different audio tracks
|
the left and right stereo channels in case there are different audio tracks
|
||||||
in these channels (see MANUAL for details).
|
in these channels (see MANUAL for details).
|
||||||
Currently there is no visual indicator of the audio channel, yet, and it
|
|
||||||
doesn't work with the selected audio languages.
|
|
||||||
- Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund).
|
- Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund).
|
||||||
- Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
|
- Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
|
||||||
Gleichmann).
|
Gleichmann).
|
||||||
|
4
MANUAL
4
MANUAL
@ -200,7 +200,7 @@ Version 1.2
|
|||||||
|
|
||||||
The "Left" and "Right" keys can be used to switch between "mono left", "stereo"
|
The "Left" and "Right" keys can be used to switch between "mono left", "stereo"
|
||||||
and "mono right" for channels that broadcast different audio tracks in the
|
and "mono right" for channels that broadcast different audio tracks in the
|
||||||
left and right stereo channels (as was often done in the old analog days).
|
left and right stereo channels.
|
||||||
|
|
||||||
The "Ok" key explicitly switches to the selected track (in case the device
|
The "Ok" key explicitly switches to the selected track (in case the device
|
||||||
for some reason doesn't play it) and closes the "Audio" menu.
|
for some reason doesn't play it) and closes the "Audio" menu.
|
||||||
@ -211,7 +211,7 @@ Version 1.2
|
|||||||
Once a Dolby Digital track has been selected on any channel, further channel
|
Once a Dolby Digital track has been selected on any channel, further channel
|
||||||
switches will first search for a Dolby Digital track of one of the preferred
|
switches will first search for a Dolby Digital track of one of the preferred
|
||||||
audio languages. If no such track can be found, a normal audio track will
|
audio languages. If no such track can be found, a normal audio track will
|
||||||
be selected. Note that this only works is the broadcasters use actual language
|
be selected. Note that this only works if the broadcasters use actual language
|
||||||
codes in their PID data, not things like "dd" or "2ch".
|
codes in their PID data, not things like "dd" or "2ch".
|
||||||
|
|
||||||
* Switching through channel groups
|
* Switching through channel groups
|
||||||
|
10
PLUGINS.html
10
PLUGINS.html
@ -1493,13 +1493,15 @@ repectively.
|
|||||||
<b>Audio selection</b>
|
<b>Audio selection</b>
|
||||||
<p>
|
<p>
|
||||||
If the device can provide more than a single audio track, it can implement the
|
If the device can provide more than a single audio track, it can implement the
|
||||||
following functions to make them available:
|
following function to make them available:
|
||||||
|
|
||||||
|
<!--X1.3.18--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||||
<p><table><tr><td bgcolor=#F0F0F0><pre>
|
<p><table><tr><td bgcolor=#F0F0F0><pre>
|
||||||
virtual int NumAudioTracksDevice(void) const;
|
virtual void SetAudioTrackDevice(eTrackType Type);
|
||||||
virtual const char **GetAudioTracksDevice(int *CurrentTrack = NULL) const;
|
virtual int GetAudioChannelDevice(void);
|
||||||
virtual void SetAudioTrackDevice(int Index);
|
virtual void SetAudioChannelDevice(int AudioChannel);
|
||||||
</pre></td></tr></table><p>
|
</pre></td></tr></table><p>
|
||||||
|
<!--X1.3.18--></td></tr></table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>Recording</b>
|
<b>Recording</b>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* See the README file for copyright information and how to reach the author.
|
* See the README file for copyright information and how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skincurses.c 1.4 2005/01/02 15:11:29 kls Exp $
|
* $Id: skincurses.c 1.5 2005/01/09 11:56:26 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
@ -570,6 +570,7 @@ public:
|
|||||||
cSkinCursesDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
cSkinCursesDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
||||||
virtual ~cSkinCursesDisplayTracks();
|
virtual ~cSkinCursesDisplayTracks();
|
||||||
virtual void SetTrack(int Index, const char * const *Tracks);
|
virtual void SetTrack(int Index, const char * const *Tracks);
|
||||||
|
virtual void SetAudioChannel(int AudioChannel) {}
|
||||||
virtual void Flush(void);
|
virtual void Flush(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
26
menu.c
26
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.c 1.331 2005/01/08 10:46:44 kls Exp $
|
* $Id: menu.c 1.332 2005/01/09 11:55:12 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -2857,6 +2857,7 @@ cDisplayTracks::cDisplayTracks(void)
|
|||||||
SetTrackDescriptions();
|
SetTrackDescriptions();
|
||||||
currentDisplayTracks = this;
|
currentDisplayTracks = this;
|
||||||
numTracks = track = 0;
|
numTracks = track = 0;
|
||||||
|
audioChannel = cDevice::PrimaryDevice()->GetAudioChannel();
|
||||||
eTrackType CurrentAudioTrack = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
eTrackType CurrentAudioTrack = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
||||||
for (int i = ttAudioFirst; i <= ttDolbyLast; i++) {
|
for (int i = ttAudioFirst; i <= ttDolbyLast; i++) {
|
||||||
const tTrackId *TrackId = cDevice::PrimaryDevice()->GetTrack(eTrackType(i));
|
const tTrackId *TrackId = cDevice::PrimaryDevice()->GetTrack(eTrackType(i));
|
||||||
@ -2884,9 +2885,12 @@ cDisplayTracks::~cDisplayTracks()
|
|||||||
|
|
||||||
void cDisplayTracks::Show(void)
|
void cDisplayTracks::Show(void)
|
||||||
{
|
{
|
||||||
|
int ac = IS_AUDIO_TRACK(types[track]) ? audioChannel : -1;
|
||||||
displayTracks->SetTrack(track, descriptions);
|
displayTracks->SetTrack(track, descriptions);
|
||||||
|
displayTracks->SetAudioChannel(ac);
|
||||||
displayTracks->Flush();
|
displayTracks->Flush();
|
||||||
cStatus::MsgSetAudioTrack(track, descriptions);
|
cStatus::MsgSetAudioTrack(track, descriptions);
|
||||||
|
cStatus::MsgSetAudioChannel(ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
cDisplayTracks *cDisplayTracks::Create(void)
|
cDisplayTracks *cDisplayTracks::Create(void)
|
||||||
@ -2909,6 +2913,7 @@ void cDisplayTracks::Process(eKeys Key)
|
|||||||
eOSState cDisplayTracks::ProcessKey(eKeys Key)
|
eOSState cDisplayTracks::ProcessKey(eKeys Key)
|
||||||
{
|
{
|
||||||
int oldTrack = track;
|
int oldTrack = track;
|
||||||
|
int oldAudioChannel = audioChannel;
|
||||||
switch (Key) {
|
switch (Key) {
|
||||||
case kUp|k_Repeat:
|
case kUp|k_Repeat:
|
||||||
case kUp:
|
case kUp:
|
||||||
@ -2923,14 +2928,14 @@ eOSState cDisplayTracks::ProcessKey(eKeys Key)
|
|||||||
case kLeft|k_Repeat:
|
case kLeft|k_Repeat:
|
||||||
case kLeft:
|
case kLeft:
|
||||||
case kRight|k_Repeat:
|
case kRight|k_Repeat:
|
||||||
case kRight: {
|
case kRight: if (IS_AUDIO_TRACK(types[track])) {
|
||||||
static int ac[] = { 1, 0, 2 };
|
static int ac[] = { 1, 0, 2 };
|
||||||
int AudioChannel = ac[cDevice::PrimaryDevice()->GetAudioChannel()];
|
audioChannel = ac[cDevice::PrimaryDevice()->GetAudioChannel()];
|
||||||
if (NORMALKEY(Key) == kLeft && AudioChannel > 0)
|
if (NORMALKEY(Key) == kLeft && audioChannel > 0)
|
||||||
AudioChannel--;
|
audioChannel--;
|
||||||
else if (NORMALKEY(Key) == kRight && AudioChannel < 2)
|
else if (NORMALKEY(Key) == kRight && audioChannel < 2)
|
||||||
AudioChannel++;
|
audioChannel++;
|
||||||
cDevice::PrimaryDevice()->SetAudioChannel(ac[AudioChannel]);
|
audioChannel = ac[audioChannel];
|
||||||
timeout.Set(TRACKTIMEOUT);
|
timeout.Set(TRACKTIMEOUT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2948,11 +2953,14 @@ eOSState cDisplayTracks::ProcessKey(eKeys Key)
|
|||||||
default: if ((Key & k_Release) == 0)
|
default: if ((Key & k_Release) == 0)
|
||||||
return osEnd;
|
return osEnd;
|
||||||
}
|
}
|
||||||
if (track != oldTrack) {
|
if (track != oldTrack || audioChannel != oldAudioChannel)
|
||||||
Show();
|
Show();
|
||||||
|
if (track != oldTrack) {
|
||||||
cDevice::PrimaryDevice()->SetCurrentAudioTrack(types[track]);
|
cDevice::PrimaryDevice()->SetCurrentAudioTrack(types[track]);
|
||||||
Setup.CurrentDolby = IS_DOLBY_TRACK(types[track]);
|
Setup.CurrentDolby = IS_DOLBY_TRACK(types[track]);
|
||||||
}
|
}
|
||||||
|
if (audioChannel != oldAudioChannel)
|
||||||
|
cDevice::PrimaryDevice()->SetAudioChannel(audioChannel);
|
||||||
return timeout.TimedOut() ? osEnd : osContinue;
|
return timeout.TimedOut() ? osEnd : osContinue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
menu.h
4
menu.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.h 1.67 2005/01/06 14:29:46 kls Exp $
|
* $Id: menu.h 1.68 2005/01/08 15:48:57 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __MENU_H
|
#ifndef __MENU_H
|
||||||
@ -81,7 +81,7 @@ private:
|
|||||||
cTimeMs timeout;
|
cTimeMs timeout;
|
||||||
eTrackType types[ttMaxTrackTypes];
|
eTrackType types[ttMaxTrackTypes];
|
||||||
char *descriptions[ttMaxTrackTypes];
|
char *descriptions[ttMaxTrackTypes];
|
||||||
int numTracks, track;
|
int numTracks, track, audioChannel;
|
||||||
static cDisplayTracks *currentDisplayTracks;
|
static cDisplayTracks *currentDisplayTracks;
|
||||||
virtual void Show(void);
|
virtual void Show(void);
|
||||||
cDisplayTracks(void);
|
cDisplayTracks(void);
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skinclassic.c 1.10 2005/01/02 14:41:08 kls Exp $
|
* $Id: skinclassic.c 1.11 2005/01/09 11:56:29 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skinclassic.h"
|
#include "skinclassic.h"
|
||||||
@ -516,6 +516,7 @@ public:
|
|||||||
cSkinClassicDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
cSkinClassicDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
||||||
virtual ~cSkinClassicDisplayTracks();
|
virtual ~cSkinClassicDisplayTracks();
|
||||||
virtual void SetTrack(int Index, const char * const *Tracks);
|
virtual void SetTrack(int Index, const char * const *Tracks);
|
||||||
|
virtual void SetAudioChannel(int AudioChannel) {}
|
||||||
virtual void Flush(void);
|
virtual void Flush(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
6
skins.h
6
skins.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skins.h 1.5 2005/01/02 14:36:19 kls Exp $
|
* $Id: skins.h 1.6 2005/01/09 11:49:37 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __SKINS_H
|
#ifndef __SKINS_H
|
||||||
@ -66,7 +66,6 @@ public:
|
|||||||
Red = Video options
|
Red = Video options
|
||||||
Green = Info now
|
Green = Info now
|
||||||
Yellow = Info next
|
Yellow = Info next
|
||||||
VideoOptions
|
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -227,6 +226,9 @@ public:
|
|||||||
virtual void SetTrack(int Index, const char * const *Tracks) = 0;
|
virtual void SetTrack(int Index, const char * const *Tracks) = 0;
|
||||||
///< Sets the current track to the one given by Index, which
|
///< Sets the current track to the one given by Index, which
|
||||||
///< points into the Tracks array of strings.
|
///< points into the Tracks array of strings.
|
||||||
|
virtual void SetAudioChannel(int AudioChannel) = 0;
|
||||||
|
///< Sets the audio channel indicator.
|
||||||
|
///< 0=stereo, 1=left, 2=right, -1=don't display the audio channel indicator.
|
||||||
};
|
};
|
||||||
|
|
||||||
class cSkinDisplayMessage : public cSkinDisplay {
|
class cSkinDisplayMessage : public cSkinDisplay {
|
||||||
|
25
skinsttng.c
25
skinsttng.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skinsttng.c 1.11 2005/01/08 10:15:00 kls Exp $
|
* $Id: skinsttng.c 1.12 2005/01/08 15:37:55 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Star Trek: The Next Generation® is a registered trademark of Paramount Pictures
|
// Star Trek: The Next Generation® is a registered trademark of Paramount Pictures
|
||||||
@ -20,6 +20,9 @@
|
|||||||
#include "symbols/arrowdown.xpm"
|
#include "symbols/arrowdown.xpm"
|
||||||
#include "symbols/arrowup.xpm"
|
#include "symbols/arrowup.xpm"
|
||||||
#include "symbols/audio.xpm"
|
#include "symbols/audio.xpm"
|
||||||
|
#include "symbols/audioleft.xpm"
|
||||||
|
#include "symbols/audioright.xpm"
|
||||||
|
#include "symbols/audiostereo.xpm"
|
||||||
#include "symbols/dolbydigital.xpm"
|
#include "symbols/dolbydigital.xpm"
|
||||||
#include "symbols/encrypted.xpm"
|
#include "symbols/encrypted.xpm"
|
||||||
#include "symbols/ffwd.xpm"
|
#include "symbols/ffwd.xpm"
|
||||||
@ -835,14 +838,20 @@ private:
|
|||||||
int lineHeight;
|
int lineHeight;
|
||||||
tColor frameColor;
|
tColor frameColor;
|
||||||
int currentIndex;
|
int currentIndex;
|
||||||
|
static cBitmap bmAudioLeft, bmAudioRight, bmAudioStereo;
|
||||||
void SetItem(const char *Text, int Index, bool Current);
|
void SetItem(const char *Text, int Index, bool Current);
|
||||||
public:
|
public:
|
||||||
cSkinSTTNGDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
cSkinSTTNGDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
|
||||||
virtual ~cSkinSTTNGDisplayTracks();
|
virtual ~cSkinSTTNGDisplayTracks();
|
||||||
virtual void SetTrack(int Index, const char * const *Tracks);
|
virtual void SetTrack(int Index, const char * const *Tracks);
|
||||||
|
virtual void SetAudioChannel(int AudioChannel);
|
||||||
virtual void Flush(void);
|
virtual void Flush(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cBitmap cSkinSTTNGDisplayTracks::bmAudioLeft(audioleft_xpm);
|
||||||
|
cBitmap cSkinSTTNGDisplayTracks::bmAudioRight(audioright_xpm);
|
||||||
|
cBitmap cSkinSTTNGDisplayTracks::bmAudioStereo(audiostereo_xpm);
|
||||||
|
|
||||||
cSkinSTTNGDisplayTracks::cSkinSTTNGDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks)
|
cSkinSTTNGDisplayTracks::cSkinSTTNGDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks)
|
||||||
{
|
{
|
||||||
const cFont *font = cFont::GetFont(fontOsd);
|
const cFont *font = cFont::GetFont(fontOsd);
|
||||||
@ -954,6 +963,20 @@ void cSkinSTTNGDisplayTracks::SetTrack(int Index, const char * const *Tracks)
|
|||||||
SetItem(Tracks[Index], Index, true);
|
SetItem(Tracks[Index], Index, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cSkinSTTNGDisplayTracks::SetAudioChannel(int AudioChannel)
|
||||||
|
{
|
||||||
|
cBitmap *bm = NULL;
|
||||||
|
switch (AudioChannel) {
|
||||||
|
case 0: bm = &bmAudioStereo; break;
|
||||||
|
case 1: bm = &bmAudioLeft; break;
|
||||||
|
case 2: bm = &bmAudioRight; break;
|
||||||
|
}
|
||||||
|
if (bm)
|
||||||
|
osd->DrawBitmap(x3 + 5, y6 + (y7 - y6 - bm->Height()) / 2, *bm, Theme.Color(clrChannelSymbolOn), frameColor);
|
||||||
|
else
|
||||||
|
osd->DrawRectangle(x3, y6, x4 - 1, y7 - 1, frameColor);
|
||||||
|
}
|
||||||
|
|
||||||
void cSkinSTTNGDisplayTracks::Flush(void)
|
void cSkinSTTNGDisplayTracks::Flush(void)
|
||||||
{
|
{
|
||||||
osd->Flush();
|
osd->Flush();
|
||||||
|
8
status.c
8
status.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: status.c 1.6 2005/01/02 12:09:12 kls Exp $
|
* $Id: status.c 1.7 2005/01/09 11:51:04 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "status.h"
|
#include "status.h"
|
||||||
@ -53,6 +53,12 @@ void cStatus::MsgSetAudioTrack(int Index, const char * const *Tracks)
|
|||||||
sm->SetAudioTrack(Index, Tracks);
|
sm->SetAudioTrack(Index, Tracks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cStatus::MsgSetAudioChannel(int AudioChannel)
|
||||||
|
{
|
||||||
|
for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
|
||||||
|
sm->SetAudioChannel(AudioChannel);
|
||||||
|
}
|
||||||
|
|
||||||
void cStatus::MsgOsdClear(void)
|
void cStatus::MsgOsdClear(void)
|
||||||
{
|
{
|
||||||
for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
|
for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
|
||||||
|
6
status.h
6
status.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: status.h 1.7 2005/01/02 12:08:12 kls Exp $
|
* $Id: status.h 1.8 2005/01/09 11:50:21 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __STATUS_H
|
#ifndef __STATUS_H
|
||||||
@ -39,6 +39,9 @@ protected:
|
|||||||
virtual void SetAudioTrack(int Index, const char * const *Tracks) {}
|
virtual void SetAudioTrack(int Index, const char * const *Tracks) {}
|
||||||
// The audio track has been set to the one given by Index, which
|
// The audio track has been set to the one given by Index, which
|
||||||
// points into the Tracks array of strings.
|
// points into the Tracks array of strings.
|
||||||
|
virtual void SetAudioChannel(int AudioChannel) {}
|
||||||
|
// The audio channel has been set to the given value.
|
||||||
|
// 0=stereo, 1=left, 2=right, -1=no information available.
|
||||||
virtual void OsdClear(void) {}
|
virtual void OsdClear(void) {}
|
||||||
// The OSD has been cleared.
|
// The OSD has been cleared.
|
||||||
virtual void OsdTitle(const char *Title) {}
|
virtual void OsdTitle(const char *Title) {}
|
||||||
@ -71,6 +74,7 @@ public:
|
|||||||
static void MsgReplaying(const cControl *Control, const char *Name);
|
static void MsgReplaying(const cControl *Control, const char *Name);
|
||||||
static void MsgSetVolume(int Volume, bool Absolute);
|
static void MsgSetVolume(int Volume, bool Absolute);
|
||||||
static void MsgSetAudioTrack(int Index, const char * const *Tracks);
|
static void MsgSetAudioTrack(int Index, const char * const *Tracks);
|
||||||
|
static void MsgSetAudioChannel(int AudioChannel);
|
||||||
static void MsgOsdClear(void);
|
static void MsgOsdClear(void);
|
||||||
static void MsgOsdTitle(const char *Title);
|
static void MsgOsdTitle(const char *Title);
|
||||||
static void MsgOsdStatusMessage(const char *Message);
|
static void MsgOsdStatusMessage(const char *Message);
|
||||||
|
23
symbols/audioleft.xpm
Normal file
23
symbols/audioleft.xpm
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * audioleft_xpm[] = {
|
||||||
|
"27 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
"...++++++++.....++....++...",
|
||||||
|
"..++++++++++...++......++..",
|
||||||
|
"..++++++++++...++......++..",
|
||||||
|
"..++++++++++...++......++..",
|
||||||
|
"..++++++++++...++......++..",
|
||||||
|
"...++++++++.....++....++...",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"..........................."};
|
23
symbols/audioright.xpm
Normal file
23
symbols/audioright.xpm
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * audioright_xpm[] = {
|
||||||
|
"27 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
"...++....++.....++++++++...",
|
||||||
|
"..++......++...++++++++++..",
|
||||||
|
"..++......++...++++++++++..",
|
||||||
|
"..++......++...++++++++++..",
|
||||||
|
"..++......++...++++++++++..",
|
||||||
|
"...++....++.....++++++++...",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"..........................."};
|
23
symbols/audiostereo.xpm
Normal file
23
symbols/audiostereo.xpm
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * audiostereo_xpm[] = {
|
||||||
|
"27 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
"..++++++++++...++++++++++..",
|
||||||
|
"..++++++++++...++++++++++..",
|
||||||
|
"..++++++++++...++++++++++..",
|
||||||
|
"..++++++++++...++++++++++..",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
"...++++++++.....++++++++...",
|
||||||
|
".....++++.........++++.....",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"...........................",
|
||||||
|
"..........................."};
|
Loading…
Reference in New Issue
Block a user