summaryrefslogtreecommitdiff
path: root/playmenu.c
diff options
context:
space:
mode:
authorManiac <na@na.na>2015-07-03 22:29:41 +0200
committerManiac <na@na.na>2015-07-03 22:29:41 +0200
commitda407909879f82c15f786bda3fedda0cae892100 (patch)
tree143c2b842028c38e8f7facfe576567039459afd9 /playmenu.c
downloadvdr-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.c92
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;
+}
+
+