1 /*--------------------------------------------------------------------------* 2 Project: Revolution Audio sound file converter 3 File: soundconv.h 4 5 Copyright (C)1998-2006 Nintendo All Rights Reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Log: soundconv.h,v $ 14 Revision 1.3 2007/11/26 07:19:01 nakano_yoshinobu 15 Fix for VC2005. 16 17 Revision 1.2 2006/02/09 06:26:26 aka 18 Changed copyright. 19 20 21 *--------------------------------------------------------------------------*/ 22 23 #ifndef __SOUNDCONV_H__ 24 #define __SOUNDCONV_H__ 25 26 #include "types.h" 27 28 29 /*--------------------------------------------------------------------------* 30 soundfil.dll exports 31 *--------------------------------------------------------------------------*/ 32 typedef struct 33 { 34 35 u32 channels; 36 u32 bitsPerSample; 37 u32 sampleRate; 38 u32 samples; 39 u32 loopStart; 40 u32 loopEnd; 41 u32 bufferLength; 42 43 } SOUNDINFO; 44 45 46 /*--------------------------------------------------------------------------* 47 dsptool.dll exports 48 *--------------------------------------------------------------------------*/ 49 typedef struct 50 { 51 // start context 52 u16 coef[16]; 53 u16 gain; 54 u16 pred_scale; 55 u16 yn1; 56 u16 yn2; 57 58 // loop context 59 u16 loop_pred_scale; 60 u16 loop_yn1; 61 u16 loop_yn2; 62 63 } ADPCMINFO; 64 65 66 /*--------------------------------------------------------------------------* 67 local defines 68 *--------------------------------------------------------------------------*/ 69 #define STATUS_SUCCESS 0 70 #define STATUS_EOF 1 71 #define STATUS_ERROR 2 72 73 #define STATE_BEGIN 0 74 #define STATE_END 1 75 76 #define SOUND_FORMAT_ADPCM 0 77 #define SOUND_FORMAT_PCM8 1 78 #define SOUND_FORMAT_PCM16 2 79 80 #define SOUND_STEREO_COMBINE 0 81 #define SOUND_STEREO_LEFT 1 82 #define SOUND_STEREO_RIGHT 2 83 84 85 #define SOUND_DATA_NO_USER_INPUT 0xFFFFFFFF 86 87 88 /*--------------------------------------------------------------------------* 89 player table format 90 *--------------------------------------------------------------------------*/ 91 92 93 typedef struct 94 { 95 96 u32 type; 97 u32 sampleRate; 98 u32 loopAddr; 99 u32 loopEndAddr; 100 u32 endAddr; 101 u32 currentAddr; 102 u32 adpcm; 103 104 } SNDCONVDATA; 105 106 #define SP_TYPE_ADPCM_ONESHOT 0 107 #define SP_TYPE_ADPCM_LOOPED 1 108 #define SP_TYPE_PCM16_ONESHOT 2 109 #define SP_TYPE_PCM16_LOOPED 3 110 #define SP_TYPE_PCM8_ONESHOT 4 111 #define SP_TYPE_PCM8_LOOPED 5 112 113 /*--------------------------------------------------------------------------* 114 function prototypes from sound.c 115 *--------------------------------------------------------------------------*/ 116 void soundSetDefaultFormat (u32 format); 117 void soundInitParams (void); 118 void soundSetSoundFile (char *ch); 119 void soundSetIdString (char *ch); 120 void soundSetSampleRate (u32 i); 121 void soundSetFormat (u32 i); 122 void soundSetLoopStart (u32 i); 123 void soundSetLoopEnd (u32 i); 124 void soundSetMix (u32 i); 125 int soundPrintSound (void); 126 127 128 /*--------------------------------------------------------------------------* 129 function prototypes from soundformat.c 130 *--------------------------------------------------------------------------*/ 131 void soundStereoCombine8Bit (s8 *dest, s8 *source, u32 samples); 132 void soundStereoCombine16Bit (s16 *dest, s16 *source, u32 samples); 133 void soundStereoLeft8Bit (s8 *dest, s8 *source, u32 samples); 134 void soundStereoLeft16Bit (s16 *dest, s16 *source, u32 samples); 135 void soundStereoRight8Bit (s8 *dest, s8 *source, u32 samples); 136 void soundStereoRight16Bit (s16 *dest, s16 *source, u32 samples); 137 void soundConvert8to16Bit (s16 *dest, s8 *source, u32 samples); 138 void soundConvert16to8Bit (s8 *dest, s16 *source, u32 samples); 139 void soundConvert16BitToAdpcm (void *, s16 *, ADPCMINFO *, u32 samples); 140 void soundConvert16BitToAdpcmLoop(void *, s16 *, ADPCMINFO *, u32 samples, u32 loopStart); 141 void soundConvert8BitToAdpcm (void *, s8 *, ADPCMINFO *, u32 samples); 142 void soundConvert8BitToAdpcmLoop(void *, s8 *, ADPCMINFO *, u32 samples, u32 loopStart); 143 144 145 /*--------------------------------------------------------------------------* 146 function prototypes from output.c 147 *--------------------------------------------------------------------------*/ 148 int soundOutputInit (char *name); 149 void soundOutputQuit (void); 150 151 void soundOutputAddEntry( 152 u32 format, 153 u32 dataBytes, 154 void *buffer, 155 u32 samples, 156 u32 sampleRate, 157 u32 loopStart, 158 u32 loopEnd, 159 ADPCMINFO *adpcminfo, 160 char *headerId 161 ); 162 163 void soundOutputComment (char *ch); 164 165 #pragma warning (disable: 4996) //for VC2005 166 167 #endif // __SOUNDCONV_H__ 168