diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2002-06-23 11:23:34 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2002-06-23 11:23:34 +0200 |
commit | cd030554e53f8161b4944d14da78756f908de6c4 (patch) | |
tree | 206e1649d3d0ff6752dd13c485a004ca1fcb5d47 /player.c | |
parent | 0bb9a1a77b866b79b73fc71e9863e7da5fc57c56 (diff) | |
download | vdr-cd030554e53f8161b4944d14da78756f908de6c4.tar.gz vdr-cd030554e53f8161b4944d14da78756f908de6c4.tar.bz2 |
Switched VDR's own player to the new cPlayer/cControl structures
Diffstat (limited to 'player.c')
-rw-r--r-- | player.c | 35 |
1 files changed, 33 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.2 2002/06/23 11:23:17 kls Exp $ */ #include "player.h" +#include "i18n.h" // --- cPlayer --------------------------------------------------------------- @@ -46,10 +47,40 @@ void cPlayer::Detach(void) // --- cControl -------------------------------------------------------------- -cControl::cControl(void) +cControl *cControl::control = NULL; + +cControl::cControl(cPlayer *Player) { + attached = false; + player = Player; } cControl::~cControl() { + if (this == control) + 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; } |