Skip to content

Commit

Permalink
MythFrontend: Add playback support to the http interface.
Browse files Browse the repository at this point in the history
- convert the network control code to use a MythEvent message with the
new ACTION_HANDLEMEDIA action and a QStringList for the arguments.

- support ACTION_HANDLEMEDIA in MythFEXML.

The following commands are now functionally equivalent for the network
control and http interfaces (though the http version will currently only
work when the UI is on the main screen):-

play file myth://Videos@backend-ip:6543/test.mpg
http://backend-
ip:6543/test.mpg
  • Loading branch information
Mark Kendall committed May 12, 2011
1 parent 9357aaf commit 30bdb49
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 9 deletions.
12 changes: 7 additions & 5 deletions mythtv/libs/libmythui/mythmainwindow.cpp
Expand Up @@ -1025,6 +1025,8 @@ void MythMainWindow::InitKeys()
"Edit"), "E");
RegisterKey("Global", ACTION_SCREENSHOT, QT_TRANSLATE_NOOP("MythControls",
"Save screenshot"), "");
RegisterKey("Global", ACTION_HANDLEMEDIA, QT_TRANSLATE_NOOP("MythControls",
"Play a media resource"), "");

RegisterKey("Global", "PAGEUP", QT_TRANSLATE_NOOP("MythControls",
"Page Up"), "PgUp");
Expand Down Expand Up @@ -2189,12 +2191,12 @@ void MythMainWindow::customEvent(QEvent *ce)
MythEvent *me = (MythEvent *)ce;
QString message = me->Message();

if (message.left(12) == "HANDLE_MEDIA")
if (message.startsWith(ACTION_HANDLEMEDIA))
{
QStringList tokens = message.split(' ', QString::SkipEmptyParts);
HandleMedia(tokens[1],
message.mid(tokens[0].length() +
tokens[1].length() + 2));
if (me->ExtraDataCount() == 1)
HandleMedia("Internal", me->ExtraData(0));
else
VERBOSE(VB_IMPORTANT, "Failed to handle media");
}
else if (message.startsWith(ACTION_SCREENSHOT))
{
Expand Down
3 changes: 2 additions & 1 deletion mythtv/libs/libmythui/mythuiactions.h
Expand Up @@ -18,6 +18,7 @@
#define ACTION_LEFT "LEFT"
#define ACTION_RIGHT "RIGHT"

#define ACTION_SCREENSHOT "SCREENSHOT"
#define ACTION_HANDLEMEDIA "HANDLEMEDIA"
#define ACTION_SCREENSHOT "SCREENSHOT"

#endif // MYTHUI_ACTIONS_H
5 changes: 5 additions & 0 deletions mythtv/programs/mythfrontend/mythfexml.cpp
Expand Up @@ -187,6 +187,11 @@ void MythFEXML::SendAction(HTTPRequest *pRequest)
args << map->value("height");
valid = true;
}
else if (ACTION_HANDLEMEDIA == sText && 2 == pcount)
{
args << map->value("file");
valid = true;
}

if (valid)
{
Expand Down
7 changes: 4 additions & 3 deletions mythtv/programs/mythfrontend/networkcontrol.cpp
Expand Up @@ -588,9 +588,10 @@ QString NetworkControl::processPlay(NetworkCommand *nc, int clientID)

if (GetMythUI()->GetCurrentLocation().toLower() == "mainmenu")
{
QString msg = QString("HANDLE_MEDIA Internal %1").arg(nc->getFrom(2));
MythEvent me(msg);
QCoreApplication::postEvent(GetMythMainWindow(), me.clone());
QStringList args;
args << nc->getFrom(2);
MythEvent *me = new MythEvent(ACTION_HANDLEMEDIA, args);
qApp->postEvent(GetMythMainWindow(), me);
}
else
return QString("Unable to change to main menu to start playback!");
Expand Down

0 comments on commit 30bdb49

Please sign in to comment.