diff options
Diffstat (limited to 'hlsPlayerControl.cpp')
-rw-r--r-- | hlsPlayerControl.cpp | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/hlsPlayerControl.cpp b/hlsPlayerControl.cpp index f572604..97be2d7 100644 --- a/hlsPlayerControl.cpp +++ b/hlsPlayerControl.cpp @@ -2,7 +2,7 @@ cHlsPlayerControl::cHlsPlayerControl(cHlsPlayer* Player, std::string title) :cControl(Player) { - m_pPlayer = Player; + player = Player; m_title = title; } @@ -22,3 +22,83 @@ void cHlsPlayerControl::Hide(void) void cHlsPlayerControl::Show(void) { } + +eOSState cHlsPlayerControl::ProcessKey(eKeys Key) +{ + if (!Active()) + return osEnd; + if (Key == kPlayPause) { + bool Play, Forward; + int Speed; + GetReplayMode(Play, Forward, Speed); + if (Speed >= 0) + Key = Play ? kPlay : kPause; + else + Key = Play ? kPause : kPlay; + } + switch (int(Key)) { + // Positioning: + case kPlay: + case kUp: + Play(); + break; + case kPause: + case kDown: + Pause(); + break; + case kFastRew|k_Release: + case kLeft|k_Release: + //if (Setup.MultiSpeedMode) break; + case kFastRew: + case kLeft: + //Backward(); + break; + case kFastFwd|k_Release: + case kRight|k_Release: + //if (Setup.MultiSpeedMode) break; + case kFastFwd: + case kRight: + //Forward(); + break; + case kRed: + //TimeSearch(); + break; + case kGreen|k_Repeat: + case kGreen: + //SkipSeconds(-60); + break; + case kYellow|k_Repeat: + case kYellow: + //SkipSeconds( 60); + break; + case kStop: + case kBlue: + Hide(); + Stop(); + return osEnd; + } + return osContinue; +} + +bool cHlsPlayerControl::Active(void) +{ + return player && player->Active(); +} + +void cHlsPlayerControl::Pause(void) +{ + if(player) + player->Pause(); +} + +void cHlsPlayerControl::Play(void) +{ + if(player) + player->Play(); +} + +void cHlsPlayerControl::Stop(void) +{ + if(player) + player->Stop(); +} |