Myth Protocol 14
From MythTV
Contents |
[edit]
Introduction
Initial findings (thanks to Bill Jackson for the help).
[edit]
Files That Contain Protocol Details
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/mythcontext.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/remotefile.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/themedmenu.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/util.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/remoteencoder.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/remoteutil.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/scheduledrecording.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/tv_rec.cpp,v RCS file: /var/lib/mythcvs/mythtv/libs/libmythui/themedmenu.cpp,v RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/playbacksock.cpp,v RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/scheduler.cpp,v RCS file: /var/lib/mythcvs/mythtv/programs/mythfrontend/main.cpp,v RCS file: /var/lib/mythcvs/mythtv/programs/mythfrontend/statusbox.cpp,v
[edit]
Connection Start/End
* MYTH_PROTO_VERSION <version> :: [ACCEPT|REJECT] <version> * DONE :: closes socket * SUBCOMMANDS: ANN <command> <hostname> ... :: ... * SUBCOMMANDS: QUERY_RECORDER <cardid> <subcommand> ... :: ... * SUBCOMMANDS: QUERY_REMOTEENCODER <cardid> <subcommand> ... :: ... * ELSE: QUERY_FILETRANSFER <cardid> * :: ok * ELSE: QUERY_RECORDER <cardid> * :: ok * ELSE: QUERY_REMOTEENCODER <cardid> * :: NULL * ANN [[File Transfer]] <hostname> <qurl> :: OK <socket> <int64:filesize> * ANN Playback <hostname> <bool:wantevents> :: OK * ANN [[Ring Buffer]] <hostname> <cardid> :: OK * ANN [[Slave Backend]] <hostname> <ip-addr> :: OK
[edit]
Playback Commands
* CHECK_RECORDING <pginfo> :: <cardid> * DELETE_RECORDING <pginfo> :: [0|errmsg|cardid] * FILL_PROGRAM_INFO <playbackhost> <pginfo> :: <pginfo> * FORGET_RECORDING <pginfo> :: 0 * FREE_TUNER <cardid> :: [FAILED|OK] * GET_FREE_RECORDER :: <cardid> <hostname> <port> * GET_FREE_RECORDER_COUNT :: <int> * GET_NEXT_FREE_RECORDER <cardid> :: <cardid> <hostname> <port> * GET_RECORDER_FROM_NUM <cardid> :: <hostname> <port> * GET_RECORDER_NUM <pginfo> :: <cardid> <hostname> <port> * LOCK_TUNER :: <cardid> <videodevice> <audiodevice> <vbidevice> * MESSAGE <msg> :: OK * QUERY_CHECKFILE <pginfo> :: <bool:exists> * QUERY_FREESPACE :: <totalspace> <usedspace> * QUERY_GENPIXMAP <pginfo> :: [OK|BAD] * QUERY_GETALLPENDING :: <[[has Conflicts]]> SEQ <num> OF <pginfo> * QUERY_GETALLSCHEDULED :: SEQ <num> OF <pginfo> * QUERY_GETCONFLICTING <pginfo> :: SEQ <num> OF <pginfo> * QUERY_GUIDEDATATHROUGH :: <date> * QUERY_ISRECORDING :: <[[rec Count]]> * QUERY_IS_ACTIVE_BACKEND <hostname> :: [FALSE|TRUE] * QUERY_LOAD :: [errmsg|(<float> <float> <float>)] * QUERY_MEMSTATS :: [errmsg|(<totalMB> <freeMB> <totalVM> <freeVM>)] * QUERY_RECORDINGS [Play|Delete] :: SEQ OF <pginfo> * QUERY_UPTIME :: <time> * QUEUE_TRANSCODE <pginfo> :: 0 * QUEUE_TRANSCODE_CUTLIST <pginfo> :: 0 * QUEUE_TRANSCODE_STOP <pginfo> :: 0 * REACTIVATE_RECORDING <pginfo> :: <bool> * REFRESH_BACKEND :: OK * RESCHEDULE_RECORDINGS <recordid> :: [0|1] * STOP_RECORDING <pginfo> :: [0|errmsg|cardid]
[edit]
File Transfer Commands
* QUERY_FILETRANSFER <cardid> DONE :: ok * QUERY_FILETRANSFER <cardid> IS_OPEN :: <bool:isopen> * QUERY_FILETRANSFER <cardid> REQUEST_BLOCK <size> :: <sent> * QUERY_FILETRANSFER <cardid> SEEK <int64:pos> <whence> <int64:curpos> :: <int64:pos>
[edit]
Recorder Commands
* QUERY_RECORDER <cardid> CANCEL_NEXT_RECORDING :: ok * QUERY_RECORDER <cardid> CHANGE_BRIGHTNESS <bool:up> :: <0|-1|percent> * QUERY_RECORDER <cardid> CHANGE_CHANNEL <CHANNEL_DIRECTION_*:direction> :: ok * QUERY_RECORDER <cardid> CHANGE_COLOUR <bool:up> :: <0|-1|percent> * QUERY_RECORDER <cardid> CHANGE_CONTRAST <bool:up> :: <0|-1|percent> * QUERY_RECORDER <cardid> CHANGE_DEINTERLACER <mode> :: NULL * QUERY_RECORDER <cardid> CHANGE_HUE <bool:up> :: <0|-1|percent> * QUERY_RECORDER <cardid> CHECK_CHANNEL <channum> :: <bool:ok> * QUERY_RECORDER <cardid> CHECK_CHANNEL_PREFIX <channum> :: <bool:ok> <bool:unique> * QUERY_RECORDER <cardid> DONE_RINGBUF :: OK * QUERY_RECORDER <cardid> FILL_POSITION_MAP <start> <end> :: ok | SEQ OF (<int64:key> <int64:value>) * QUERY_RECORDER <cardid> FINISH_RECORDING :: ok * QUERY_RECORDER <cardid> FRONTEND_READY :: ok * QUERY_RECORDER <cardid> GET_FILE_POSITION :: <int64:filepos> * QUERY_RECORDER <cardid> GET_FRAMERATE :: <float:fps> * QUERY_RECORDER <cardid> GET_FRAMES_WRITTEN :: <int64:nFrames> * QUERY_RECORDER <cardid> GET_FREE_SPACE <int64:pos> :: <int64:avail> * QUERY_RECORDER <cardid> GET_INPUT_NAME :: <input> * QUERY_RECORDER <cardid> GET_KEYFRAME_POS <int64:desired> :: <int64:framepos> * QUERY_RECORDER <cardid> GET_NEXT_PROGRAM_INFO <channelname> <chanid> <direction> <starttime> :: <title> <subtitle> <desc> <category> <starttime> <endtime> <callsign> <iconpath> <channelname> <chanid> <seriesid> <programid> * QUERY_RECORDER <cardid> GET_PROGRAM_INFO :: <title> <subtitle> <desc> <category> <starttime> <endtime> <callsign> <iconpath> <channelname> <chanid> <seriesid> <programid> <[[chan Output Filters]]> <repeat> <airdate> <stars> * QUERY_RECORDER <cardid> GET_RECORDING :: <pginfo> * QUERY_RECORDER <cardid> IS_RECORDING :: <bool:[[is Recording]]> * QUERY_RECORDER <cardid> PAUSE :: ok * QUERY_RECORDER <cardid> REQUEST_BLOCK_RINGBUF <size> :: <sent> * QUERY_RECORDER <cardid> SEEK_RINGBUF <int64:pos> <whence> <int64:curpos> :: <int64:pos> * QUERY_RECORDER <cardid> SETUP_RING_BUFFER <bool:pip> :: <rbuf-url> <int64:filesize> <int64:fillamount> * QUERY_RECORDER <cardid> SET_CHANNEL <chan> :: ok * QUERY_RECORDER <cardid> SPAWN_LIVETV :: ok * QUERY_RECORDER <cardid> STOP_LIVETV :: ok * QUERY_RECORDER <cardid> STOP_PLAYING :: ok * QUERY_RECORDER <cardid> TOGGLE_CHANNEL_FAVORITE :: ok * QUERY_RECORDER <cardid> TOGGLE_INPUTS :: ok
[edit]
Remote Encoder Commands
* QUERY_REMOTEENCODER <cardid> GET_STATE :: <TVState:state> * QUERY_REMOTEENCODER <cardid> IS_BUSY :: <bool:state> * QUERY_REMOTEENCODER <cardid> MATCHES_RECORDING <pginfo> :: <bool> * QUERY_REMOTEENCODER <cardid> RECORD_PENDING <secsleft> <pginfo> :: OK * QUERY_REMOTEENCODER <cardid> START_RECORDING <pginfo> :: [0|1|-1]
