mirror of
https://github.com/ARMSX2/ARMSX1.git
synced 2026-08-24 16:53:35 -07:00
69 lines
1.8 KiB
C
69 lines
1.8 KiB
C
#ifndef XA_H
|
|
#define XA_H
|
|
|
|
/*
|
|
000h 0Ch Sync
|
|
00Ch 4 Header (Minute,Second,Sector,Mode=02h)
|
|
010h 4 Sub-Header (File, Channel, Submode with bit5=1, Codinginfo)
|
|
014h 4 Copy of Sub-Header
|
|
018h 914h Data (2324 bytes)
|
|
92Ch 4 EDC (checksum accross [010h..92Bh]) (or 00000000h if no EDC)
|
|
*/
|
|
|
|
enum {
|
|
XA_HDR_MINUTE = 0x0c,
|
|
XA_HDR_SECOND,
|
|
XA_HDR_SECTOR,
|
|
XA_HDR_MODE,
|
|
XA_SHDR_FILE,
|
|
XA_SHDR_CHANNEL,
|
|
XA_SHDR_SUBMODE,
|
|
XA_SHDR_CODINGINFO
|
|
};
|
|
|
|
/*
|
|
0 End of Record (EOR) (all Volume Descriptors, and all sectors with EOF)
|
|
1 Video ;\Sector Type (usually ONE of these bits should be set)
|
|
2 Audio ; Note: PSX .STR files are declared as Data (not as Video)
|
|
3 Data ;/
|
|
4 Trigger (for application use)
|
|
5 Form2 (0=Form1/800h-byte data, 1=Form2, 914h-byte data)
|
|
6 Real Time (RT)
|
|
7 End of File (EOF) (or end of Directory/PathTable/VolumeTerminator)
|
|
*/
|
|
|
|
enum {
|
|
XA_SM_EOR = 0x01,
|
|
XA_SM_VIDEO = 0x02,
|
|
XA_SM_AUDIO = 0x04,
|
|
XA_SM_DATA = 0x08,
|
|
XA_SM_TRIG = 0x10,
|
|
XA_SM_FORM2 = 0x20,
|
|
XA_SM_RT = 0x40,
|
|
XA_SM_EOF = 0x80
|
|
};
|
|
|
|
/*
|
|
0-1 Mono/Stereo (0=Mono, 1=Stereo, 2-3=Reserved)
|
|
2-2 Sample Rate (0=37800Hz, 1=18900Hz, 2-3=Reserved)
|
|
4-5 Bits per Sample (0=Normal/4bit, 1=8bit, 2-3=Reserved)
|
|
6 Emphasis (0=Normal/Off, 1=Emphasis)
|
|
7 Reserved (0)
|
|
*/
|
|
|
|
enum {
|
|
XA_CI_MODE = 0x03,
|
|
XA_CI_SAMPLERATE = 0x0c,
|
|
XA_CI_BPS = 0x30,
|
|
XA_CI_EMPHASIS = 0x40,
|
|
XA_CI_MONO = 0x00,
|
|
XA_CI_STEREO = 0x01,
|
|
XA_CI_37800HZ = 0x00,
|
|
XA_CI_18900HZ = 0x04,
|
|
XA_CI_4BIT = 0x00,
|
|
XA_CI_8BIT = 0x10
|
|
};
|
|
|
|
void xa_decode_sector(void*, void*);
|
|
|
|
#endif |