48 lines
1.5 KiB
48 lines
1.5 KiB
/* |
|
vox.h - sentences vox private header |
|
Copyright (C) 2010 Uncle Mike |
|
|
|
This program is free software: you can redistribute it and/or modify |
|
it under the terms of the GNU General Public License as published by |
|
the Free Software Foundation, either version 3 of the License, or |
|
(at your option) any later version. |
|
|
|
This program is distributed in the hope that it will be useful, |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
GNU General Public License for more details. |
|
*/ |
|
|
|
#ifndef VOX_H |
|
#define VOX_H |
|
|
|
#define CVOXWORDMAX 64 |
|
#define CVOXZEROSCANMAX 255 // scan up to this many samples for next zero crossing |
|
#define MAX_SENTENCES 4096 |
|
#define SENTENCE_INDEX -99999 // unique sentence index |
|
|
|
typedef struct voxword_s |
|
{ |
|
int volume; // increase percent, ie: 125 = 125% increase |
|
int pitch; // pitch shift up percent |
|
int start; // offset start of wave percent |
|
int end; // offset end of wave percent |
|
int cbtrim; // end of wave after being trimmed to 'end' |
|
int fKeepCached; // 1 if this word was already in cache before sentence referenced it |
|
int samplefrac; // if pitch shifting, this is position into wav * 256 |
|
int timecompress; // % of wave to skip during playback (causes no pitch shift) |
|
sfx_t *sfx; // name and cache pointer |
|
} voxword_t; |
|
|
|
|
|
typedef struct |
|
{ |
|
char *pName; |
|
float length; |
|
} sentence_t; |
|
|
|
typedef struct channel_s channel_t; |
|
void VOX_LoadWord( channel_t *pchan ); |
|
void VOX_FreeWord( channel_t *pchan ); |
|
|
|
#endif
|
|
|