I need a user control that displays the graphics of a CDG karaoke file. This user control does only show the graphic. NO audio has to be implemented.
A description of how to read the CDG format available at [login to view URL] and a copy is attached.
Take a look at [login to view URL] You will find very helpful information and a VB6 source code that can play CDG files.
You are allowed to use GNU/GPL if you mention it with your bid.
## Deliverables
The display should not lag, especially on multiple colorTable commands (fade in / out).
The 'pos' property refers to to the command position of the file (300 commands per second). So pos = (seconds * 300).
The position can be set forward as well as backward.
Stepping backward may take up to 400ms to show the new frame.
LoadFile execution time must be reasonable.
It should not take more than two or three seconds for a regular file.
Resizing the window does not have to be implemented, but function that changes the size and the position of the display must be implemented. The space outside the 'safe area' has the border color.
Default border size is 10 pixel (Top and Left) and default resolution of the safe area is 294x204 (standard CDG resolution) and can be changed by the corresponding properties. The border on the right and at the bottom will just depend on the size given to the component.
The functions, properties and events that have to be implemented are listed below.
public functions:
int loadFile(char *fileName); // Load the CDG file specified, return 0 on success or error code
public properties:
unsigned long pos = 0; // this sets or returns the current command position in file (pos = 300 * second) for display
unsigned int sizeX = 294; // Set the width of safe area (refresh display on change)
unsigned int sizeY = 204; // Set the height of safe area (refresh display on change)
)
public events:
void MemoryPreset(byte newColorID); //cmd: 0x01
void BorderPreset(byte newColorID); //cmd: 0x02
void DefineTransparentColor(byte newColorID) //cmd: 0x1C
)
void Color_Table_A( int col0, int col1, int col2, int col3, int col4, int col5, int col6, int col7); // Raise SpcCmd(0x1E) on Load Color Table (entries 0-7)
void Color_Table_B( int col8, int col9, int colA, int colB, int colC, int colD, int colE, int colF);
## Platform
The code be written in Visual C++ 6 and compile as an ActiveX component.
The component should work in the Visual Studio suite (Visual Studio 6, Visual Studio 2003 and Visual Studio 2005