sc68fordevelopers  2.2.1
file68.h
Go to the documentation of this file.
1 
11 /* Copyright (C) 1998-2003 Benjamin Gerard */
12 
13 #ifndef _FILE68_H_
14 #define _FILE68_H_
15 
16 #include "file68/istream68.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
25 #define SC68_IDSTR "SC68 Music-file / (c) (BeN)jamin Gerard / SasHipA-Dev "
26 
27 #define SC68_NOFILENAME "???"
28 #define SC68_LOADADDR 0x8000
29 #define SC68_MAX_TRACK 99
35 #define SC68_YM 1
36 #define SC68_STE 2
37 #define SC68_AMIGA 4
38 #define SC68_STECHOICE 8
43 typedef struct
44 {
45  char id[4];
46  char size[4];
47 } chunk68_t;
48 
49 
54 #define CH68_CHUNK "SC"
56 #define CH68_BASE "68"
57 #define CH68_FNAME "FN"
58 #define CH68_DEFAULT "DF"
60 #define CH68_MUSIC "MU"
61 #define CH68_MNAME "MN"
62 #define CH68_ANAME "AN"
63 #define CH68_CNAME "CN"
64 #define CH68_D0 "D0"
65 #define CH68_AT "AT"
66 #define CH68_TIME "TI"
67 #define CH68_FRAME "FR"
68 #define CH68_FRQ "FQ"
70 #define CH68_TYP "TY"
71 #define CH68_IMG "IM"
72 #define CH68_REPLAY "RE"
74 #define CH68_MDATA "DA"
76 #define CH68_EOF "EF"
82 typedef struct
83 {
84 
88  unsigned d0;
89  unsigned a0;
90  unsigned frq;
91  unsigned start_ms;
92  unsigned time_ms;
93  unsigned frames;
96  struct {
97  unsigned ym:1;
98  unsigned ste:1;
99  unsigned amiga:1;
100  unsigned stechoice:1;
101  } flags;
107  char * name;
108  char * author;
109  char * composer;
110  char * replay;
116  unsigned datasz;
117  char *data;
120 } music68_t;
121 
122 
133 typedef struct
134 {
139  int nb_six;
140  unsigned time_ms;
141  int flags;
142  char *name;
149  char data[1];
152 } disk68_t;
153 
158 extern const char SC68file_idstr[];
159 
160 
181 int SC68file_verify(istream_t * is);
182 
187 int SC68file_verify_file(const char * fname);
188 
194 int SC68file_verify_mem(const void * buffer, int len);
195 
216 int SC68file_diskname(istream_t * is, char * dest, int max);
217 
242 
247 disk68_t * SC68file_load_file(const char * fname);
248 
254 disk68_t * SC68file_load_mem(const void * buffer, int len);
255 
276 int SC68file_save(istream_t * os, const disk68_t * mb);
277 
283 int SC68file_save_file(const char * fname, const disk68_t * mb);
284 
291 int SC68file_save_mem(const char * buffer, int len, const disk68_t * mb);
292 
295 #ifdef __cplusplus
296 }
297 #endif
298 
299 #endif /* #ifndef _FILE68_H_ */
int SC68file_diskname(istream_t *is, char *dest, int max)
Get SC68 disk name.
#define SC68_MAX_TRACK
Maximum track per disk (display rules).
Definition: file68.h:29
int SC68file_verify_file(const char *fname)
Verify SC68 file.
unsigned d0
D0 value to init this music.
Definition: file68.h:88
unsigned time_ms
Duration in ms.
Definition: file68.h:92
unsigned start_ms
Start time in ms from disk 1st track.
Definition: file68.h:91
int SC68file_verify(istream_t *is)
Verify SC68 file from stream.
SC68 music disk structure.
Definition: file68.h:133
int nb_six
number of music track in file.
Definition: file68.h:139
disk68_t * SC68file_load_file(const char *fname)
Load SC68 file.
unsigned frames
Number of frame.
Definition: file68.h:93
char * author
Author name.
Definition: file68.h:108
char * data
Music data.
Definition: file68.h:117
int SC68file_save_file(const char *fname, const disk68_t *mb)
Save SC68 disk into file.
unsigned time_ms
total time for all tracks in ms.
Definition: file68.h:140
unsigned a0
A0 Loading address.
Definition: file68.h:89
int default_six
Perfered default music (default is 0).
Definition: file68.h:138
const char SC68file_idstr[]
SC68 file identifier string.
SC68 file chunk header.
Definition: file68.h:43
int SC68file_save(istream_t *os, const disk68_t *mb)
Save SC68 disk into stream.
ym2149_t ym
YM-2149 emulator internal data.
char * name
Music name.
Definition: file68.h:107
unsigned datasz
data size in bytes.
Definition: file68.h:116
disk68_t * SC68file_load(istream_t *is)
Load SC68 file from stream.
int flags
hardware requirement : all tracks flags ORed.
Definition: file68.h:141
disk68_t * SC68file_load_mem(const void *buffer, int len)
Load SC68 file mapped into memory buffer.
char * composer
Composer name.
Definition: file68.h:109
char * replay
External replay name.
Definition: file68.h:110
int SC68file_verify_mem(const void *buffer, int len)
Verify SC68 file mapped into memory buffer.
Input stream structure.
Definition: istream68_def.h:67
int SC68file_save_mem(const char *buffer, int len, const disk68_t *mb)
Save SC68 disk into memory buffer.
char * name
Disk name.
Definition: file68.h:142
SC68 music (track) structure.
Definition: file68.h:82
unsigned frq
Frequency in Hz (default:50).
Definition: file68.h:90
generic stream operation.