Difference between revisions of "Frontend control socket"

From MythTV Official Wiki
Jump to: navigation, search
Line 1: Line 1:
Release 0.19 of MythTV introduced the ability to control mythfrontend via a socket interface. Commands are sent and replies are received in text mode, there is no fancy  
+
Release [[Release_Notes_-_0.19|0.19]] of MythTV introduced the ability to control mythfrontend via a socket interface. Commands are sent and replies are received in text mode, there is no fancy xml interface or anything - it is meant to be able to be used via something as simple as telnet. This feature has to be enabled in the general settings of the [[frontend]] setup. The default port is 6546, so after restarting mythfrontend, you can test by telnetting to localhost on port 6546  
xml interface or anything - it is meant to be able to be used via something as simple as telnet.
+
<pre>telnet localhost 6546</pre>
 
 
This feature has to be enabled in the general settings of the frontend setup. The default port is 6546, so after restarting mythfrontend, you can test by telnetting to localhost on port 6546 ("telnet localhost 6546"). For a list of supported commands, type "help". For help on a specific command, type "help COMMAND" (where COMMAND is the name of the command like "help jump").
 
 
 
 
There can be only one socket connection to mythfrontend at a time, if a new connection is opened, the old one will be automatically closed.
 
There can be only one socket connection to mythfrontend at a time, if a new connection is opened, the old one will be automatically closed.
  
 
See also [http://www.mythtv.org/docs/mythtv-HOWTO-11.html#ss11.6 MythTV docs on Telnet socket ]
 
See also [http://www.mythtv.org/docs/mythtv-HOWTO-11.html#ss11.6 MythTV docs on Telnet socket ]
  
[source: [http://svn.mythtv.org/trac/changeset/8688 Changeset 8688 ]]
+
= Supported Commands =
 
+
For a list of supported commands, type "help". For help on a specific command, type "help COMMAND" (where COMMAND is the name of the command like "help jump").
[[Category:HOWTO]]
+
== jump ==
 
+
<pre>
 
+
Usage: jump JUMPPOINT
----
 
 
 
Here is an example of how you can use the telnet port to run the MythTV frontend.
 
  
   [[Controlling MythTV from a DirectTV D11 remote]]
+
Where JUMPPOINT is one of the following:
 
+
channelpriorities    - Channel Recording Priorities
Here is an example of how you can use the telnet port and a Nokia N80 to run the MythTV frontend.
+
channelrecpriority  - Channel Recording Priorities
 
+
deletebox            - TV Recording Deletion
  [http://www.csse.unimelb.edu.au/~aharwood/mythtvmobileremote.html MythTV Mobile Remote]
+
deleterecordings    - TV Recording Deletion
 
+
flixbrowse          - Netflix Browser
Here is an example of how you can control a remote frontend using the telnet socket using Kommander (http://kommander.kdewebdev.org/)
+
flixhistory          - Netflix History
 
+
flixqueue            - Netflix Queue
  [http://www.luckies.nl/remotekommander/ RemoteKommander]
+
guidegrid            - Program Guide
 
+
livetv              - Live TV
 
+
livetvinguide        - Live TV In Guide
The command set was expanded in Changeset 12907 (by Chris Pinkham)
+
mainmenu            - Main Menu
 
+
managerecordings    - Manage Recordings / Fix Conflicts
Changeset: http://cvs.mythtv.org/trac/changeset/12907
+
manualbox            - Manual Record Scheduling
 +
manualrecording      - Manual Record Scheduling
 +
musicplaylists      - Select music playlists
 +
mythgallery          - MythGallery
 +
mythgame            - MythGame
 +
mythmovietime        - MythMovieTime
 +
mythnews            - MythNews
 +
mythvideo            - MythVideo
 +
mythweather          - MythWeather
 +
playbackbox          - TV Recording Playback
 +
playbackrecordings  - TV Recording Playback
 +
playdvd              - Play DVD
 +
playmusic            - Play music
 +
previousbox          - Previously Recorded
 +
progfinder          - Program Finder
 +
programfinder        - Program Finder
 +
programguide        - Program Guide
 +
programrecpriority   - Program Recording Priorities
 +
recordingpriorities  - Program Recording Priorities
 +
ripcd                - Rip CD
 +
ripdvd              - Rip DVD
 +
statusbox            - Status Screen
 +
videobrowser        - Video Browser
 +
videogallery        - Video Gallery
 +
videolistings        - Video Listings
 +
videomanager        - Video Manager
 +
viewscheduled        - Manage Recordings / Fix Conflicts
 +
</pre>
 +
== key ==
 +
<pre>
 +
key LETTER          - Send the letter key specified
 +
key NUMBER          - Send the number key specified
 +
key CODE            - Send one of the following key codes
 +
</pre>
 +
Supported keys:
 +
<pre>
 +
#, $, %, &, (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, [, \, ], ampersand, asterisk, backslash, backspace,
 +
backtab, bar, bracketleft, bracketright, colon, comma, delete, dollar, down, end, enter, equal, escape,
 +
f1, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f2, f20, f21, f22, f23, f24, f3, f4, f5, f6, f7, f8, f9,
 +
greater, home, insert, left, less, minus, numbersign, pagedown, pageup, parenleft, parenright, percent,
 +
period, pipe, plus, poundsign, question, return, right, semicolon, slash, space, tab, up, |
 +
</pre>
 +
== play ==
 +
<pre>
 +
play channel up      - Change channel Up
 +
play channel down    - Change channel Down
 +
play channel NUMBER  - Change to a specific channel number
 +
play chanid NUMBER    - Change to a specific channel id (chanid)
 +
play program CHANID yyyy-mm-ddThh:mm:ss
 +
                      - Play program with chanid & starttime
 +
play program CHANID yyyy-mm-ddThh:mm:ss resume
 +
                      - Resume program with chanid & starttime
 +
play save screenshot FILENAME
 +
                      - Save screenshot from current position
 +
play seek beginning  - Seek to the beginning of the recording
 +
play seek forward    - Skip forward in the video
 +
play seek backward    - Skip backwards in the video
 +
play seek HH:MM:SS    - Seek to a specific position
 +
play speed pause      - Pause playback
 +
play speed normal    - Playback at normal speed
 +
play speed 1x        - Playback at normal speed
 +
play speed -1x        - Playback at normal speed in reverse
 +
play speed 1/16x      - Playback at 1/16x speed
 +
play speed 1/8x      - Playback at 1/8x speed
 +
play speed 1/4x      - Playback at 1/4x speed
 +
play speed 1/2x      - Playback at 1/2x speed
 +
play speed 2x        - Playback at 2x speed
 +
play speed 4x        - Playback at 4x speed
 +
play speed 8x        - Playback at 8x speed
 +
play speed 16x        - Playback at 16x speed
 +
play stop            - Stop playback
 +
</pre>
 +
== query ==
 +
<pre>
 +
query location        - Query current screen or location (i.e. MainMenu)
 +
query recordings      - List currently available recordings
 +
query recording CHANID STARTTIME
 +
                      - List info about the specified program
 +
</pre>
 +
== exit ==
 +
Terminates the session.
 +
= Examples =
 +
* [[Controlling MythTV from a DirectTV D11 remote]]
 +
* [http://www.csse.unimelb.edu.au/~aharwood/mythtvmobileremote.html Controlling MythTV from a Nokia N80]
 +
* [http://www.luckies.nl/remotekommander/ Controlling MythTV using RemoteKommander] (http://kommander.kdewebdev.org/)
  
 +
= Developement =
 +
==Changeset [http://svn.mythtv.org/trac/changeset/8688 8688]==
 +
The initial implementation.
 +
==Changeset [http://cvs.mythtv.org/trac/changeset/12907 12907]==
 +
<pre>
 
Modified:
 
Modified:
  
Line 60: Line 143:
 
the middle of a key command. Here's a not-so-useful example:
 
the middle of a key command. Here's a not-so-useful example:
 
"key down down sleep down enter"
 
"key down down sleep down enter"
 +
</pre>
 +
[[Category:HOWTO]]

Revision as of 18:01, 10 March 2007

Release 0.19 of MythTV introduced the ability to control mythfrontend via a socket interface. Commands are sent and replies are received in text mode, there is no fancy xml interface or anything - it is meant to be able to be used via something as simple as telnet. This feature has to be enabled in the general settings of the frontend setup. The default port is 6546, so after restarting mythfrontend, you can test by telnetting to localhost on port 6546

telnet localhost 6546

There can be only one socket connection to mythfrontend at a time, if a new connection is opened, the old one will be automatically closed.

See also MythTV docs on Telnet socket

Supported Commands

For a list of supported commands, type "help". For help on a specific command, type "help COMMAND" (where COMMAND is the name of the command like "help jump").

jump

Usage: jump JUMPPOINT

Where JUMPPOINT is one of the following:
channelpriorities    - Channel Recording Priorities
channelrecpriority   - Channel Recording Priorities
deletebox            - TV Recording Deletion
deleterecordings     - TV Recording Deletion
flixbrowse           - Netflix Browser
flixhistory          - Netflix History
flixqueue            - Netflix Queue
guidegrid            - Program Guide
livetv               - Live TV
livetvinguide        - Live TV In Guide
mainmenu             - Main Menu
managerecordings     - Manage Recordings / Fix Conflicts
manualbox            - Manual Record Scheduling
manualrecording      - Manual Record Scheduling
musicplaylists       - Select music playlists
mythgallery          - MythGallery
mythgame             - MythGame
mythmovietime        - MythMovieTime
mythnews             - MythNews
mythvideo            - MythVideo
mythweather          - MythWeather
playbackbox          - TV Recording Playback
playbackrecordings   - TV Recording Playback
playdvd              - Play DVD
playmusic            - Play music
previousbox          - Previously Recorded
progfinder           - Program Finder
programfinder        - Program Finder
programguide         - Program Guide
programrecpriority   - Program Recording Priorities
recordingpriorities  - Program Recording Priorities
ripcd                - Rip CD
ripdvd               - Rip DVD
statusbox            - Status Screen
videobrowser         - Video Browser
videogallery         - Video Gallery
videolistings        - Video Listings
videomanager         - Video Manager
viewscheduled        - Manage Recordings / Fix Conflicts

key

key LETTER           - Send the letter key specified
key NUMBER           - Send the number key specified
key CODE             - Send one of the following key codes

Supported keys:

#, $, %, &, (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, [, \, ], ampersand, asterisk, backslash, backspace, 
backtab, bar, bracketleft, bracketright, colon, comma, delete, dollar, down, end, enter, equal, escape, 
f1, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f2, f20, f21, f22, f23, f24, f3, f4, f5, f6, f7, f8, f9, 
greater, home, insert, left, less, minus, numbersign, pagedown, pageup, parenleft, parenright, percent, 
period, pipe, plus, poundsign, question, return, right, semicolon, slash, space, tab, up, |

play

play channel up       - Change channel Up
play channel down     - Change channel Down
play channel NUMBER   - Change to a specific channel number
play chanid NUMBER    - Change to a specific channel id (chanid)
play program CHANID yyyy-mm-ddThh:mm:ss
                      - Play program with chanid & starttime
play program CHANID yyyy-mm-ddThh:mm:ss resume
                      - Resume program with chanid & starttime
play save screenshot FILENAME
                      - Save screenshot from current position
play seek beginning   - Seek to the beginning of the recording
play seek forward     - Skip forward in the video
play seek backward    - Skip backwards in the video
play seek HH:MM:SS    - Seek to a specific position
play speed pause      - Pause playback
play speed normal     - Playback at normal speed
play speed 1x         - Playback at normal speed
play speed -1x        - Playback at normal speed in reverse
play speed 1/16x      - Playback at 1/16x speed
play speed 1/8x       - Playback at 1/8x speed
play speed 1/4x       - Playback at 1/4x speed
play speed 1/2x       - Playback at 1/2x speed
play speed 2x         - Playback at 2x speed
play speed 4x         - Playback at 4x speed
play speed 8x         - Playback at 8x speed
play speed 16x        - Playback at 16x speed
play stop             - Stop playback

query

query location        - Query current screen or location (i.e. MainMenu)
query recordings      - List currently available recordings
query recording CHANID STARTTIME
                      - List info about the specified program

exit

Terminates the session.

Examples

Developement

Changeset 8688

The initial implementation.

Changeset 12907

Modified:

trunk/mythtv/programs/mythfrontend/networkcontrol.cpp

Log:

Network Control socket interface changes.

Add some new valid keys. The list:
home, end, return, tab, backtab, insert, delete, plus, comma, minus,
period, numbersign (aka poundsign), dollar, percent, ampersand, parenleft,
parenright, asterisk, question, bar, pipe, and F13 through F24. This also
adds the ability to use the actual symbol for mose of these such as "key +"
instead of having to type "key plus".

Add the ability to send key combinations such as CTRL+B, ALT+F, etc.. The
four supported modifiers are CTRL, ALT, SHIFT, and META and they can be
used individually such as CTRL+B or together such as CTRL+ALT+B.

Fix some minor bugs related to case conversion, previously the code would
lower() the whole input command and then uppercase the few places that
needed it such as when passing a Qt::ISODateTime, now we just lower() when
comparing things that need case-insensitive comparisons.

For debugging purposes, add the ability to sleep in the middle of a key
combination. You can now use the keyword 'sleep' to sleep one second in
the middle of a key command. Here's a not-so-useful example:
"key down down sleep down enter"