Skip to content

Commit

Permalink
timidity: add header guards, hide private syms by prefixing with timi_.
Browse files Browse the repository at this point in the history
  • Loading branch information
sezero committed Mar 18, 2021
1 parent 7132377 commit 267deeb
Show file tree
Hide file tree
Showing 18 changed files with 167 additions and 91 deletions.
6 changes: 3 additions & 3 deletions src/timidity/common.c
Expand Up @@ -33,7 +33,7 @@ typedef struct _PathList {
static PathList *pathlist = NULL;

/* This is meant to find and open files for reading */
SDL_RWops *open_file(const char *name)
SDL_RWops *timi_openfile(const char *name)
{
SDL_RWops *rw;

Expand Down Expand Up @@ -82,7 +82,7 @@ SDL_RWops *open_file(const char *name)
}

/* This adds a directory to the path list */
int add_to_pathlist(const char *s, size_t l)
int timi_add_pathlist(const char *s, size_t l)
{
PathList *plp = SDL_malloc(sizeof(PathList));
if (plp == NULL) return -2;
Expand All @@ -98,7 +98,7 @@ int add_to_pathlist(const char *s, size_t l)
return 0;
}

void free_pathlist(void)
void timi_free_pathlist(void)
{
PathList *plp = pathlist;
PathList *next;
Expand Down
17 changes: 14 additions & 3 deletions src/timidity/common.h
Expand Up @@ -8,6 +8,17 @@
common.h
*/

extern SDL_RWops *open_file(const char *name);
extern int add_to_pathlist(const char *s, size_t len);
extern void free_pathlist(void);
#ifndef TIMIDITY_COMMON_H
#define TIMIDITY_COMMON_H

extern SDL_RWops *timi_openfile(const char *name);

/* pathlist funcs only to be used during Timidity_Init/Timidity_Exit */
extern int timi_add_pathlist(const char *s, size_t len);
extern void timi_free_pathlist(void);

/* hide private symbols by prefixing with "_timi_" */
#undef TIMI_NAMESPACE
#define TIMI_NAMESPACE(x) _timi_ ## x

#endif /* TIMIDITY_COMMON_H */
8 changes: 4 additions & 4 deletions src/timidity/instrum.c
Expand Up @@ -94,8 +94,8 @@ static Sint32 convert_vibrato_sweep(MidiSong *song, Uint8 sweep,
return 0;

return
(Sint32) (FSCALE((double) (vib_control_ratio) * SWEEP_TUNING, SWEEP_SHIFT)
/ (double)(song->rate * sweep));
(Sint32) (TIM_FSCALE((double) (vib_control_ratio) * SWEEP_TUNING, SWEEP_SHIFT)
/ (double)(song->rate * sweep));

/* this was overflowing with seashore.pat
Expand Down Expand Up @@ -161,13 +161,13 @@ static void load_instrument(MidiSong *song, const char *name,
if (!name) return;

/* Open patch file */
if ((rw=open_file(name)) == NULL)
if ((rw=timi_openfile(name)) == NULL)
{
/* Try with various extensions */
for (i=0; patch_ext[i]; i++)
{
SDL_snprintf(tmp, sizeof(tmp), "%s%s", name, patch_ext[i]);
if ((rw=open_file(tmp)) != NULL)
if ((rw=timi_openfile(tmp)) != NULL)
break;
}
}
Expand Down
9 changes: 9 additions & 0 deletions src/timidity/instrum.h
Expand Up @@ -8,6 +8,9 @@
instrum.h
*/

#ifndef TIMIDITY_INSTRUM_H
#define TIMIDITY_INSTRUM_H

/* Bits in modes: */
#define MODES_16BIT (1<<0)
#define MODES_UNSIGNED (1<<1)
Expand All @@ -23,6 +26,12 @@

#define SPECIAL_PROGRAM -1

#define load_missing_instruments TIMI_NAMESPACE(load_missing_instruments)
#define free_instruments TIMI_NAMESPACE(free_instruments)
#define set_default_instrument TIMI_NAMESPACE(set_default_instrument)

extern int load_missing_instruments(MidiSong *song);
extern void free_instruments(MidiSong *song);
extern int set_default_instrument(MidiSong *song, const char *name);

#endif /* TIMIDITY_INSTRUM_H */
13 changes: 7 additions & 6 deletions src/timidity/mix.c
Expand Up @@ -13,6 +13,7 @@

#include "timidity.h"
#include "options.h"
#include "common.h"
#include "instrum.h"
#include "playmidi.h"
#include "output.h"
Expand Down Expand Up @@ -77,12 +78,12 @@ void apply_envelope_to_amp(MidiSong *song, int v)
ramp *= (float)vol_table[song->voice[v].envelope_volume>>23];
}

la = (Sint32)FSCALE(lamp,AMP_BITS);
la = (Sint32)TIM_FSCALE(lamp,AMP_BITS);

if (la>MAX_AMP_VALUE)
la=MAX_AMP_VALUE;

ra = (Sint32)FSCALE(ramp,AMP_BITS);
ra = (Sint32)TIM_FSCALE(ramp,AMP_BITS);
if (ra>MAX_AMP_VALUE)
ra=MAX_AMP_VALUE;

Expand All @@ -96,7 +97,7 @@ void apply_envelope_to_amp(MidiSong *song, int v)
if (song->voice[v].sample->modes & MODES_ENVELOPE)
lamp *= (float)vol_table[song->voice[v].envelope_volume>>23];

la = (Sint32)FSCALE(lamp,AMP_BITS);
la = (Sint32)TIM_FSCALE(lamp,AMP_BITS);

if (la>MAX_AMP_VALUE)
la=MAX_AMP_VALUE;
Expand Down Expand Up @@ -146,9 +147,9 @@ static void update_tremolo(MidiSong *song, int v)
song->voice[v].tremolo_phase -= SINE_CYCLE_LENGTH<<RATE_SHIFT; */

song->voice[v].tremolo_volume = (float)
(1.0 - FSCALENEG((sine(song->voice[v].tremolo_phase >> RATE_SHIFT) + 1.0)
* depth * TREMOLO_AMPLITUDE_TUNING,
17));
(1.0 - TIM_FSCALENEG((timi_sine(song->voice[v].tremolo_phase >> RATE_SHIFT) + 1.0)
* depth * TREMOLO_AMPLITUDE_TUNING,
17));

/* I'm not sure about the +1.0 there -- it makes tremoloed voices'
volumes on average the lower the higher the tremolo amplitude. */
Expand Down
9 changes: 9 additions & 0 deletions src/timidity/mix.h
Expand Up @@ -8,6 +8,15 @@
mix.h
*/

#ifndef TIMIDITY_MIX_H
#define TIMIDITY_MIX_H

#define mix_voice TIMI_NAMESPACE(mix_voice)
#define recompute_envelope TIMI_NAMESPACE(recompute_envelope)
#define apply_envelope_to_amp TIMI_NAMESPACE(apply_envelope_to_amp)

extern void mix_voice(MidiSong *song, Sint32 *buf, int v, Sint32 c);
extern int recompute_envelope(MidiSong *song, int v);
extern void apply_envelope_to_amp(MidiSong *song, int v);

#endif /* TIMIDITY_MIX_H */
21 changes: 15 additions & 6 deletions src/timidity/options.h
Expand Up @@ -6,6 +6,9 @@
it under the terms of the Perl Artistic License, available in COPYING.
*/

#ifndef TIMIDITY_OPTIONS_H
#define TIMIDITY_OPTIONS_H

/* When a patch file can't be opened, one of these extensions is
appended to the filename and the open is tried again.
*/
Expand All @@ -19,7 +22,7 @@
On the other hand, some files know that 16 is not a drum channel and
try to play music on it. This is now a runtime option, so this isn't
a critical choice anymore. */
#define DEFAULT_DRUMCHANNELS (1<<9) /* | (1<<15) */
#define DEFAULT_DRUMCHANNELS (1<<9)

/* In percent. */
#define DEFAULT_AMPLIFICATION 70
Expand All @@ -33,10 +36,13 @@
#define CONTROLS_PER_SECOND 1000

/* Make envelopes twice as fast. Saves ~20% CPU time (notes decay
faster) and sounds more like a GUS. There is now a command line
option to toggle this as well. */
faster) and sounds more like a GUS. */
#define FAST_DECAY

/* A somewhat arbitrary output frequency range. */
#define MIN_OUTPUT_RATE 4000
#define MAX_OUTPUT_RATE 256000

/* How many bits to use for the fractional part of sample positions.
This affects tonal accuracy. The entire position counter must fit
in 32 bits, so with FRACTION_BITS equal to 12, the maximum size of
Expand All @@ -60,6 +66,7 @@
/**************************************************************************/

/* change FRACTION_BITS above, not these */
#define INTEGER_BITS (32 - FRACTION_BITS)
#define INTEGER_MASK (0xFFFFFFFF << FRACTION_BITS)
#define FRACTION_MASK (~ INTEGER_MASK)

Expand All @@ -79,8 +86,8 @@

#define MAX_AMP_VALUE ((1<<(AMP_BITS+1))-1)

#define FSCALE(a,b) (float)((a) * (double)(1<<(b)))
#define FSCALENEG(a,b) (float)((a) * (1.0L / (double)(1<<(b))))
#define TIM_FSCALE(a,b) (float)((a) * (double)(1<<(b)))
#define TIM_FSCALENEG(a,b) (float)((a) * (1.0L / (double)(1<<(b))))

/* Vibrato and tremolo Choices of the Day */
#define SWEEP_TUNING 38
Expand All @@ -93,5 +100,7 @@
#define RATE_SHIFT 5

#ifndef PI
#define PI 3.14159265358979323846
#define PI 3.14159265358979323846
#endif

#endif /* TIMIDITY_OPTIONS_H */
18 changes: 9 additions & 9 deletions src/timidity/output.c
Expand Up @@ -19,7 +19,7 @@
/*****************************************************************/
/* Some functions to convert signed 32-bit data to other formats */

void s32tos8(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tos8(void *dp, Sint32 *lp, Sint32 c)
{
Sint8 *cp=(Sint8 *)(dp);
Sint32 l;
Expand All @@ -32,7 +32,7 @@ void s32tos8(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tou8(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tou8(void *dp, Sint32 *lp, Sint32 c)
{
Uint8 *cp=(Uint8 *)(dp);
Sint32 l;
Expand All @@ -45,7 +45,7 @@ void s32tou8(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tos16(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tos16(void *dp, Sint32 *lp, Sint32 c)
{
Sint16 *sp=(Sint16 *)(dp);
Sint32 l;
Expand All @@ -58,7 +58,7 @@ void s32tos16(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tou16(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tou16(void *dp, Sint32 *lp, Sint32 c)
{
Uint16 *sp=(Uint16 *)(dp);
Sint32 l;
Expand All @@ -71,7 +71,7 @@ void s32tou16(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tos16x(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tos16x(void *dp, Sint32 *lp, Sint32 c)
{
Sint16 *sp=(Sint16 *)(dp);
Sint32 l;
Expand All @@ -84,7 +84,7 @@ void s32tos16x(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tou16x(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tou16x(void *dp, Sint32 *lp, Sint32 c)
{
Uint16 *sp=(Uint16 *)(dp);
Sint32 l;
Expand All @@ -97,7 +97,7 @@ void s32tou16x(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tof32(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tof32(void *dp, Sint32 *lp, Sint32 c)
{
float *sp=(float *)(dp);
while (c--)
Expand All @@ -106,7 +106,7 @@ void s32tof32(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tos32(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tos32(void *dp, Sint32 *lp, Sint32 c)
{
Sint32 *sp=(Sint32 *)(dp);
while (c--)
Expand All @@ -115,7 +115,7 @@ void s32tos32(void *dp, Sint32 *lp, Sint32 c)
}
}

void s32tos32x(void *dp, Sint32 *lp, Sint32 c)
void timi_s32tos32x(void *dp, Sint32 *lp, Sint32 c)
{
Sint32 *sp=(Sint32 *)(dp);
while (c--)
Expand Down
47 changes: 26 additions & 21 deletions src/timidity/output.h
Expand Up @@ -8,6 +8,9 @@
output.h
*/

#ifndef TIMIDITY_OUTPUT_H
#define TIMIDITY_OUTPUT_H

/* Data format encoding bits */

#define PE_MONO 0x01 /* versus stereo */
Expand All @@ -19,37 +22,39 @@
data in another format */

/* 8-bit signed and unsigned*/
extern void s32tos8(void *dp, Sint32 *lp, Sint32 c);
extern void s32tou8(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tos8(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tou8(void *dp, Sint32 *lp, Sint32 c);

/* 16-bit */
extern void s32tos16(void *dp, Sint32 *lp, Sint32 c);
extern void s32tou16(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tos16(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tou16(void *dp, Sint32 *lp, Sint32 c);

/* byte-exchanged 16-bit */
extern void s32tos16x(void *dp, Sint32 *lp, Sint32 c);
extern void s32tou16x(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tos16x(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tou16x(void *dp, Sint32 *lp, Sint32 c);

/* 32-bit */
extern void s32tof32(void *dp, Sint32 *lp, Sint32 c);
extern void s32tos32(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tof32(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tos32(void *dp, Sint32 *lp, Sint32 c);

/* byte-exchanged 32-bit */
extern void s32tos32x(void *dp, Sint32 *lp, Sint32 c);
extern void timi_s32tos32x(void *dp, Sint32 *lp, Sint32 c);

/* little-endian and big-endian specific */
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
#define s32tou16l s32tou16
#define s32tou16b s32tou16x
#define s32tos16l s32tos16
#define s32tos16b s32tos16x
#define s32tos32l s32tos32
#define s32tos32b s32tos32x
#define timi_s32tou16l timi_s32tou16
#define timi_s32tou16b timi_s32tou16x
#define timi_s32tos16l timi_s32tos16
#define timi_s32tos16b timi_s32tos16x
#define timi_s32tos32l timi_s32tos32
#define timi_s32tos32b timi_s32tos32x
#else
#define s32tou16l s32tou16x
#define s32tou16b s32tou16
#define s32tos16l s32tos16x
#define s32tos16b s32tos16
#define s32tos32l s32tos32x
#define s32tos32b s32tos32
#define timi_s32tou16l timi_s32tou16x
#define timi_s32tou16b timi_s32tou16
#define timi_s32tos16l timi_s32tos16x
#define timi_s32tos16b timi_s32tos16
#define timi_s32tos32l timi_s32tos32x
#define timi_s32tos32b timi_s32tos32
#endif

#endif /* TIMIDITY_OUTPUT_H */

0 comments on commit 267deeb

Please sign in to comment.