But I'm trying to find what calls that CMD_Rip_Disk(), which sends it an empty sFormat.
maybe you want to look at the DCERouter log? You know, it's all Data, Commands & Events
Good start for tracing dataflow through the DCE sockets. Thanks.
I click the "All/Rip" button in the jukebox's management Orbiter screen, and /var/log/pluto/DCERouter.log says:
08 01/21/08 18:13:40.647 Received Message from 20 (OnScreen Orbiter / Bedroom (Master)) to 20 (OnScreen Orbiter / Bedroom (Master)), type 1 id 741 Command:Goto Screen, retry none, parameters: <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 29(PK_MediaType): 0 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 131(EK_Disc): -999 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 159(PK_Screen): 19 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 162(Caption): The default name to save this media under is shown below. You may change it. Then, touch 'Save Public' to make this media public, or, confirm that you are the current user and touch 'Save Private'. Use / for subdirectories, like: dir/filename <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 236(Command): 20 33 1 720 17 <%=U%> 13 "<%=9%>" <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 237(Advanced options): 1 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 251(Interruption): 0 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 252(Turn On): 0 <0x77804b90>
08 01/21/08 18:13:40.647 Parameter 253(Queue): 0 <0x77804b90>
08 01/21/08 18:13:40.648 Received Message from 20 (OnScreen Orbiter / Bedroom (Master)) to 10 (Media Plug-in / Bedroom (Master)), type 1 id 817 Command:Get Default Ripping Info, retry none, parameters: <0x7f814b90>
08 01/21/08 18:13:40.648 Parameter 13(Filename): Unknown disk <0x7f814b90>
08 01/21/08 18:13:40.648 Parameter 53(UseDefault): 1 <0x7f814b90>
08 01/21/08 18:13:40.649 Parameter 131(EK_Disc): -999 <0x7f814b90>
08 01/21/08 18:13:40.649 Parameter 219(Path): <0x7f814b90>
08 01/21/08 18:13:40.649 Parameter 233(DriveID): 1 <0x7f814b90>
08 01/21/08 18:13:40.649 Parameter 234(Directory): <0x7f814b90>
08 01/21/08 18:13:40.649 Parameter 235(Storage Device Name): CORE (#1) 7126MB <0x7f814b90>
I get prompted to specify the storage destintion for the rip, click the Orbiter "Save to Public" button, and the log says:
08 01/21/08 18:14:06.135 Received Message from 20 (OnScreen Orbiter / Bedroom (Master)) to 33 (VAIO DVD Changer / Bedroom (Master)), type 1 id 720 Command:Bulk Rip, retry none, parameters: <0x77804b90>
08 01/21/08 18:14:06.135 Parameter 13(Filename): /home/public/data/___audio___or___video___/ <0x77804b90>
08 01/21/08 18:14:06.135 Parameter 17(PK_Users): 1 <0x77804b90>
05 01/21/08 18:14:06.135 The target device 33 (routed to 33) has not registered. <0xb6c46b90>
The rip never starts, which seems to immediately abort as per
Mantis bug#3784.
The "Get Default Ripping Info" command isn't supposed to include rip format, so that's OK. What's missing in the log is the rip format parameters in the "Bulk Rip" command, as per Powerfile_C200.cpp lines 531-544:
/** @brief COMMAND: #720 - Bulk Rip */
/** Mass ripping */
/** @param #13 Filename */
/** A path where to put the files. By default it will be /home/[public | user_xxx]/data/[music|movies].
If this parameter starts with a "/" it is considered absolute. Otherwise it is considered a sub-directory under the aforementioned default */
/** @param #17 PK_Users */
/** 0 to rip as public, or the user id to rip as private */
[b]/** @param #20 Format */
/** For cd's only, flac,mp3,wav,ogg */[/b]
/** @param #157 Disks */
/** Comma delimited list of slot number. For all, use "*". */
void Powerfile_C200::CMD_Bulk_Rip(string sFilename,int iPK_Users,[b]string sFormat[/b],string sDisks,string &sCMD_Result,Message *pMessage)
So the DCE comand is missing params 20 (Format) and 157 (Disks: slot number list or "*"). I expect the Powerfile device logic converts expected but missing DCE parameters into empty strings passed as arguments to the specified commands. The Powerfile_C200::CMD_Bulk_Rip() logic makes an empty sDisks argument equivalent to "*", which is correct in this instance (though that could hide a bug). But an empty sFormat argument defaults to ogg, which is the problem. The bug is upstream, probably in the Onscreen Orbiter's code that sends the "Bulk Rip" command to the Powerfile_C200 device.
But inspecting the Orbiter code doesn't reveal where that message is sent from, to start the tracing back upstream to where the Format param 20 is lost.