
                        Ceremony (Media Player)


Written by Arnaud Storq

Ceremony is a cross-platform media center used to browse images 
through slide-shows, play music with visual effects, play videos.
Some extra-features are available, such as a file-browser and 
a dedicated BASIC-like script language.

This library is distributed under the GNU Library Public License (LGPL)
version 2.

This is a work in progress.  BASIC interpreter is still not yet finished,
as also UI as some other mandatory features.
Currently it has only been tested on Windows.


HOW TO USE

Ceremony works as a command line interpreter.
The following commands are available :

BKGRD           Set background RGB color
BORDER          Set border RGB color
CAT             Behaves exactly like DIR command
CD              Change current working directory
CLS             Clear screen using current background color
DELETE          Delete listing in memory
DIR             Display a list of files and subdirectories of current working directory
DRAW            Draw a line from graphic cursor position to specified X/Y coordinates using current pen color, then specified X/Y coordinates become the current graphic cursor position
EXIT            Exit application
FLIP            Flip double-buffered screen
HELP            Display commands description
INPUT           Ask the user to enter a value to be stored into a variable
LIST            Display listing in memory
LOAD            Load listing to memory from specified filename
LOCATE          Position text cursor to specified X/Y coordinates
MAXI            MAXImize screen aera by disabling border)
MINI            MINImize screen aera by enabling border)
MOVE            Move graphic cursor to specified X/Y coordinates
PAUSE           Pause application till the user press a key
PEN             Set pen RGB color
PLAY            Play media from specified filename. Supported file-types are MP3, MOD, XM, IT, MPG, AVI, MP4, MOV
PLOT            Move graphic cursor to specified X/Y coordinates then draw a pixel using current pen color
PRINT           Print specified text
PRINTBL         Print specified text where new lines start at current text cursor's X coordinate
PRINTLN         Print specified text with carriage return
RECORD          Start screen recording to specified filename
RECT            Draw a rectangle from graphic cursor position to specified X/Y coordinates using current pen color, then specified X/Y coordinates become the current graphic cursor position
REM             REMark. All characters after this command is ignored. Usefull to add comments in source-code
RESET           Reset application's context
REVERSE         Switch on/off reverse video on printed text
RUN             Run listing in memory
SAVE            Save listing in memory to specified filename
SCRPAUSE        Switch on/off pauses after each screenful of printed text
STOP            Stop current media operation
TYPE            Display the content of a text-file
VARS            Associate a value to a variable. If no parameters specified, then display the content of all variables
VIEW            View image from specified filename. Supported file-types are BMP, JPG, TGA, PNG
VISUAL          Start sound visualizer (press any key to exit)
WAIT            Pause application till specified time in milliseconds is reached

These are some examples of valid commands:

CLS:PRINT"What is your name?":name=INPUT:CLS:PRINT"Your name is ":PRINT name
VIEW "image.png
CD "..
DIR
PENRGB 255,255,255:MOVE 0,0:DRAW 100, 100
PLAY "MUSIC.MP3
VISUAL
VIEW "VIDEO.MPG
RECORD "OUTPUT.MPG
WAIT 2000
HELP

And so on.. 
Listings are also supported :

10 CLS
20 PRINT "Hello World !"

then RUN to execute
You can also save a listing in memory through SAVE "MYSOURCE.BAS"
then run it once again with RUN "MYSOURCE.BAS"


Requirements to compile:

	* VisualStudio 2005 with latest DirectX SDK (required to build SDL ("ddraw.h"))


Reporting bugs:

	Please report any bugs and/or fixes to arnaud.storq@gmail.com.


Links:

	SDL                    http://www.libsdl.org/
    GForce
    libjpeg
    libpng
    SDL
    SDL_image
    SDL_mixer
    smpeg
    zlib

