|
Packit |
c32a2d |
unit mpg123_;
|
|
Packit |
c32a2d |
interface
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
uses
|
|
Packit |
c32a2d |
Windows,
|
|
Packit |
c32a2d |
SysUtils;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// INITIAL CONVERSION BY ARTHUR 17/02/2008
|
|
Packit |
c32a2d |
// USE http://www.mpg123.de/api/ FOR DOCUMENTATION SINCE I STRIPED ALL THE COMMENTS FROM THE UNIT
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
PDWord = ^DWORD;
|
|
Packit |
c32a2d |
PPbyte = ^PByte;
|
|
Packit |
c32a2d |
PPchar = ^PChar;
|
|
Packit |
c32a2d |
Pdouble = ^double;
|
|
Packit |
c32a2d |
PPlongint = ^Plongint;
|
|
Packit |
c32a2d |
off_t = Longint;
|
|
Packit |
c32a2d |
Poff_t = ^off_t;
|
|
Packit |
c32a2d |
PPoff_T = ^Poff_t;
|
|
Packit |
c32a2d |
size_t = Cardinal;
|
|
Packit |
c32a2d |
Psize_t = ^size_t;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Pmpg123_handle_struct = ^Tmpg123_handle_struct;
|
|
Packit |
c32a2d |
Tmpg123_handle_struct = packed record
|
|
Packit |
c32a2d |
{undefined structure}
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
Tmpg123_handle = Tmpg123_handle_struct;
|
|
Packit |
c32a2d |
Pmpg123_handle = ^Tmpg123_handle;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_init: function: Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_exit: procedure; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_new: function(decoder: PChar; Error: Plongint): Pmpg123_handle; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_delete: procedure(mh: Pmpg123_handle); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_parms = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_VERBOSE = 0;
|
|
Packit |
c32a2d |
MPG123_FLAGS = 1;
|
|
Packit |
c32a2d |
MPG123_ADD_FLAGS = 2;
|
|
Packit |
c32a2d |
MPG123_FORCE_RATE = 3;
|
|
Packit |
c32a2d |
MPG123_DOWN_SAMPLE = 4;
|
|
Packit |
c32a2d |
MPG123_RVA = 5;
|
|
Packit |
c32a2d |
MPG123_DOWNSPEED = 6;
|
|
Packit |
c32a2d |
MPG123_UPSPEED = 7;
|
|
Packit |
c32a2d |
MPG123_START_FRAME = 8;
|
|
Packit |
c32a2d |
MPG123_DECODE_FRAMES = 9;
|
|
Packit |
c32a2d |
MPG123_ICY_INTERVAL = 10;
|
|
Packit |
c32a2d |
MPG123_OUTSCALE = 11;
|
|
Packit |
c32a2d |
MPG123_TIMEOUT = 12;
|
|
Packit |
c32a2d |
MPG123_REMOVE_FLAGS = 13;
|
|
Packit |
c32a2d |
MPG123_RESYNC_LIMIT = 14;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_param_flags = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_FORCE_MONO = $7;
|
|
Packit |
c32a2d |
MPG123_MONO_LEFT = $1;
|
|
Packit |
c32a2d |
MPG123_MONO_RIGHT = $2;
|
|
Packit |
c32a2d |
MPG123_MONO_MIX = $4;
|
|
Packit |
c32a2d |
MPG123_FORCE_STEREO = $8;
|
|
Packit |
c32a2d |
MPG123_FORCE_8BIT = $10;
|
|
Packit |
c32a2d |
MPG123_QUIET = $20;
|
|
Packit |
c32a2d |
MPG123_GAPLESS = $40;
|
|
Packit |
c32a2d |
MPG123_NO_RESYNC = $80;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_param_rva = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_RVA_OFF = 0;
|
|
Packit |
c32a2d |
MPG123_RVA_MIX = 1;
|
|
Packit |
c32a2d |
MPG123_RVA_ALBUM = 2;
|
|
Packit |
c32a2d |
MPG123_RVA_MAX = MPG123_RVA_ALBUM;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_param: function(mh: Pmpg123_handle; _type: Tmpg123_parms; value: Longint; fvalue: double): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_getparam: function(mh: Pmpg123_handle; _type: Tmpg123_parms; val: Plongint; fval: Pdouble): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_errors = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_DONE = -(12);
|
|
Packit |
c32a2d |
MPG123_NEW_FORMAT = -(11);
|
|
Packit |
c32a2d |
MPG123_NEED_MORE = -(10);
|
|
Packit |
c32a2d |
MPG123_ERR = -(1);
|
|
Packit |
c32a2d |
MPG123_OK = 0;
|
|
Packit |
c32a2d |
MPG123_BAD_OUTFORMAT = 1;
|
|
Packit |
c32a2d |
MPG123_BAD_CHANNEL = 2;
|
|
Packit |
c32a2d |
MPG123_BAD_RATE = 3;
|
|
Packit |
c32a2d |
MPG123_ERR_16TO8TABLE = 4;
|
|
Packit |
c32a2d |
MPG123_BAD_PARAM = 5;
|
|
Packit |
c32a2d |
MPG123_BAD_BUFFER = 6;
|
|
Packit |
c32a2d |
MPG123_OUT_OF_MEM = 7;
|
|
Packit |
c32a2d |
MPG123_NOT_INITIALIZED = 8;
|
|
Packit |
c32a2d |
MPG123_BAD_DECODER = 9;
|
|
Packit |
c32a2d |
MPG123_BAD_HANDLE = 10;
|
|
Packit |
c32a2d |
MPG123_NO_BUFFERS = 11;
|
|
Packit |
c32a2d |
MPG123_BAD_RVA = 12;
|
|
Packit |
c32a2d |
MPG123_NO_GAPLESS = 13;
|
|
Packit |
c32a2d |
MPG123_NO_SPACE = 14;
|
|
Packit |
c32a2d |
MPG123_BAD_TYPES = 15;
|
|
Packit |
c32a2d |
MPG123_BAD_BAND = 16;
|
|
Packit |
c32a2d |
MPG123_ERR_NULL = 17;
|
|
Packit |
c32a2d |
MPG123_ERR_READER = 18;
|
|
Packit |
c32a2d |
MPG123_NO_SEEK_FROM_END = 19;
|
|
Packit |
c32a2d |
MPG123_BAD_WHENCE = 20;
|
|
Packit |
c32a2d |
MPG123_NO_TIMEOUT = 21;
|
|
Packit |
c32a2d |
MPG123_BAD_FILE = 22;
|
|
Packit |
c32a2d |
MPG123_NO_SEEK = 23;
|
|
Packit |
c32a2d |
MPG123_NO_READER = 24;
|
|
Packit |
c32a2d |
MPG123_BAD_PARS = 25;
|
|
Packit |
c32a2d |
MPG123_BAD_INDEX_PAR = 26;
|
|
Packit |
c32a2d |
MPG123_OUT_OF_SYNC = 27;
|
|
Packit |
c32a2d |
MPG123_RESYNC_FAIL = 28;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_plain_strerror: function(errcode: Longint): PChar; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_strerror: function(mh: Pmpg123_handle): PChar; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_errcode: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_decoders: function: PPchar; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_supported_decoders: function: PPchar; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_decoder: function(mh: Pmpg123_handle; decoder_name: PChar): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_enc_enum = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_ENC_16 = $40;
|
|
Packit |
c32a2d |
MPG123_ENC_SIGNED = $80;
|
|
Packit |
c32a2d |
MPG123_ENC_8 = $0F;
|
|
Packit |
c32a2d |
MPG123_ENC_SIGNED_16 = (MPG123_ENC_16 or MPG123_ENC_SIGNED) or $10;
|
|
Packit |
c32a2d |
MPG123_ENC_UNSIGNED_16 = MPG123_ENC_16 or $20;
|
|
Packit |
c32a2d |
MPG123_ENC_UNSIGNED_8 = $01;
|
|
Packit |
c32a2d |
MPG123_ENC_SIGNED_8 = MPG123_ENC_SIGNED or $02;
|
|
Packit |
c32a2d |
MPG123_ENC_ULAW_8 = $04;
|
|
Packit |
c32a2d |
MPG123_ENC_ALAW_8 = $08;
|
|
Packit |
c32a2d |
MPG123_ENC_ANY = ((((MPG123_ENC_SIGNED_16 or MPG123_ENC_UNSIGNED_16) or MPG123_ENC_UNSIGNED_8) or MPG123_ENC_SIGNED_8) or MPG123_ENC_ULAW_8) or MPG123_ENC_ALAW_8;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_channelcount = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_MONO = 1;
|
|
Packit |
c32a2d |
MPG123_STEREO = 2;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_rates: procedure(list: PPlongint; number: Psize_t); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_encodings: procedure(list: PPlongint; number: Psize_t); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_format_none: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_format_all: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_format: function(mh: Pmpg123_handle; rate: Longint; channels: Longint; encodings: Longint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_format_support: function(mh: Pmpg123_handle; rate: Longint; encoding: Longint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_getformat: function(mh: Pmpg123_handle; rate: Plongint; channels: Plongint; encoding: Plongint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_open: function(mh: Pmpg123_handle; path: PChar): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_open_fd: function(mh: Pmpg123_handle; fd: Longint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_open_feed: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_close: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_read: function(mh: Pmpg123_handle; outmemory: PByte; outmemsize: size_t; done: Psize_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_decode: function(mh: Pmpg123_handle; inmemory: PByte; inmemsize: size_t; outmemory: PByte; outmemsize: size_t;
|
|
Packit |
c32a2d |
done: Psize_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_decode_frame: function(mh: Pmpg123_handle; num: Poff_t; audio: PPbyte; bytes: Psize_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_tell: function(mh: Pmpg123_handle): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_tellframe: function(mh: Pmpg123_handle): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_seek: function(mh: Pmpg123_handle; sampleoff: off_t; whence: Longint): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_feedseek: function(mh: Pmpg123_handle; sampleoff: off_t; whence: Longint; input_offset: Poff_t): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_seek_frame: function(mh: Pmpg123_handle; frameoff: off_t; whence: Longint): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_timeframe: function(mh: Pmpg123_handle; sec: double): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_index: function(mh: Pmpg123_handle; offsets: PPoff_t; step: Poff_t; fill: Psize_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_position: function(mh: Pmpg123_handle; frame_offset: off_t; buffered_bytes: off_t; current_frame: Poff_t; frames_left: Poff_t;
|
|
Packit |
c32a2d |
current_seconds: Pdouble; seconds_left: Pdouble): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_channels = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_LEFT = $1;
|
|
Packit |
c32a2d |
MPG123_RIGHT = $2;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_eq: function(mh: Pmpg123_handle; channel: Tmpg123_channels; band: Longint; val: double): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_reset_eq: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_volume: function(mh: Pmpg123_handle; vol: double): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_volume_change: function(mh: Pmpg123_handle; change: double): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_getvolume: function(mh: Pmpg123_handle; base: Pdouble; really: Pdouble; rva_db: Pdouble): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_vbr = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_CBR = 0;
|
|
Packit |
c32a2d |
MPG123_VBR = 1;
|
|
Packit |
c32a2d |
MPG123_ABR = 2;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_version = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_1_0 = 0;
|
|
Packit |
c32a2d |
MPG123_2_0 = 1;
|
|
Packit |
c32a2d |
MPG123_2_5 = 2;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_mode = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_M_STEREO = 0;
|
|
Packit |
c32a2d |
MPG123_M_JOINT = 1;
|
|
Packit |
c32a2d |
MPG123_M_DUAL = 2;
|
|
Packit |
c32a2d |
MPG123_M_MONO = 3;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Tmpg123_flags = Longint;
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_CRC = $1;
|
|
Packit |
c32a2d |
MPG123_COPYRIGHT = $2;
|
|
Packit |
c32a2d |
MPG123_PRIVATE = $4;
|
|
Packit |
c32a2d |
MPG123_ORIGINAL = $8;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Pmpg123_frameinfo = ^Tmpg123_frameinfo;
|
|
Packit |
c32a2d |
Tmpg123_frameinfo = packed record
|
|
Packit |
c32a2d |
version: Tmpg123_version;
|
|
Packit |
c32a2d |
layer: Longint;
|
|
Packit |
c32a2d |
rate: Longint;
|
|
Packit |
c32a2d |
mode: Tmpg123_mode;
|
|
Packit |
c32a2d |
mode_ext: Longint;
|
|
Packit |
c32a2d |
framesize: Longint;
|
|
Packit |
c32a2d |
Flags: Tmpg123_flags;
|
|
Packit |
c32a2d |
emphasis: Longint;
|
|
Packit |
c32a2d |
bitrate: Longint;
|
|
Packit |
c32a2d |
abr_rate: Longint;
|
|
Packit |
c32a2d |
vbr: Tmpg123_vbr;
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_info: function(mh: Pmpg123_handle; mi: Pmpg123_frameinfo): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_safe_buffer: function: size_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_scan: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_length: function(mh: Pmpg123_handle): off_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_tpf: function(mh: Pmpg123_handle): double; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_clip: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
Pmpg123_string = ^Tmpg123_string;
|
|
Packit |
c32a2d |
Tmpg123_string = packed record
|
|
Packit |
c32a2d |
p: PChar;
|
|
Packit |
c32a2d |
Size: size_t;
|
|
Packit |
c32a2d |
fill: size_t;
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_init_string: procedure(sb: Pmpg123_string); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_free_string: procedure(sb: Pmpg123_string); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_resize_string: function(sb: Pmpg123_string; news: size_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_copy_string: function(from: Pmpg123_string; _to: Pmpg123_string): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_add_string: function(sb: Pmpg123_string; stuff: PChar): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_set_string: function(sb: Pmpg123_string; stuff: PChar): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
Pmpg123_text = ^Tmpg123_text;
|
|
Packit |
c32a2d |
Tmpg123_text = packed record
|
|
Packit |
c32a2d |
lang: array[0..2] of Char;
|
|
Packit |
c32a2d |
id: array[0..3] of Char;
|
|
Packit |
c32a2d |
description: Tmpg123_string;
|
|
Packit |
c32a2d |
Text: Tmpg123_string;
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
PPmpg123_id3v2 = ^Pmpg123_id3v2;
|
|
Packit |
c32a2d |
Pmpg123_id3v2 = ^Tmpg123_id3v2;
|
|
Packit |
c32a2d |
Tmpg123_id3v2 = packed record
|
|
Packit |
c32a2d |
version: Byte;
|
|
Packit |
c32a2d |
title: Pmpg123_string;
|
|
Packit |
c32a2d |
artist: Pmpg123_string;
|
|
Packit |
c32a2d |
album: Pmpg123_string;
|
|
Packit |
c32a2d |
year: Pmpg123_string;
|
|
Packit |
c32a2d |
genre: Pmpg123_string;
|
|
Packit |
c32a2d |
comment: Pmpg123_string;
|
|
Packit |
c32a2d |
comment_list: Pmpg123_text;
|
|
Packit |
c32a2d |
comments: size_t;
|
|
Packit |
c32a2d |
Text: Pmpg123_text;
|
|
Packit |
c32a2d |
texts: size_t;
|
|
Packit |
c32a2d |
extra: Pmpg123_text;
|
|
Packit |
c32a2d |
extras: size_t;
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
PPmpg123_id3v1 = ^Pmpg123_id3v1;
|
|
Packit |
c32a2d |
Pmpg123_id3v1 = ^Tmpg123_id3v1;
|
|
Packit |
c32a2d |
Tmpg123_id3v1 = packed record
|
|
Packit |
c32a2d |
tag: array[0..2] of Char;
|
|
Packit |
c32a2d |
title: array[0..29] of Char;
|
|
Packit |
c32a2d |
artist: array[0..29] of Char;
|
|
Packit |
c32a2d |
album: array[0..29] of Char;
|
|
Packit |
c32a2d |
year: array[0..3] of Char;
|
|
Packit |
c32a2d |
comment: array[0..29] of Char;
|
|
Packit |
c32a2d |
genre: Byte;
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
const
|
|
Packit |
c32a2d |
MPG123_ID3 = $3;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
MPG123_NEW_ID3 = $1;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
MPG123_ICY = $C;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
MPG123_NEW_ICY = $4;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_meta_check: function(mh: Pmpg123_handle): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_id3_: function(mh: Pmpg123_handle; var v1: Pmpg123_id3v1; var v2: Pmpg123_id3v2): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_icy_: function(mh: Pmpg123_handle; icy_meta: PPchar): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
type
|
|
Packit |
c32a2d |
Pmpg123_pars_struct = ^Tmpg123_pars_struct;
|
|
Packit |
c32a2d |
Tmpg123_pars_struct = packed record
|
|
Packit |
c32a2d |
{undefined structure}
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
Tmpg123_pars = Tmpg123_pars_struct;
|
|
Packit |
c32a2d |
Pmpg123_pars = ^Tmpg123_pars;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
mpg123_parnew: function(mp: Pmpg123_pars; decoder: PChar; Error: Plongint): Pmpg123_handle; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_new_pars: function(Error: Plongint): Pmpg123_pars; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_delete_pars: procedure(mp: Pmpg123_pars); cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_fmt_none: function(mp: Pmpg123_pars): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_fmt_all: function(mp: Pmpg123_pars): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_fmt: function(mh: Pmpg123_pars; rate: Longint; channels: Longint; encodings: Longint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_fmt_support: function(mh: Pmpg123_pars; rate: Longint; encoding: Longint): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_par: function(mp: Pmpg123_pars; _type: Tmpg123_parms; value: Longint; fvalue: double): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_getpar: function(mp: Pmpg123_pars; _type: Tmpg123_parms; val: Plongint; fval: Pdouble): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_replace_buffer: function(mh: Pmpg123_handle; data: PByte; Size: size_t): Longint; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
mpg123_outblock: function(mh: Pmpg123_handle): size_t; cdecl;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
//mpg123_replace_reader : function(mh:Pmpg123_handle; r_read:function (_para1:longint; _para2:pointer; _para3:size_t):Tssize_t; r_lseek:function (_para1:longint; _para2:off_t; _para3:longint):off_t):longint;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
implementation
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
var
|
|
Packit |
c32a2d |
hlib: THandle;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
procedure Freempg123;
|
|
Packit |
c32a2d |
begin
|
|
Packit |
c32a2d |
FreeLibrary(hlib);
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
procedure Loadmpg123(lib: PChar);
|
|
Packit |
c32a2d |
begin
|
|
Packit |
c32a2d |
hlib := LoadLibrary(lib);
|
|
Packit |
c32a2d |
mpg123_init := GetProcAddress(hlib, 'mpg123_init');
|
|
Packit |
c32a2d |
mpg123_exit := GetProcAddress(hlib, 'mpg123_exit');
|
|
Packit |
c32a2d |
mpg123_new := GetProcAddress(hlib, 'mpg123_new');
|
|
Packit |
c32a2d |
mpg123_delete := GetProcAddress(hlib, 'mpg123_delete');
|
|
Packit |
c32a2d |
mpg123_param := GetProcAddress(hlib, 'mpg123_param');
|
|
Packit |
c32a2d |
mpg123_getparam := GetProcAddress(hlib, 'mpg123_getparam');
|
|
Packit |
c32a2d |
mpg123_plain_strerror := GetProcAddress(hlib, 'mpg123_plain_strerror');
|
|
Packit |
c32a2d |
mpg123_strerror := GetProcAddress(hlib, 'mpg123_strerror');
|
|
Packit |
c32a2d |
mpg123_errcode := GetProcAddress(hlib, 'mpg123_errcode');
|
|
Packit |
c32a2d |
mpg123_decoders := GetProcAddress(hlib, 'mpg123_decoders');
|
|
Packit |
c32a2d |
mpg123_supported_decoders := GetProcAddress(hlib, 'mpg123_supported_decoders');
|
|
Packit |
c32a2d |
mpg123_decoder := GetProcAddress(hlib, 'mpg123_decoder');
|
|
Packit |
c32a2d |
mpg123_rates := GetProcAddress(hlib, 'mpg123_rates');
|
|
Packit |
c32a2d |
mpg123_encodings := GetProcAddress(hlib, 'mpg123_encodings');
|
|
Packit |
c32a2d |
mpg123_format_none := GetProcAddress(hlib, 'mpg123_format_none');
|
|
Packit |
c32a2d |
mpg123_format_all := GetProcAddress(hlib, 'mpg123_format_all');
|
|
Packit |
c32a2d |
mpg123_format := GetProcAddress(hlib, 'mpg123_format');
|
|
Packit |
c32a2d |
mpg123_format_support := GetProcAddress(hlib, 'mpg123_format_support');
|
|
Packit |
c32a2d |
mpg123_getformat := GetProcAddress(hlib, 'mpg123_getformat');
|
|
Packit |
c32a2d |
mpg123_open := GetProcAddress(hlib, 'mpg123_open');
|
|
Packit |
c32a2d |
mpg123_open_fd := GetProcAddress(hlib, 'mpg123_open_fd');
|
|
Packit |
c32a2d |
mpg123_open_feed := GetProcAddress(hlib, 'mpg123_open_feed');
|
|
Packit |
c32a2d |
mpg123_close := GetProcAddress(hlib, 'mpg123_close');
|
|
Packit |
c32a2d |
mpg123_read := GetProcAddress(hlib, 'mpg123_read');
|
|
Packit |
c32a2d |
mpg123_decode := GetProcAddress(hlib, 'mpg123_decode');
|
|
Packit |
c32a2d |
mpg123_decode_frame := GetProcAddress(hlib, 'mpg123_decode_frame');
|
|
Packit |
c32a2d |
mpg123_tell := GetProcAddress(hlib, 'mpg123_tell');
|
|
Packit |
c32a2d |
mpg123_tellframe := GetProcAddress(hlib, 'mpg123_tellframe');
|
|
Packit |
c32a2d |
mpg123_seek := GetProcAddress(hlib, 'mpg123_seek');
|
|
Packit |
c32a2d |
mpg123_feedseek := GetProcAddress(hlib, 'mpg123_feedseek');
|
|
Packit |
c32a2d |
mpg123_seek_frame := GetProcAddress(hlib, 'mpg123_seek_frame');
|
|
Packit |
c32a2d |
mpg123_timeframe := GetProcAddress(hlib, 'mpg123_timeframe');
|
|
Packit |
c32a2d |
mpg123_index := GetProcAddress(hlib, 'mpg123_index');
|
|
Packit |
c32a2d |
mpg123_position := GetProcAddress(hlib, 'mpg123_position');
|
|
Packit |
c32a2d |
mpg123_eq := GetProcAddress(hlib, 'mpg123_eq');
|
|
Packit |
c32a2d |
mpg123_reset_eq := GetProcAddress(hlib, 'mpg123_reset_eq');
|
|
Packit |
c32a2d |
mpg123_volume := GetProcAddress(hlib, 'mpg123_volume');
|
|
Packit |
c32a2d |
mpg123_volume_change := GetProcAddress(hlib, 'mpg123_volume_change');
|
|
Packit |
c32a2d |
mpg123_getvolume := GetProcAddress(hlib, 'mpg123_getvolume');
|
|
Packit |
c32a2d |
mpg123_info := GetProcAddress(hlib, 'mpg123_info');
|
|
Packit |
c32a2d |
mpg123_safe_buffer := GetProcAddress(hlib, 'mpg123_safe_buffer');
|
|
Packit |
c32a2d |
mpg123_scan := GetProcAddress(hlib, 'mpg123_scan');
|
|
Packit |
c32a2d |
mpg123_length := GetProcAddress(hlib, 'mpg123_length');
|
|
Packit |
c32a2d |
mpg123_tpf := GetProcAddress(hlib, 'mpg123_tpf');
|
|
Packit |
c32a2d |
mpg123_clip := GetProcAddress(hlib, 'mpg123_clip');
|
|
Packit |
c32a2d |
mpg123_init_string := GetProcAddress(hlib, 'mpg123_init_string');
|
|
Packit |
c32a2d |
mpg123_free_string := GetProcAddress(hlib, 'mpg123_free_string');
|
|
Packit |
c32a2d |
mpg123_resize_string := GetProcAddress(hlib, 'mpg123_resize_string');
|
|
Packit |
c32a2d |
mpg123_copy_string := GetProcAddress(hlib, 'mpg123_copy_string');
|
|
Packit |
c32a2d |
mpg123_add_string := GetProcAddress(hlib, 'mpg123_add_string');
|
|
Packit |
c32a2d |
mpg123_set_string := GetProcAddress(hlib, 'mpg123_set_string');
|
|
Packit |
c32a2d |
mpg123_meta_check := GetProcAddress(hlib, 'mpg123_meta_check');
|
|
Packit |
c32a2d |
mpg123_id3_ := GetProcAddress(hlib, 'mpg123_id3');
|
|
Packit |
c32a2d |
mpg123_icy_ := GetProcAddress(hlib, 'mpg123_icy');
|
|
Packit |
c32a2d |
mpg123_parnew := GetProcAddress(hlib, 'mpg123_parnew');
|
|
Packit |
c32a2d |
mpg123_new_pars := GetProcAddress(hlib, 'mpg123_new_pars');
|
|
Packit |
c32a2d |
mpg123_delete_pars := GetProcAddress(hlib, 'mpg123_delete_pars');
|
|
Packit |
c32a2d |
mpg123_fmt_none := GetProcAddress(hlib, 'mpg123_fmt_none');
|
|
Packit |
c32a2d |
mpg123_fmt_all := GetProcAddress(hlib, 'mpg123_fmt_all');
|
|
Packit |
c32a2d |
mpg123_fmt := GetProcAddress(hlib, 'mpg123_fmt');
|
|
Packit |
c32a2d |
mpg123_fmt_support := GetProcAddress(hlib, 'mpg123_fmt_support');
|
|
Packit |
c32a2d |
mpg123_par := GetProcAddress(hlib, 'mpg123_par');
|
|
Packit |
c32a2d |
mpg123_getpar := GetProcAddress(hlib, 'mpg123_getpar');
|
|
Packit |
c32a2d |
mpg123_replace_buffer := GetProcAddress(hlib, 'mpg123_replace_buffer');
|
|
Packit |
c32a2d |
mpg123_outblock := GetProcAddress(hlib, 'mpg123_outblock');
|
|
Packit |
c32a2d |
//mpg123_replace_reader := GetProcAddress(hlib,'mpg123_replace_reader');
|
|
Packit |
c32a2d |
end;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
initialization
|
|
Packit |
c32a2d |
Loadmpg123('libmpg123-0.dll');
|
|
Packit |
c32a2d |
finalization
|
|
Packit |
c32a2d |
Freempg123;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
end.
|
|
Packit |
c32a2d |
|