diff options
author | Maniac <na@na.na> | 2015-07-03 22:29:41 +0200 |
---|---|---|
committer | Maniac <na@na.na> | 2015-07-03 22:29:41 +0200 |
commit | da407909879f82c15f786bda3fedda0cae892100 (patch) | |
tree | 143c2b842028c38e8f7facfe576567039459afd9 /playmenu.c | |
download | vdr-plugin-mpv-da407909879f82c15f786bda3fedda0cae892100.tar.gz vdr-plugin-mpv-da407909879f82c15f786bda3fedda0cae892100.tar.bz2 |
import 0.0.40.0.4
Diffstat (limited to 'playmenu.c')
-rw-r--r-- | playmenu.c | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/playmenu.c b/playmenu.c new file mode 100644 index 0000000..2943e94 --- /dev/null +++ b/playmenu.c @@ -0,0 +1,92 @@ +////////////////////////////////////////////////////////////////////////////// +/// /// +/// This file is part of the VDR mpv plugin and licensed under AGPLv3 /// +/// /// +/// See the README file for copyright information /// +/// /// +////////////////////////////////////////////////////////////////////////////// + +#include "playmenu.h" +#include "config.h" +#include "mpv_service.h" +#include "filebrowser.h" + +////////////////////////////////////////////////////////////////////////////// +// cOsdMenu +////////////////////////////////////////////////////////////////////////////// + +cPlayMenu::cPlayMenu(const char *title, int c0, int c1, int c2, int c3, int c4) +:cOsdMenu(title, c0, c1, c2, c3, c4) +{ + SetHasHotkeys(); + + Add(new cOsdItem(hk(tr("Browse")), osUser1)); + Add(new cOsdItem(hk(tr("Play optical disc")), osUser2)); + Add(new cOsdItem("")); + Add(new cOsdItem("")); + Add(new cOsdItem(hk(tr("Play audio CD")), osUser5)); + Add(new cOsdItem(hk(tr("Play video DVD")), osUser6)); + + if (cMpvFilebrowser::CurrentDir() != "") + { + AddSubMenu(new cMpvFilebrowser(MpvPluginConfig->BrowserRoot.c_str())); + } +} + +cPlayMenu::~cPlayMenu() +{ +} + +/** +** Handle play plugin menu key event. +** +** @param key key event +*/ +eOSState cPlayMenu::ProcessKey(eKeys key) +{ + eOSState state; + + // call standard function + state = cOsdMenu::ProcessKey(key); + + switch (state) + { + case osUser1: + AddSubMenu(new cMpvFilebrowser(MpvPluginConfig->BrowserRoot.c_str())); + return osContinue; // restart with OSD browser + + case osUser2: + Skins.Message(mtStatus, + tr("Function not working yet, use 3 or 4")); + return osContinue; + + case osUser5: // play audio cdrom + PlayFile("cdda://"); + return osEnd; + + case osUser6: // play dvd + PlayFile("dvdnav://menu"); + return osEnd; + + default: + break; + } + return state; +} + +int cPlayMenu::PlayFile(const char *Filename) +{ + cPlugin *p; + p = cPluginManager::GetPlugin("mpv"); + if (p) + { + Mpv_StartPlayService_v1_0_t r; + r.Filename = (char *)Filename; + + return p->Service("Mpv-StartPlayService_v1_0", &r); + } + + return false; +} + + |