diff options
Diffstat (limited to 'player.c')
-rw-r--r-- | player.c | 41 |
1 files changed, 39 insertions, 2 deletions
@@ -4,10 +4,11 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: player.c 1.1 2002/06/16 10:34:50 kls Exp $ + * $Id: player.c 1.3 2002/06/23 12:56:25 kls Exp $ */ #include "player.h" +#include "i18n.h" // --- cPlayer --------------------------------------------------------------- @@ -46,10 +47,46 @@ void cPlayer::Detach(void) // --- cControl -------------------------------------------------------------- -cControl::cControl(void) +cControl *cControl::control = NULL; + +cControl::cControl(cPlayer *Player, bool Hidden) { + attached = false; + hidden = Hidden; + player = Player; } cControl::~cControl() { + if (this == control) + control = NULL; +} + +cControl *cControl::Control(void) +{ + return (control && !control->hidden) ? control : NULL; +} + +void cControl::Launch(cControl *Control) +{ + delete control; + control = Control; +} + +void cControl::Attach(void) +{ + if (control && !control->attached && control->player && !control->player->IsAttached()) { + if (cDevice::PrimaryDevice()->AttachPlayer(control->player)) + control->attached = true; + else { + Interface->Error(tr("Channel locked (recording)!")); + Shutdown(); + } + } +} + +void cControl::Shutdown(void) +{ + delete control; + control = NULL; } |