1 |
#ifndef CLAMP_INPUT_PLUGIN_INFO_H |
2 |
#define CLAMP_INPUT_PLUGIN_INFO_H |
3 |
|
4 |
#define MAX_INPLUG_FNAME_LEN 100 |
5 |
|
6 |
// The following is for the Flags member in PlayerInfoStruct |
7 |
// (File Position Promille => 0=start, and 1000=end of file) |
8 |
#define INPLUG_NO_TOTTIME 0x0001 // The plugin can't estimate a total time for the current file |
9 |
#define INPLUG_NO_CURRTIME 0x0002 // The plugin will not provide any information in CurrTime |
10 |
#define INPLUG_JUMP_OK 0x0004 // The plugin can jump around in the current song |
11 |
// Observe: Jumping can not be done if INPLUG_NO_CURRTIME is given!! |
12 |
#define INPLUG_JUMP_FILEPOS 0x0008 // Makes JumpTo() give the new position in file position promille |
13 |
// instead of milliseconds as it is default |
14 |
#define INPLUG_CURRTIME_FILEPOS 0x0010 // The plugin will set CurrTime to the current file position promille |
15 |
// instead of milliseconds as it is default |
16 |
#define INPLUG_HANDLE_SPEED 0x0020 // CL-Amp will call NewSpeed() to ask for a new speed and will not |
17 |
// try to adjust it by itself! |
18 |
// (CL-Amp is otherwise taking care of speed adjustment by itself!) |
19 |
#define INPLUG_HANDLE_VOLUME 0x0040 // CL-Amp will call NewVolume() to ask for a new speed and will not |
20 |
// try to adjust it by itself! |
21 |
// (CL-Amp is otherwise taking care of volume adjustment by itself!) |
22 |
#define INPLUG_INDEPENDENT 0x0080 // The plugin will remain in GetAudio() while playing this song |
23 |
// * CL-Amp will call JumpTo() from thread A instead of thread B |
24 |
// * CL-Amp will call NewSpeed() from thread A instead of thread B |
25 |
// (NewSpeed() is only called if the INPLUG_HANDLE_SPEED flag is given!) |
26 |
|
27 |
struct PlayerInfoStruct { |
28 |
char Title[MAX_INPLUG_FNAME_LEN]; // If there is a better title than the filename it can be given here! |
29 |
// Example: A mp3 plugin could read it from the Id tag... |
30 |
// Leave it blank to tell CL-Amp to make a title from the filename! |
31 |
unsigned long Flags; |
32 |
long CurrTime, TotTime; // milliSeconds! |
33 |
long BitRate, Frequency; |
34 |
long BufferVolume; // Promille, Buffer is used by the http handler |
35 |
bool Stereo; |
36 |
bool BufferOn, PreBuffering; // Buffer is used by the http handler |
37 |
bool SampleIsOnly8Bits; |
38 |
short Fader; |
39 |
float *Equalizer; |
40 |
bool NewEqValues, dummy; |
41 |
long SongId; // CL-Amp is setting a Song identification here. |
42 |
// some special plugins may need it... |
43 |
long Future[11]; |
44 |
}; |
45 |
|
46 |
#endif |