Difference between revisions of "IPC (phatd-51d) protocol"
Jump to navigation
Jump to search
m (→51d -> phatd) |
(Add category and add phat_start_program syntax) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Specs]] |
||
NOTE: Preliminary info, will update as I get more |
NOTE: Preliminary info, will update as I get more |
||
== 51d -> phatd == |
== 51d -> phatd == |
||
<pre> |
<pre> |
||
+ | d820 |
||
+ | |||
special initial packet: |
special initial packet: |
||
long op_code = 0x20; |
long op_code = 0x20; |
||
Line 31: | Line 34: | ||
expect: arg1=0x64, arg3=num_disks |
expect: arg1=0x64, arg3=num_disks |
||
req num tracks: |
req num tracks: |
||
− | set: op_code=0x2, arg3= |
+ | set: op_code=0x2, arg3=num_tracks |
expect: arg4=num_tracks |
expect: arg4=num_tracks |
||
Line 56: | Line 59: | ||
req phat_status: (multiple ways of calling, not sure about info) |
req phat_status: (multiple ways of calling, not sure about info) |
||
set: op_code=0x8, arg4=0x0 |
set: op_code=0x8, arg4=0x0 |
||
− | expect: op_code=0x8, arg1=0x64, arg2=something+2, arg3=disk?, arg4=track? |
+ | expect: op_code=0x8, arg1=0x64, arg2=something+2, arg3=disk?, arg4=track?, arg5=offset?, char arg6[512]=Display Name (ie. Ace Of Base - All That She Wants) |
+ | |||
+ | phat_play: |
||
+ | set: op_code=0x9, arg3=disk_num, arg4=track_num, arg5=track_offset |
||
+ | expect: arg1=0x64, arg4=track_num |
||
+ | |||
+ | phat_recv_status: (This seems to just listen for status?) |
||
+ | expect: op_code=0x8, arg1=0x64, arg2=something+2, arg3=disk?, arg4=track?, arg5=offset?, char arg6[512]=Display Name (ie. Ace Of Base - All That She Wants) |
||
+ | |||
+ | phat_stop: |
||
+ | set: op_code=0xa |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playfile: |
||
+ | set: op_code=0xb, arg5=int(length||0=all?), char arg6[512]=filename |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_shutdown_server: |
||
+ | set: op_code=0xd |
||
+ | expect: arg1=0x64 |
||
req phat_genre: |
req phat_genre: |
||
Line 65: | Line 87: | ||
set: op_code=0xf, arg3=disk_num, arg4=track_num |
set: op_code=0xf, arg3=disk_num, arg4=track_num |
||
expect: arg1=0x64, char arg6[]="Comment\0" |
expect: arg1=0x64, char arg6[]="Comment\0" |
||
+ | |||
+ | phat_randdisk: |
||
+ | set: op_code=0x17, arg3=??random?? |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_randall: |
||
+ | set: op_code=0x18, arg3=??random?? |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_randoff: |
||
+ | set: op_code=0x19, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_repeatdisk: |
||
+ | set: op_code=0x1a, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_repeattrack: |
||
+ | set: op_code=0x1b, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_repeatoff: |
||
+ | set: op_code=0x1c, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode: |
||
+ | set: op_code=0x1f |
||
+ | expect: arg1=0x64, arg3=play_mode |
||
+ | |||
+ | phat_announceon: |
||
+ | set: op_code=0x2a, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_announceoff: |
||
+ | set: op_code=0x2b, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode_normal: |
||
+ | set: op_code=0x2c, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode_artist: |
||
+ | set: op_code=0x2d, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode_genre: |
||
+ | set: op_code=0x2e, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode_album: |
||
+ | set: op_code=0x2f, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | req phat_nexttrack: |
||
+ | set: op_code=0x30, arg3=disk_num ,arg4=track_num |
||
+ | expect: op_code=0x30, arg1=0x64 |
||
+ | |||
+ | phat_playmode_eodstop: (play only current disk?) |
||
+ | set: op_code=0x31, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_setcur: |
||
+ | set: op_code=0x32, arg3=disk_num?, arg4=track_num? |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_playmode_alpha: |
||
+ | set: op_code=0x35, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_swap_channels: |
||
+ | set: op_code=0x33, arg3=??random?? |
||
+ | expect: arg1=0x64 |
||
req phat_playlist: |
req phat_playlist: |
||
Line 77: | Line 171: | ||
set: op_code=0x37, arg3=disk_num, arg4=track_num |
set: op_code=0x37, arg3=disk_num, arg4=track_num |
||
expect: arg1=0x64, arg5=duration |
expect: arg1=0x64, arg5=duration |
||
+ | |||
+ | phat_badtrack: |
||
+ | set: op_code=0x51, arg3=0 |
||
+ | expect: arg1=0x64 |
||
+ | |||
+ | phat_eot: (end of track) |
||
+ | set: op_code=0x52, arg3=0 |
||
+ | expect: arg1=0x64 |
||
req phat_tid: (track ID? - unused by my 51d) |
req phat_tid: (track ID? - unused by my 51d) |
||
Line 82: | Line 184: | ||
expect: arg1=0x64, arg5=phat_tid |
expect: arg1=0x64, arg5=phat_tid |
||
+ | phat_start_program: |
||
− | req phat_nexttrack: |
||
− | set: op_code= |
+ | set: op_code=0x67, char arg6[]="Program\0" |
− | expect: |
+ | expect: arg1=0x64 |
</pre> |
</pre> |
Latest revision as of 12:02, 3 January 2006
NOTE: Preliminary info, will update as I get more
51d -> phatd
d820 special initial packet: long op_code = 0x20; long arg1 = 0; long arg2 = PID + 1000; followed by packet structure (0x218 bytes) long op_code; (0x0 offset) long arg1; (0x4 offset) usually 0x64 from phatd so far (signature for a reply?) long arg2; (0x8 offset) long arg3; (0xC offset) long arg4; (0x10 offset) long arg5; (0x14 offset) long arg6; (0x18 offset) PHATLIB OP CODES (51d info): 'play': set: op_code=0x9:, arg2=disk_num, arg3=track_num, arg4=track_offset expect: arg1=0x64 0x1f or 0x34: query play mode req num disks: set: op_code=0x1 expect: arg1=0x64, arg3=num_disks req num tracks: set: op_code=0x2, arg3=num_tracks expect: arg4=num_tracks req name of disk: set: op_code=0x3, arg3=disk_num expect: arg1=0x64, char arg6[]="Disk Name\0" req phat_filename: set: op_code=0x4, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="File Name\0" req phat_desc: set: op_code=0x5, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Track Name\0" req phat_artist: set: op_code=0x6, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Artist Name\0" req phat_songname: set: op_code=0x7, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Artist Name\0" req phat_status: (multiple ways of calling, not sure about info) set: op_code=0x8, arg4=0x0 expect: op_code=0x8, arg1=0x64, arg2=something+2, arg3=disk?, arg4=track?, arg5=offset?, char arg6[512]=Display Name (ie. Ace Of Base - All That She Wants) phat_play: set: op_code=0x9, arg3=disk_num, arg4=track_num, arg5=track_offset expect: arg1=0x64, arg4=track_num phat_recv_status: (This seems to just listen for status?) expect: op_code=0x8, arg1=0x64, arg2=something+2, arg3=disk?, arg4=track?, arg5=offset?, char arg6[512]=Display Name (ie. Ace Of Base - All That She Wants) phat_stop: set: op_code=0xa expect: arg1=0x64 phat_playfile: set: op_code=0xb, arg5=int(length||0=all?), char arg6[512]=filename expect: arg1=0x64 phat_shutdown_server: set: op_code=0xd expect: arg1=0x64 req phat_genre: set: op_code=0xe, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Current Genre\0" req phat_comment: set: op_code=0xf, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Comment\0" phat_randdisk: set: op_code=0x17, arg3=??random?? expect: arg1=0x64 phat_randall: set: op_code=0x18, arg3=??random?? expect: arg1=0x64 phat_randoff: set: op_code=0x19, arg3=0 expect: arg1=0x64 phat_repeatdisk: set: op_code=0x1a, arg3=0 expect: arg1=0x64 phat_repeattrack: set: op_code=0x1b, arg3=0 expect: arg1=0x64 phat_repeatoff: set: op_code=0x1c, arg3=0 expect: arg1=0x64 phat_playmode: set: op_code=0x1f expect: arg1=0x64, arg3=play_mode phat_announceon: set: op_code=0x2a, arg3=0 expect: arg1=0x64 phat_announceoff: set: op_code=0x2b, arg3=0 expect: arg1=0x64 phat_playmode_normal: set: op_code=0x2c, arg3=0 expect: arg1=0x64 phat_playmode_artist: set: op_code=0x2d, arg3=0 expect: arg1=0x64 phat_playmode_genre: set: op_code=0x2e, arg3=0 expect: arg1=0x64 phat_playmode_album: set: op_code=0x2f, arg3=0 expect: arg1=0x64 req phat_nexttrack: set: op_code=0x30, arg3=disk_num ,arg4=track_num expect: op_code=0x30, arg1=0x64 phat_playmode_eodstop: (play only current disk?) set: op_code=0x31, arg3=0 expect: arg1=0x64 phat_setcur: set: op_code=0x32, arg3=disk_num?, arg4=track_num? expect: arg1=0x64 phat_playmode_alpha: set: op_code=0x35, arg3=0 expect: arg1=0x64 phat_swap_channels: set: op_code=0x33, arg3=??random?? expect: arg1=0x64 req phat_playlist: set: op_code=0x36, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Playlist\0" req phat_album: set: op_code=0x37, arg3=disk_num, arg4=track_num expect: arg1=0x64, char arg6[]="Album\0" req phat_duration: set: op_code=0x37, arg3=disk_num, arg4=track_num expect: arg1=0x64, arg5=duration phat_badtrack: set: op_code=0x51, arg3=0 expect: arg1=0x64 phat_eot: (end of track) set: op_code=0x52, arg3=0 expect: arg1=0x64 req phat_tid: (track ID? - unused by my 51d) set: op_code=0x64, arg3=disk_num ,arg4=track_num expect: arg1=0x64, arg5=phat_tid phat_start_program: set: op_code=0x67, char arg6[]="Program\0" expect: arg1=0x64