|This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.|
How to use it
SCREEN_FileSave has three specific parameters: default user, caption and the command to be executed with the file.
From a DCE project, you will have to include "Gen_Devices/AllScreens.h" and write two lines of code:
DCE::SCREEN_FileSave screen_FileSave(m_dwPK_Device,pMessage->m_dwPK_Device_From, "", "Please type a name for the file", sCommand);
How it's implemented
Orbiter has a screen handler called SCREEN_FileSave and implemented in ScreenHandler class. The first thing it does is to send a CMD_Get_Default_Ripping_Info command to Media Plugin and get the default name for the file the be saved, the id of the device with most free space, the name of the device and the base folder for it. The information is saved in few member variables: m_sSaveFile_FileName, m_nSaveFile_PK_DeviceDrive, m_sSaveFile_Drive and m_sSaveFile_MountedFolder.
Variables use for gui to be substituted with real values are:
VARIABLE_Misc_Data_3_CONST (#31) : the name of the device (which includes the device id and the amount of free space in MB) VARIABLE_Misc_Data_4_CONST (#33) : relative folder to base path VARIABLE_Device_List_CONST (#45) : the id of the storage device VARIABLE_Misc_Data_5_CONST (#43) : base path for device VARIABLE_Seek_Value_CONST (#17) : the file name
The screen has two registered interceptors:
- for cbObjectSelected (method FileSave_ObjectSelected)
- for cbDataGridSelected (method FileSave_GridSelected)
- Saving bookmarks