LIDL Soundboard  1.9.0
A simple soundboard, yet better than EXP Soundboard forsenE
bassflac.h
Go to the documentation of this file.
1 /*
2  BASSFLAC 2.4 C/C++ header file
3  Copyright (c) 2004-2017 Un4seen Developments Ltd.
4 
5  See the BASSFLAC.CHM file for more detailed documentation
6 */
7 
8 #ifndef BASSFLAC_H
9 #define BASSFLAC_H
10 
11 #include "bass.h"
12 
13 #if BASSVERSION!=0x204
14 #error conflicting BASS and BASSFLAC versions
15 #endif
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #ifndef BASSFLACDEF
22 #define BASSFLACDEF(f) WINAPI f
23 #endif
24 
25 // BASS_CHANNELINFO type
26 #define BASS_CTYPE_STREAM_FLAC 0x10900
27 #define BASS_CTYPE_STREAM_FLAC_OGG 0x10901
28 
29 // Additional tag types
30 #define BASS_TAG_FLAC_CUE 12 // cuesheet : TAG_FLAC_CUE structure
31 #define BASS_TAG_FLAC_PICTURE 0x12000 // + index #, picture : TAG_FLAC_PICTURE structure
32 #define BASS_TAG_FLAC_METADATA 0x12400 // + index #, application metadata : TAG_FLAC_METADATA structure
33 
34 typedef struct {
35  DWORD apic; // ID3v2 "APIC" picture type
36  const char *mime; // mime type
37  const char *desc; // description
42  DWORD length; // data length
43  const void *data;
45 
46 typedef struct {
47  QWORD offset; // index offset relative to track offset (samples)
48  DWORD number; // index number
50 
51 typedef struct {
52  QWORD offset; // track offset (samples)
53  DWORD number; // track number
54  const char *isrc; // ISRC
56  DWORD nindexes; // number of indexes
57  const TAG_FLAC_CUE_TRACK_INDEX *indexes; // the indexes
59 
60 typedef struct {
61  const char *catalog; // media catalog number
62  DWORD leadin; // lead-in (samples)
63  BOOL iscd; // a CD?
64  DWORD ntracks; // number of tracks
65  const TAG_FLAC_CUE_TRACK *tracks; // the tracks
66 } TAG_FLAC_CUE;
67 
68 // TAG_FLAC_CUE_TRACK flags
69 #define TAG_FLAC_CUE_TRACK_DATA 1 // data track
70 #define TAG_FLAC_CUE_TRACK_PRE 2 // pre-emphasis
71 
72 typedef struct {
73  char id[4];
74  DWORD length; // data length
75  const void *data;
77 
78 HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateFile)(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags);
79 HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user);
81 
82 #ifdef __cplusplus
83 }
84 
85 #ifdef _WIN32
86 static inline HSTREAM BASS_FLAC_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags)
87 {
88  return BASS_FLAC_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE);
89 }
90 
91 static inline HSTREAM BASS_FLAC_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user)
92 {
93  return BASS_FLAC_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user);
94 }
95 #endif
96 #endif
97 
98 #endif
DWORD nindexes
Definition: bassflac.h:56
Definition: bassflac.h:46
const char * catalog
Definition: bassflac.h:61
DWORD colors
Definition: bassflac.h:41
DWORD length
Definition: bassflac.h:74
BOOL iscd
Definition: bassflac.h:63
Definition: bassflac.h:60
QWORD offset
Definition: bassflac.h:47
#define BASSFLACDEF(f)
Definition: bassflac.h:22
HSTREAM BASSFLACDEF() BASS_FLAC_StreamCreateURL(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user)
const char * mime
Definition: bassflac.h:36
const char * desc
Definition: bassflac.h:37
DWORD number
Definition: bassflac.h:53
const char * isrc
Definition: bassflac.h:54
void DWORD void * user
Definition: bass.h:495
DWORD leadin
Definition: bassflac.h:62
DWORD number
Definition: bassflac.h:48
DWORD ntracks
Definition: bassflac.h:64
DWORD HSTREAM
Definition: bass.h:53
DWORD depth
Definition: bassflac.h:40
HSTREAM BASSFLACDEF() BASS_FLAC_StreamCreateFileUser(DWORD system, DWORD flags, const BASS_FILEPROCS *procs, void *user)
int BOOL
Definition: bass.h:23
uint32_t DWORD
Definition: bass.h:20
Definition: bass.h:522
HSTREAM BASSFLACDEF() BASS_FLAC_StreamCreateFile(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags)
Definition: bassflac.h:51
DWORD width
Definition: bassflac.h:38
const void * data
Definition: bassflac.h:43
const TAG_FLAC_CUE_TRACK_INDEX * indexes
Definition: bassflac.h:57
DWORD flags
Definition: bassflac.h:55
DWORD apic
Definition: bassflac.h:35
const TAG_FLAC_CUE_TRACK * tracks
Definition: bassflac.h:65
DWORD length
Definition: bassflac.h:42
Definition: bassflac.h:34
void DWORD length
Definition: bass.h:495
uint64_t QWORD
Definition: bass.h:21
const void * data
Definition: bassflac.h:75
QWORD offset
Definition: bassflac.h:52
Definition: bassflac.h:72
#define BASS_UNICODE
Definition: bass.h:344
DWORD height
Definition: bassflac.h:39