Added play mode pmVideoOnly

This commit is contained in:
Klaus Schmidinger 2004-05-23 10:12:44 +02:00
parent 4c5aedbd79
commit e912e48282
4 changed files with 15 additions and 2 deletions

View File

@ -675,6 +675,7 @@ Marcel Wiesweg <marcel.wiesweg@gmx.de>
for his help in fixing some issues with gcc 3.4
for fixing a memory leak in NIT processing
for adding a few missing initializations
for adding play mode pmVideoOnly
Torsten Herz <torsten.herz@web.de>
for fixing a possible deadlock when using the "Blue" button in the "Schedules" menu

View File

@ -2830,3 +2830,4 @@ Video Disk Recorder Revision History
- Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins.
It now also has a SetText() function that can be used to dynamically set the text
in an already existing cMenuText (both suggested by Stefan Huelswitt).
- Added play mode pmVideoOnly (thanks to Marcel Wiesweg).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: device.h 1.42 2004/04/17 10:15:25 kls Exp $
* $Id: device.h 1.43 2004/05/23 10:10:08 kls Exp $
*/
#ifndef __DEVICE_H
@ -36,6 +36,7 @@ enum ePlayMode { pmNone, // audio/video from decoder
pmAudioVideo, // audio/video from player
pmAudioOnly, // audio only from player, video from decoder
pmAudioOnlyBlack, // audio only from player, no video (black screen)
pmVideoOnly, // video only from player, audio from decoder
pmExtern_THIS_SHOULD_BE_AVOIDED
// external player (e.g. MPlayer), release the device
// WARNING: USE THIS MODE ONLY AS A LAST RESORT, IF YOU

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbdevice.c 1.85 2004/05/22 15:11:48 kls Exp $
* $Id: dvbdevice.c 1.86 2004/05/23 10:11:42 kls Exp $
*/
#include "dvbdevice.h"
@ -873,6 +873,16 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode)
CHECK(ioctl(fd_audio, AUDIO_PLAY));
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, false));
break;
case pmVideoOnly:
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true));
CHECK(ioctl(fd_video, VIDEO_STOP, true));
CHECK(ioctl(fd_audio, AUDIO_SELECT_SOURCE, AUDIO_SOURCE_DEMUX));
CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, false));
CHECK(ioctl(fd_audio, AUDIO_PLAY));
CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER));
CHECK(ioctl(fd_video, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_MEMORY));
CHECK(ioctl(fd_video, VIDEO_PLAY));
break;
case pmExtern_THIS_SHOULD_BE_AVOIDED:
close(fd_video);
close(fd_audio);