Myth Protocol 14

From MythTV

Jump to: navigation, search

Contents

Introduction

Initial findings (thanks to Bill Jackson for the help).

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

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

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]

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>

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

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]
Personal tools