Browse Source

cleanup: refactor and remove duplication from SetSpeed() implementations.

master
Juho Hiltunen 2 years ago
parent
commit
0c82988b44
1 changed files with 23 additions and 23 deletions
  1. 23
    23
      src/libespeak-ng/setlengths.c

+ 23
- 23
src/libespeak-ng/setlengths.c View File

@@ -40,6 +40,7 @@

static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3);
static void SetSpeedMods(SPEED_FACTORS *speed, int voiceSpeedF1, int wpm, int x);
static void SetSpeedMultiplier(int *x, int *wpm);

extern int saved_parameters[];

@@ -193,18 +194,7 @@ void SetSpeed(int control)
return;
}

if (wpm > espeakRATE_MAXIMUM)
wpm = espeakRATE_MAXIMUM;

wpm2 = wpm;
if (wpm > 359) wpm2 = 359;
if (wpm < espeakRATE_MINIMUM) wpm2 = espeakRATE_MINIMUM;
x = speed_lookup[wpm2-espeakRATE_MINIMUM];

if (wpm >= 380)
x = 7;
if (wpm >= 400)
x = 6;
SetSpeedMultiplier(&x, &wpm);

if (control & 1) {
SetSpeedFactors(voice, x, &speed1, &speed2, &speed3);
@@ -234,18 +224,8 @@ void SetSpeed(int control)

if (voice->speed_percent > 0)
wpm = (wpm * voice->speed_percent)/100;
if (wpm > espeakRATE_MAXIMUM)
wpm = espeakRATE_MAXIMUM;

wpm2 = wpm;
if (wpm > 359) wpm2 = 359;
if (wpm < espeakRATE_MINIMUM) wpm2 = espeakRATE_MINIMUM;
x = speed_lookup[wpm2-espeakRATE_MINIMUM];

if (wpm >= 380)
x = 7;
if (wpm >= 400)
x = 6;
SetSpeedMultiplier(&x, &wpm);

if (control & 1) {
SetSpeedFactors(voice, x, &speed1, &speed2, &speed3);
@@ -259,6 +239,26 @@ void SetSpeed(int control)

#endif

static void SetSpeedMultiplier(int *x, int *wpm) {
int wpm2;

if (*wpm > espeakRATE_MAXIMUM)
*wpm = espeakRATE_MAXIMUM;

wpm2 = *wpm;
if (*wpm > 359) wpm2 = 359;
if (*wpm < espeakRATE_MINIMUM) {
wpm2 = espeakRATE_MINIMUM;
}

*x = speed_lookup[wpm2-espeakRATE_MINIMUM];

if (*wpm >= 380)
*x = 7;
if (*wpm >= 400)
*x = 6;
}

static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3) {
// set speed factors for different syllable positions within a word
// these are used in CalcLengths()

Loading…
Cancel
Save