Did a huge rearange of the code, pushed a lot of functionality through
the dlna object and into static helper methods. This is partially in
preperation for requiring different behaviour for different clients
(xbox, ps3, etc) and partially because the code was a mess and really
needed cleaning up.
Changed Artist and Album to be containers instead of Items, having them
as Items was definitely incorrect. Hopefully this will improve behaviour
in Xbox360 Music App and VLC, WPM was fine beforehand.
Had to pass the actual MB item around instead of just the id because
there are possilby mulitple images available and the api barfs if there
are no images available. This meant a fair bit of refactoring but its
better for it.
Tweaked the platinum ObjectClass for epsiodes to be
object.item.videoItem.videoBroadcast instead of just
object.item.videoItem - I think this will get removed once I test it on
the Xbox360 and discover it doesn't work as expected.
Added well know 'Music Genre' and 'Video Series' containers and items.
I found the didl-lite xsd which has decent descriptions for some of its
elements and attributes. A lot of these map directly to Platinum
Properties so I copied a lot of the descriptions above where the
properties are being utilised. Ideally this information would be in
triple slash comments inside the Platinum Library but alas it is not.
Cleaned up some commented out code, but didn't get as much cleanup does
as I'd like because I realised I should really implement music properly
before removing the old code that does music.
Implemened the well known Music/All Music, Music/Artist and Music/Genre
folders as well as the sub items for those folders which are
MusicAlbumItem, MusicArtistItem and MusicItem
Somehow I've ended up with different line endings than the previous
commit so the diff on Plugin.cs is practically the entire file, but
these changes are too good to throw awy in order to fix that...
Hanselmans recent post is very timely:
http://www.hanselman.com/blog/YoureJustAnotherCarriageReturnLineFeedInTheWall.aspx
Actual changes:
Created a dlna specific object model to wrap the mediabrowser model.
It's only functional for Video and even then really only for the way
video is used on the Xbox360. Music is missing at the moment.
Utilised the new object model when Search and BrowseDirect is called.
Pulled in the MoreLinq nuget package.
The next commit will be a bit of a cleanup, with lots of commented out
code removed and lots of uncalled functions removed as well.