"XBMC Remote Interface V0.7.6 Mod" by jonny2002 & trex6662k5
----

Previous versions named "XBMC Remote Music Interface" by jonny2002

This PSP program is the result of modifications and additions by trex6662k5
to the program "XBMC Remote Music Interface v0.2" by jonny2002

Majority of the code is still "jonny2002"'s and all the messy IF statements and variables are mine (trex6662k5)
Artwork is from the "Project Mayhem 3" XBMC skin by Mathias Mahling AKA ChokeManiac (http://www.chokemaniac.net)

Using Elxx's compile of LuaPlayer

Some code also from Chaos (http://forums.qj.net/showpost.php?p=456841&postcount=12) who provided a shutdown button and function
Modifications were added to squash a bug (http://forums.qj.net/showpost.php?p=1080065&postcount=29)
and also provided code to control volume (http://forums.qj.net/showpost.php?p=464865&postcount=17)
Which also more modifications were added to squash a bug.

My code and methods arnt the best so feel free to make optimisations to the code
Also if you wish to add any features yourself feel free. I only request that you post them on a forum so
I can learn more about LUA.
----

This script provides an alternate interface to the Xbox Media Center. You are able to start films, play music and display pictures.
Enter music in to a playlist (and soon videos). View thumbnails (if available) currently playing media and view file information when available
artist, track title, album title, genre, year. Movie name and genre. Picture file name. Also shutting down the Xbox is possible

The 2nd major function this program provides is to turn the PSP in to a wireless xbox pad (WHILE XBMC IS RUNNING). So You are able to browse
the menus of XBMC at your TV without cables, a ugly looking wireless pad or IR remote.
----

Installsion

Copy folder XBMC RI <Version> to <PSP Drive Letter>:/PSP/GAME
Depending on your firmware version, goto that folder and copy the folder to the same location as above. 
It may complain about overwriting files due to same folder name but it will copy the required EBOOT over.

XBMC's web interface must also be enabled
----

Requirements
A modded networked xbox with the latest version of XBMC (I recommend T3CH's CVS releases)
A wireless access point
--

Problem getting a black screen?

From 0.2 readme:
If you have problems with XBMC going into a black screen, turn off the
"Use Visualisation if playing audio" under Appearance|Screensaver (on the xbox).
--

Controls

D-pad: navigate
Cross: select
Circle: back
Square: stop
Triangle: pause on/off
L-Trigger: Modifier key (Was previously previous media screen)
R-Trigger: next media screen 
Analog stick Left-Right: fast rewind/fast forward
Analog stick Up-Down: Increase Volume/Decrease Volume
Select: add to/delete from playlist
Start: enter "controller mode"
L-Trigger and Up: Move shutdown menu up (back to shutdown)(button must be highlighted)
L-Trigger and Up: Move shutdown menu down (to restart)(button must be highlighted)
L-Trigger and Right: Next in the playlist
L-Trigger and Left: Previous in the playlist
L-Trigger and Cross: Sync
Remote Control - Home: Exit remote control mode (Was previously L-Trigger and R-Trigger)
--
Changes since v0.7.5 Mod
-Fixed a time\sync related bug that appears during media with no durations - Thanks Kick In Da D0oR From QJ Forums

Changes since v0.7.3 Mod
-Fixed a bug which caused the PSP to autosync every 100ms while currently displaying a picture (my bad)
-Changed button to exit out of remote control to the home button.
-Optimised images and made them blit correctly (alpha when it needs alpha)
Even though the screenpops up asking to exit the app, it shouldnt effect playback
Was a bit late to release this because I havent much time lately to continue on the next release of XBMC RI
So just incase I vanish off the interweb, Id thought id at least fixed a few issues.

Changes since v0.7b Mod
-added duration next to currently playing time
-removed a random number generator that was in init() (Why that was there is beyond me)
-Autosync when time elapsed meets duration
-Made exiting out of remote control screen slightly easier

Changes since v0.7 Mod

-Script crashed when xbox password entered fixed
--

Changes Since V0.6 Mod

-Index.lua is now system.lua in system folder

-Thumbnail path is now no longer fixed

-Fixed a mistype which caused the script to crash when adding a folder to playlist

-Removed that annoying sound that played everytime you pressed a direction key

-Button to play DVD (option to automatically switch to remotecontrol after pressing)

-Button to restart XBMC (By using new left shoulder button modifier)

-Fixed the play timer so it gives you a very slightly inaccurate position of music\video

-Fixed the issue with getcurrentlyplaying with a Time of nil

-Left shoulder button modifier 
holding the left shoulder button in combination with others will trigger alternative actions
Currently (holding left trigger)
Left and Right (Previous and Next, (for music, videos or picutures))
Up and down (on shutdown button will cycle though 2 available options, restart or shutdown xbox)
Cross (sync with the xbox)

-Static writing which were drawn at runtime
Writing which remained from V0.2 in the remote control screen
Writing at the top of the main screens
Have now been moved to the background PNGs
A mild performace increase

-neatened code (well in my eyes anyways) and reorganised functions and made less use of variables
A mild performace increase

-Reduced the length of the now playing scroller which caused most lag and timeouts if it were too long
A HUGE performance increase
--

Known Bugs.
--
--Controls are now extremely responsive. I am currently thinking this is due to the performance increase
unless I broke something elsewhere. I played around with the delay settings in settings.ini but no
change. Having spent a few hours dribbing at this problem Ive given up

--If you have a playlist playing already before you logged on using the PSP. Next and previous functions
dont work untill the script makes its own local playlist (eg by playing a file)

Ideas (May need a whole redesign for these and might beyond my reach)
--

--"viewing picture of pictures" display (Eg Picture 5 of 13)
--RSS feeds
--getting screenshots in remote controls and for displaying pictures
I have that almost working
--using getsysteminfo to get more information (EG Weather)
sounds\looks easy...now a matter of doing it
--playlists for all media
current problem is depending on which screen your under (video, music, pictures) it will attempt to play the
first file using the command it that screen requires (eg displaypicture for an MP3)
A way to distinguish between video, file and pictures is nescessary and (like xbox) a list of extensions will
need to be kept locally and updated
--play whole folder without viewing it
kinda like pressing select on a folder to add them to a play list
--unicode or a way of converting characters to a more readable form
--

Changes and Additions since v0.5 MOD

-Thumbnails, if available, will be transfered from the Xbox to the PSP, resized, stored and displayed on the PSP.
--Thumbnails work for Music, Videos and Pictures.
-Made the scroller...err scroll for video and pictures also
-Since the scroller scrolls a filename for music, I have given the user the ability to view its file extention depending on the
--setting in settings.ini
-Removed CRC32 function freeing resources
-Added Genre to now playing scroller for music and film
-Now playing scroller now displays file name of picture displayed
-Fixed the volume bug which triggered the Xbox and PSP to race to a crash
-Removed redundant code and functions freeing more resources
--

Changes and Additions since V0.2

-Ability to view and browse files and folders under Video and Pictures as well as Music
-Added ability to seek video
-Shows the currently playing video
-Shutdown and Volume controls provided by Chaos
-Playlist button is only enabled on the music screen
-Changed backgrounds to refect the current screen (my music, my video, my pictures and plain for WIFI)
-Bug in v0.2 which caused the now playing text not to scroll while playing a file until the time displayed is greater than 00:00