Difference between revisions of "Frontend control socket"
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 | ||
− | |||
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 ] | ||
− | + | = 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 == | |
− | + | <pre> | |
− | + | Usage: jump JUMPPOINT | |
− | |||
− | |||
− | |||
− | [[Controlling MythTV from a DirectTV D11 remote]] | + | 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 | ||
+ | </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
Contents
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
- Controlling MythTV from a DirectTV D11 remote
- Controlling MythTV from a Nokia N80
- Controlling MythTV using RemoteKommander (http://kommander.kdewebdev.org/)
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"