The software used by Mp3-O-Phono is called rxcontrol. I wrote this software, and what it does is that it handles input from keyboard, output to LCD, input + output from the rxaudio mp3 decoder and some basic cd tray functions. It also supports input from an Infra Red (IR) device such as a tv remote.

Operating System is Linux with 2.0.35 kernel. It currently needs a shutdown because the HD gets mounted read-write in order to be able to save the playlists. If the HD were to be mounted read-only, then no shutdown would be required.

Some info about keyboard input

To bypass the login prompt I used the following solution: I'm talking to a virtual console. Rxcontrol, changes the current virtual console with the chvt() function (there is a chvt program that does the same). I remind you that virtual consoles are the ones changed with Alt-F1 Alt-F2 e.t.c. Rxcontrol uses virtual console 5 by default so a getty shouldn't be running there. You must comment it out in /etc/inittab. That way when your software starts, it changes the virtual console let's say to 5 so it gets the keyboard input. That simple.

Here goes the readme from the rxcontrol tar file:


About this software
-------------------
This software is used with my "MP3-O-Phono" (C) hardware, a linux based
player, without monitor or keyboard. It has a Matrix Orbital 20x4 LCD
and 9 buttons to the front. It boots from a small HD, and has a CDROM
for reading MP3 songs. The buttons are connected to the keyboard socket
of the motherboard through a chip taken by a dissasembled keyboard, so 
the input comes from stdin! This is much cheaper in money and time than
connecting a serial or parallel keypad.

BEFORE COMPILING
----------------
Edit file rxcontrol.h to make appropriate changes to the paths.
Remember that playlists are saved like "playlist-%d" in the PLDIR directory
where %d is the number of files in PLDIR + 1
Also note that setting 'kbdrate -r 30' allows a fast seek, and
'kbdrate -r 10' allows a realative fast seek but you can also listen to the
song as it seeks (tested on a Pentium-133).

INSTALLNG
---------
Before com
You may start rxcontrol from init. Just add something like the following
in /etc/inittab:
rx:234:respawn:/home/sivann/develop/rxcontrol/rxcontrol

Make sure that you have commented out the getty to virtual console 5 if 
rxcontrol is compiled with -DCHVT

Song name format
----------------
Song must be in the following format:
"artist - song name.mp3"
or
"artist - song name - other info.mp3" 

`other info' is not displayed on the LCD.

The spaces before and after the '-' are optional.


General Operation
-----------------
There are 3 states:

	-normal
	-file selection
	-playlist editing

when the program starts and when it plays a song it is in the normal state 
For the hardware version, keyboard keys will be connected to buttons.

All keys are the default keys defined in rxkeys.h

*
* For the hardware implementation I have done, only keys marked with '*' are
* needed and used. Capital letters are implemented through the button 
* so you press a combination of 2 buttons. It has the label 'All' which means
* for example that if 'v' (the stop button) erases the current entry, 'V' 
* erases all the entries, e.t.c.
*

Commands  in normal mode
------------------------
Just type in the corresponding letter



    f: enter file selection mode
    p: enter playlist editing mode
    l: browse through pre-compiled playlists
   *u: load a menu capable of loading the previous 3 functions
       plus a linux shutdown option

    Playing commands

    r: toggle repeat flag
    c: pause
   *x: play/restart
   *v: stop
   *[: seek left / Scroll LCD left
   *]: seek right / Scroll LCD right
   *z: previous track / Go up in list browsing
   *b: next track / Go down in list browsing
    right arrow: seek right
    left arrow:  seek left

    Other commands

    m: mute (don't press it, dont' know how to de-mute !)
    ,: volume down (or arrow up)
    .: volume up (or arrow down)
    q: quit program



Commands  in file selection mode
--------------------------------
Just type in the corresponding letter

   *]: scroll display right
   *[: scroll display left
   *z: go up
   *b: go down
   *x: select current file
   *r: make a random selection from all files in this directory
    X: select all files in this directory
    V: clear playlist
   *u: go back to normal mode



Commands  in playlist editing mode
----------------------------------
Just type in the corresponding letter


   *]: scroll display right
   *[: scroll display left
   *z: go up
   *b: go down
   *v: remove current entry from playlist
   *V: clear playlist
   *X: save playlist (to #PLDIR)
   *u: go back to normal mode



Commands  in playlist editing mode
----------------------------------
Just type in the corresponding letter

   v: delete playlist from disk
   [enter]: load current playlist



Also NOTE:
----------
1.after pressing one of : stop/edit-playlist/file-browser , the playlist doesn't
  restart from file #1, but only if stop pressed twice (i.e. pressed when 
  already stopped) so you can continue listening from the current song by
  pressing "play" and not from the beggining.



BUGS
----

None found before each release.If you find any please mail it to me.
The 'none found' goes to rxcontrol, NOT to rxaudio. 
Rxaudio has MANY bugs which cause rxcontrol to fail sometimes. I've never seen 
any fatal ones of them to my PC but the've been reported to me. Mail those to 
xaudio@mpegtv.com please.