tonezone: Fix regression in Australian tone patch v2.10.0.1
authorRuss Meyerriecks <rmeyerriecks@digium.com>
Tue, 19 Aug 2014 20:22:30 +0000 (15:22 -0500)
committerShaun Ruffell <sruffell@digium.com>
Wed, 17 Sep 2014 00:07:17 +0000 (19:07 -0500)
Initialize db to 1.0 instead of doing it in a few, but not all, logic contexts.

Reported-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com>
Signed-off-by: Shaun Ruffell <sruffell@digium.com>

tonezone.c

index 8987061..e31a803 100644 (file)
@@ -89,7 +89,8 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
        int firstnobang = -1;
        int freq1, freq2, time;
        int modulate = 0;
-       float db, gain;
+       float db = 1.0;
+       float gain;
        int used = 0;
        dup = strdup(t->data);
        s = strtok(dup, ",");
@@ -112,16 +113,13 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
                } else if (sscanf(s, "%d+%d", &freq1, &freq2) == 2) {
                        PRINT_DEBUG("f1+f2 format: %d, %d\n", freq1, freq2);
                        time = 0;
-                       db = 1.0;
                } else if (sscanf(s, "%d*%d", &freq1, &freq2) == 2) {
                        PRINT_DEBUG("f1+f2 format: %d, %d\n", freq1, freq2);
                        modulate = 1;
                        time = 0;
-                       db = 1.0;
                } else if (sscanf(s, "%d/%d", &freq1, &time) == 2) {
                        PRINT_DEBUG("f1/time format: %d, %d\n", freq1, time);
                        freq2 = 0;
-                       db = 1.0;
                } else if (sscanf(s, "%d@/%d", &freq1, &time) == 2) {
                        /* The "@" character has been added to enable an
                         * approximately -20db tone generation of any frequency This has been done
@@ -136,7 +134,6 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
                        firstnobang = *count;
                        freq2 = 0;
                        time = 0;
-                       db = 1.0;
                } else {
                        fprintf(stderr, "tone component '%s' of '%s' is a syntax error\n", s,t->data);
                        return -1;