« Reply #1 on: January 08, 2011, 07:58:09 pm »
Sure, write a media plugin and corresponding player for it.
For anyone who wants to take their hand at it, this is the skinny for doing a new media type from scratch:
You will need a SVN checkout of the code somewhere where you wish to work on it, with the contents of /usr/pluto/lib copied into src/lib in the SVN tree to prepare things nicely. You will also need the pluto-dcegen, pluto-sql2cpp packages installed, and you will need to go into src/ScreenGen and make this to create the needed screengen utility.
ANY time you need to run DCEGen, sql2cpp, or ScreenGen, RUN them from their respective directories in src/
Go into HADesigner, and design remotes for the non-OSD orbiters, and the OSD orbiters.
Add some bits to the database, MediaType, MediaType_DesignObj tables for your new media type and designobjs for remotes. and to the Screen and Screen_DesignObj tables to map your new screens in place.
Create device templates for your plugin and player, use Hulu Plugin and Player for a reference.
Run sql2cpp, DCEGen, and ScreenGen, to get the code you need to modify.
Take FBReader, gut out the UI, and wrap a DCE device around it for the player.
For the plugin, use one of the simpler plugins like the Game Plugin or the Hulu Plugin as a guide.
Then, modify UpdateEntArea to say that your new media type is not a non-pluto media type, and add code to create your new Books scenario to show a file list for your new media type.
Then, modify UpdateMedia, to scan for e-books, and to at least set their media type appropriately, so that they show up in the file list.
Then, create new Package entries in the web admin for your new Book Plugin and Player. Add the binary packages you create to your Plugin and Player templates respectively.
Then, Add entries to your InstallWizard and InstallWizard_Distro tables, so that you can install the package automatically from the web admin, by checking it in the Software Modules page.
You can then check in sqlCVS, and svn add and do a diff on what you've created, to submit as a patch.