Your Digital Media Has Never Looked So Good

 
GargiuloJ
Topic Author
Posts: 27
Joined: Mon Dec 06, 2004 8:41 pm
Location: New York

MediaStation - Yet Another Media Front End

Fri Jul 11, 2008 9:49 pm

It is with mixed emotions that I am creating this post.

I have enjoyed my Roku, and have little by little been working on a front end for MPlay (or any other player) that blends nicely into the Roku base UI.

Unfortunately, over the years I never found the time to make it presentable to the public, and now my Roku's network has apparently died. This has certainly put an end my never-ending project.

Therefore, I have decided to post the last stable build and source code in the hopes that it lives on.

The content is available here and includes an old screen shot to give you an idea of what it looks like (and yes the silly hat icons can be changed :) )
http://www.thegargiulos.com/MediaStation

How it works...

Media Station uses 3 XML files:

cfgMediaPlayers
This file contains the list of media players that are available on the system.

<MediaPlayerList>

   <MediaPlayer>
      <Name>mplay</Name>
      <DisplayName>MPlay v3</DisplayName>
      <Location>/mnt/smb/themaxx/media/RokuApps/MPlay_v3.5_20060309/</Location>
      <CommandLine>MPlay.app -FixTS "%PARAMS%"</CommandLine>
   </MediaPlayer>

   ...

</MediaPlayerList>



cfgMediaCategories
This file contains the list of categories that specific media items can belong to.
MediaStation uses this list to build the "tabs" on the left side of the screen and filter the media item thumbnails.

<MediaCategoryList>

   <MediaCategory>
      <Name>*</Name>
      <DisplayName>All</DisplayName>
      <ImageActive>./Themes/Default/movie-norm.png</ImageActive>
      <ImageInactive>./Themes/Default/movie-high.png</ImageInactive>
   </MediaCategory>

   ...

</MediaCategoryList>



cfgMedia.xml
This file contains the media items available to play.

<MediaEntryList>

   <MediaEntry>
      <Name>AeonFlux</Name>
      <DisplayName>Aeon Flux</DisplayName>
      <ImageActive>./Data/images/aeonflux_movie.png</ImageActive>
      <ImageInactive>./Data/images/aeonflux_movie.png</ImageInactive>
      <MediaPlayer>mplay</MediaPlayer>
      <PlayerParams>/mnt/smb/themaxx/media/DVD Library/Action Adventure/AeonFlux</PlayerParams>
      <MediaCategories>action</MediaCategories>
   </MediaEntry>

   ...
   
</MediaEntryList>

[/code]

Media items can be in multiple categories. Simply specify the categories using a comma separated list.

Putting the pieces together...

When selecting an item to watch, MediaStation looks up the MediaPlayer property of the MediaEntry to get the command line for the player. It then replaces the %PARAMS% token with the PlayerParameters in the MediaEntry. So in the example above the command line would become:
/mnt/smb/themaxx/media/RokuApps/MPlay_v3.5_20060309/MPlay.app -FixTS "/mnt/smb/themaxx/media/DVD Library/Action Adventure/AeonFlux"



Getting it running

Just unzip the binary ZIP and preserve the directory structure to a share where the Roku can see it.
The Roku should see the new app and present an icon on the main screen.
The zip contains sample XML content and thumbnails so you will get an idea what it will look like after you customize the data to point to your content.
The ZIP does NOT contain any media, just some example thumbnails.



Remote Control

I recall having some problem with the "select" or "play" button on the remote. So try both, one works, and since my Roku is dead, I can not really test it out right now :( Otherwise it works as expected (up, down, page up, page down, etc...)


Regarding the code

This is my apology for the bad STL coding style. This was my first STL and XML project, and as such the code design is not what I would consider elegant by any means. Not to mention looking back on code you wrote 2+ years ago always make you question yourself (what the heck was I thinking when I did that? Did I actually think that was a good thing to do?)


Compiling the source

I was building the source in a Virtual machine running Fedora Core 4 and a cross compiler.
It should build like the sample apps. Nothing special needed. I was using Visual Studio as a code editor on Windows so there is a project under the container folder that held all the source files together. You can not build from VS. There are also PSP files for the icons. These were created with Jasc Paint Shop Pro 7.


Good luck to those still using the Roku. It was fun while it lasted.

// John

Who is online

Users browsing this forum: No registered users and 3 guests