stash
[wine/wine64.git] / dlls / winemp3.acm / mpglib.h
blob865e781e71e07656e3b5d92ab74f1594d47a190c
1 /*
2 * Copyright (c) Michael Hipp and other authors of the mpglib project.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 struct buf {
20 unsigned char *pnt;
21 long size;
22 long pos;
23 struct buf *next;
24 struct buf *prev;
27 struct framebuf {
28 struct buf *buf;
29 long pos;
30 struct frame *next;
31 struct frame *prev;
34 struct mpstr {
35 struct buf *head,*tail;
36 int bsize;
37 int framesize;
38 int fsizeold;
39 struct frame fr;
40 unsigned char bsspace[2][MAXFRAMESIZE+512]; /* MAXFRAMESIZE */
41 real hybrid_block[2][2][SBLIMIT*SSLIMIT];
42 int hybrid_blc[2];
43 unsigned long header;
44 int bsnum;
45 real synth_buffs[2][2][0x110];
46 int synth_bo;
49 #ifndef BOOL
50 #define BOOL int
51 #endif
53 #define MP3_ERR -1
54 #define MP3_OK 0
55 #define MP3_NEED_MORE 1
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
62 BOOL InitMP3(struct mpstr *mp);
63 int decodeMP3(struct mpstr *mp,const unsigned char *inmemory,int inmemsize,
64 unsigned char *outmemory,int outmemsize,int *done);
65 void ClearMP3Buffer(struct mpstr *mp);
67 #ifdef __cplusplus
69 #endif