home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 2002 January / STC_CD_01_2002.iso / APP / TRAIL_PG / GEMJING / GEMJ136.LZH / Develop / JINGLEIN.H < prev    next >
Text File  |  1999-02-27  |  9KB  |  295 lines

  1. #if !defined(__JINGLE_IN__)
  2. #define __JINGLE_IN__
  3.  
  4. #define    LTATTEN                0
  5. #define    RTATTEN                1
  6. #define    LTGAIN                2
  7. #define    RTGAIN                3
  8. #define    ADDERIN                4
  9. #define    ADCINPUT                5
  10. #define    SETPRESCALE            6
  11. #define    ADC                    3
  12.  
  13. #define SMP_HEAD        0x7e817e81L            /* '~ü~ü', SMP-Format von Galactic    */
  14. #define VOC_HEAD        0xabcdef12L            /* dummy f. Test                    */
  15. #define AVR_HEAD        0x32424954L            /* Michtrons AVR-Format            */
  16. #define STEue_HEAD    0x53544581L            /* 'STEü', von SMP abgeleitetes, eigenes Format */
  17. #define DVS_HEAD        0x4456534dL            /* 'DVSM'                            */
  18. #define JAVA_HEAD        0x4A415641L            /* von WAVE abgeleitet            */
  19. #define WAV_HEAD        0x52494646L            /* 'RIFF': WAVE-Format            */
  20. #define NeXT_HEAD        0x2e736e64L            /* '.snd'; NeXT/au-Format        */
  21. #define PSION_HEAD    0x414C6177L            /* 'ALaw'; Psion WVE-Format    */
  22.  
  23. #define ST_SOUND    1
  24. #define STE_SOUND 2
  25. #define FLC_SOUND 3
  26.  
  27. #define    AUDIOGROESSE        32000L
  28. #define    VORTEILER            1
  29.  
  30. /* mögliche VORTEILER-Werte */
  31. #define R_KHZ49   1        /*49170*/
  32. #define R_KHZ33   2        /*33880*/
  33. #define R_KHZ24   3        /*24585*/
  34. #define R_KHZ20   4        /*20770*/
  35. #define R_KHZ16   5        /*16940*/          /* (kein Vorteiler 6,8,10 !!) */
  36. #define R_KHZ12   7        /*12292*/
  37. #define R_KHZ09   9        /* 9834*/
  38. #define R_KHZ08  11        /* 8195*/
  39.  
  40. #define    INQUIRE        -1
  41.  
  42. #define    LTATTEN        0
  43. #define    RTATTEN        1
  44. #define    LTGAIN        2
  45. #define    RTGAIN        3
  46. #define    ADDERIN        4
  47. #define    ADCINPUT    5
  48. #define    SETPRESCALE    6
  49.  
  50. #define    ADC            3
  51. #define    EXTINP        2
  52. #define    DSPXMIT        1
  53. #define    DMAPLAY        0
  54.  
  55. #define    DAC            0x8
  56. #define    EXTOUT        0x4
  57. #define    DSPREC        0x2
  58. #define    DMAREC        0x1
  59.  
  60. #define    STEREO8        0
  61. #define    STEREO16        1
  62. #define    MONO8            2
  63.  
  64. #define    ENABLE        1
  65. #define    TRISTATE        0
  66.  
  67. #define    PLAY_ENABLE        1        /* für buffoper */
  68. #define    PLAY_REPEAT        2
  69. #define    RECORD_ENABLE    4
  70. #define    RECORD_REPEAT    8        /* PC-Doku: 2, ist falsch ! */
  71.  
  72. #define    PLAY            0
  73. #define    RECORD        1
  74.  
  75. #define    CLK_25M        0
  76. #define    CLK25M        0
  77. #define    CLK_EXT        1
  78. #define    CLK_32M        2
  79.  
  80. #define    NO_SHAKE        1
  81. #define    HANDSHAKE    0
  82.  
  83. #define    CLK50K        1
  84. #define    CLK33K        2
  85. #define    CLK25K        3
  86. #define    CLK20K        4
  87. #define    CLK16K        5
  88. #define    CLK12K        7
  89. #define    CLK10K        9
  90. #define    CLK8K            11
  91.  
  92. #define    ACT_CLK50K    49170L
  93. #define    ACT_CLK33K    33880L
  94. #define    ACT_CLK25K    24585L
  95. #define    ACT_CLK20K    20770L
  96. #define    ACT_CLK16K    16490L
  97. #define    ACT_CLK12K    12292L
  98. #define    ACT_CLK10K    9834L
  99. #define    ACT_CLK8K    8195L
  100.  
  101. /*
  102.  *  SOUND XBIOS Errors.
  103.  */
  104. #define    SNDNOTLOCK    -128
  105. #define    SNDLOCKED    -129
  106.  
  107. /* STRK-XBIOS-Erweiterungen */
  108. #define cardmagic() xbios(500,12)
  109.  
  110. enum dvs_modes
  111. {
  112.     DVS8 = 0, DVS9, DVS12, DVS16, DVS19, DVS24, DVS32,
  113.     DVS49
  114. };
  115.  
  116. /* Der Header eines HSN-Samples */
  117. /* Header des HSN-Formats Version 1.1 */
  118. typedef struct
  119. {
  120.     char    name[20];
  121.     long    laenge;
  122.     int     frequenz;
  123.     int     stereo;
  124.     int     res1;
  125.     int     bitsps;
  126.     int     res2;
  127.     int     dm_laut;
  128.     int     dm_links;
  129.     int     dm_rechts;
  130.     int     dm_hoehen;
  131.     int     dm_tiefen;
  132.     long    res3;
  133.     char    info[41];
  134. } HSN_NEW;
  135.  
  136. /* Header des HSN-Formats Version 1.0 */
  137. typedef struct
  138. {
  139.     char    name[20];
  140.     long    laenge;
  141.     int     frequenz;
  142.     int     stereo;
  143.     int     res1;
  144.     int     bitsps;
  145.     int     res2;
  146.     int     dm_laut;
  147.     int     dm_links;
  148.     int     dm_rechts;
  149.     int     dm_hoehen;
  150.     int     dm_tiefen;
  151.     long    res3;
  152. } HSN_ALT;
  153.  
  154. typedef struct
  155. {
  156.     ULONG    main_chunk;        /* 'RIFF' */
  157.     ULONG    length;            /* Gesamtlänge der Datei */
  158.     ULONG    chunk_type;        /* 'WAVE' */
  159.     ULONG    sub_chunk;        /* 'fmt ' */
  160.     ULONG    len_sub;            /* Länge sub_chunk, immer =16 Bytes */
  161.     WORD    format;            /* momentan immer =1 für PCM-Code */
  162.     WORD    modus;            /* =1 für Mono und =2 für Stereo */
  163.     ULONG    sample_fq;        /* Sample-Frequenz */
  164.     ULONG    byte_p_sec;        /* Datendurchsatz pro Sekunde */
  165.     WORD    byte_p_spl;        /* Bytes per Sample; =1 für 8-Bit, =2 für 16 Bit */
  166.     WORD    bit_p_spl;        /* Bits per Sample; 8,12,16 */
  167.     ULONG    data_chunk;        /* Kennung des Data-Bereichs ='data' */
  168.     ULONG data_length;    /* Länge des Data-Blocks */
  169. } my_wav_hd;
  170.  
  171. typedef struct
  172. {
  173.     ULONG    len_sub;            /* Länge sub_chunk, immer =16 Bytes */
  174.     WORD    format;            /* momentan immer =1 für PCM-Code */
  175.     WORD    modus;            /* =1 für Mono und =2 für Stereo */
  176.     ULONG    sample_fq;        /* Sample-Frequenz */
  177.     ULONG    byte_p_sec;        /* Datendurchsatz pro Sekunde */
  178.     WORD    byte_p_spl;        /* Bytes per Sample; =1 für 8-Bit, =2 für 16 Bit */
  179.     WORD    bit_p_spl;        /* Bits per Sample; 8,12,16 */
  180. } SUB_CH;
  181.  
  182. typedef struct
  183. {
  184.     ULONG    main_chunk;        /* 'JAVA' */
  185.     LONG    res1;
  186.     LONG    res2;
  187.     ULONG    length;            /* Gesamtlänge der Datei */
  188.     ULONG    chunk_type;        /* 'JAVA' */
  189.     ULONG    sub_chunk;        /* 'BYTE' */
  190.     ULONG    len_sub;            /* Länge sub_chunk, immer =16 Bytes */
  191.     WORD    format;            /* momentan immer =1 für PCM-Code */
  192.     WORD    modus;            /* =1 für Mono und =2 für Stereo */
  193.     ULONG    sample_fq;        /* Sample-Frequenz */
  194.     ULONG    byte_p_sec;        /* Datendurchsatz pro Sekunde */
  195.     WORD    byte_p_spl;        /* Bytes per Sample; =1 für 8-Bit, =2 für 16 Bit */
  196.     WORD    bit_p_spl;        /* Bits per Sample; 8,12,16 */
  197.     ULONG    data_chunk;        /* Kennung des Data-Bereichs ='data' */
  198.     ULONG data_length;    /* Länge des Data-Blocks */
  199. } my_java_hd;
  200.  
  201. typedef struct
  202. {
  203.     ULONG id;            /* Kennung $7e817e81                                */
  204.     UWORD header_len;    /* Länge dieses Vorspanns                        */
  205.     UWORD info_len;    /* Länge zusätzlicher Infos nach diesem Vorspann */
  206.     ULONG    sam_len;        /* Samplelänge ungepackt                        */
  207.     ULONG sam_lenp;    /* Samplelänge   gepackt                        */
  208.     UBYTE res;            /* Bitzahl pro Samplewert (4,8,16)            */
  209.     UBYTE fmt;            /* Bitzahl eines Samplewerts auf Medium     */
  210.     ULONG    frq;            /* Samplefrequenz in Hz                         */
  211.     UWORD flags;        /* Low-Byte: Kanalzahl (0=Mono, 1=Stereo)    */
  212.                             /* Bit 8:    0: Kanäle abwechselnd            */
  213.                             /*                1: Kanäle in Blöcken hintereinander */
  214.                             /* Bit 9:    1: Relativkomprimieren (Delta)*/
  215.                             /* Bit 10:    1: Huffman                            */
  216.                             /* Bit 11-14: Computer; 0=Atari                */
  217.     UWORD    rel_len;        /* Spannweite beim Relativkomprimieren        */
  218.     ULONG date;            /* Format:    Tgetdate                                */
  219.     ULONG time;            /*                Tgettime                                */
  220.     UBYTE rem[150];    /* Bemerkungen                                        */
  221.     UWORD blocks;        /* Markenanzahl (hier: immer 0)                */
  222.     WORD    hufftablen;    /* Länge der Huffmantabelle (immer 8Bit bezogen) */
  223. } SMPHEADER;
  224.  
  225. typedef struct
  226. {
  227.     char magic[6];            /* "DVSM\0\0" */
  228.     int headlen;            /* Headlen in Bytes*/
  229.     unsigned int freq;/* Samplefrequenz 0=8kHz 7=50kHz (erlaubte 
  230.                         CODEC Frequenzen)*/
  231.     char pack,mode;    /* 0=Ungepackt, 2=DVS Packmethode(CPU)*/ /* 0=Stereo 8Bit,1=Stereo 16Bit,2=Mono 8Bit*/
  232.     LONG blocklen;        /* falls pack>1: Länge eines gepackten Blocks*/
  233. } DVSMHEAD;
  234.  
  235. typedef struct
  236. {
  237.     LONG    magic;                /* '2BIT' */
  238.     BYTE    rsv1[7];                /* reserviert/unbekannt */
  239.     BYTE    channels;            /* 12. Byte: Kanäle */
  240.     BYTE    rsv2[2];                /* reserviert/unbekannt */
  241.     BYTE    res;                    /* 15. Byte: RESolution - Auflösung in Bit */
  242.     BYTE    rsv3;                    /* reserviert/unbekannt */
  243.     BYTE    sign;                    /* 17. Byte: Vorzeichen der Sampledaten */
  244.     BYTE    rsv4[4];                /* reserviert/unbekannt */
  245.     LONG    frq;                    /* 22. Byte: Frequenz in Hz */
  246.     LONG    len;                    /* 26. Byte: Länge, mu₧ bei STEREO verdoppelt werden! */
  247. } AVRHEADER;
  248.  
  249. typedef struct
  250. {
  251.         BYTE magic[4];                /* "2BIT" */
  252.         BYTE name[8];           /* null-padded sample name */
  253.         UWORD mono;             /* 0 = mono, 0xffff = stereo */
  254.         WORD rez;              /* 8 = 8 bit, 16 = 16 bit */
  255.         UWORD sign;             /* 0 = unsigned, 0xffff = signed */
  256.         UWORD loop;             /* 0 = no loop, 0xffff = looping sample */
  257.         WORD midi;             /* 0xffff = no MIDI note assigned,
  258.                                    0xffXX = single key note assignment
  259.                                    0xLLHH = key split, low/hi note */
  260.         LONG rate;              /* sample frequency in hertz */
  261.         LONG size;              /* sample length in bytes or words (see rez) */
  262.         LONG lbeg;              /* offset to start of loop in bytes or words.
  263.                                    set to zero if unused. */
  264.         LONG lend;              /* offset to end of loop in bytes or words.
  265.                                    set to sample length if unused. */
  266.         WORD res1;             /* Reserved, MIDI keyboard split */
  267.         WORD res2;             /* Reserved, sample compression */
  268.         WORD res3;             /* Reserved */
  269.         BYTE ext[20];           /* Additional filename space, used
  270.                                    if (name[7] != 0) */
  271.         BYTE user[64];          /* User defined. Typically ASCII message. */
  272. } AVR_NEWHEADER;
  273.  
  274. #define PSION_COMPLETE_MAGIC    "ALawSoundFile**"
  275. #define PSION_HEADER_LEN        32
  276. typedef struct
  277. {
  278.     /* Immer 8000 Hz mono signed */
  279.     BYTE magic[16];    /* "ALawSoundFile**" */
  280.     WORD fmt_version;    /* format version number */
  281.     LONG num_samples; /* number of samples in the file */
  282.     WORD len_silence;    /* length of silence (in 1/32 seconds)
  283.                                 to append on playback */
  284.     WORD repeats;        /* number of times to repeat on playback
  285.                                 (0 and 1 both mean play once) */
  286. } PSION_WVE_HEADER;
  287.  
  288. typedef struct
  289. {
  290.     LONG playbufptr;
  291.     LONG recbufptr;
  292.     LONG res1,res2;
  293. } DMAPOS;
  294.  
  295. #endif