Case statement error

love the reference :slight_smile:

Here are the new enum and double array.

enum soundEffects {
    alarm,
    alarm_high,
    alarm_low,
    Dev_startup,
    error,
    error1,
    noread,
    noreadings,
    normalrange,
    startup,
    startup_dev,
    update,
    warning,
    warning_high,
    warning_low,
};

void playWav (enum soundEffects effect, int volume)
{
    //Serial.println("Entered paciplay_day");
    //printf("Entered paciplay_day\n");

    switch (effect)
    {
        case alarm:
            //file = new AudioFileSourceSD("/wav/alarm.wav");
            printf("/wav/alarm.wav\n");
            break;

        case alarm_high:
            //file = new AudioFileSourceSD("/wav/alarmhigh.wav");
            printf("/wav/alarmhigh.wav\n");
            break;

        case alarm_low:
            //file = new AudioFileSourceSD("/wav/alarmlow.wav");
            printf("/wav/alarmlow.wav\n");
            break;

        case error:
            //file = new AudioFileSourceSD("/wav/error.wav");
            printf("/wav/error.wav\n");
            break;

        case error1:
            //file = new AudioFileSourceSD("/wav/error1.wav");
            printf("/wav/error1.wav\n");
            break;

        case noread:
            //file = new AudioFileSourceSD("/wav/noread.wav");
            printf("/wav/noread.wav\n");
            break;

        case noreadings:
            //file = new AudioFileSourceSD("/wav/noreadings.wav");
            printf("/wav/noreadings.wav\n");
            break;

        case normalrange:
            //file = new AudioFileSourceSD("/wav/normalrange.wav");
            printf("/wav/normalrange.wav\n");
            break;

        case warning:
            //file = new AudioFileSourceSD("/wav/warning.wav");
            printf("/wav/warning.wav\n");
            break;

        case warning_high:
            //file = new AudioFileSourceSD("/wav/warninghigh.wav");
            printf("/wav/warninghigh.wav\n");
            break;

        case warning_low:
            //file = new AudioFileSourceSD("/wav/warninglow.wav");
            printf("/wav/warninglow.wav\n");
            break;

        case startup:
            //file = new AudioFileSourceSD("/wav/startup.wav");
            printf("/wav/startup.wav\n");
            break;

        case update:
            //file = new AudioFileSourceSD("/wav/update.wav");
            printf("/wav/update.wav\n");
            break;
    }
}

int main()
{
    //using direct numbers
    for (int i = 0; i<14; i++)
    {
        printf("enum value: %d\n", i);
        playWav(i, 50);
    }

    //directly calling
    playWav(startup, 100);

    // Other way of calling the value
    enum soundEffects sound;
    sound = error;
    playWav(sound, 100);
    return 0;
}

and the double array

void playWav (const char *filename, int volume)
{
    //Serial.println("Entered paciplay_day");
    printf("Entered paciplay_day\n");

    //file = new AudioFileSourceSD("/wav/update.wav");
    printf("/wav/%s\n", filename);
}

int main()
{
    const char list_of_files[][25] = { "startup.wav", "update.wav", "warning.wav", "alarm.wav" };
    for (int i = 0; i<4; i++)
    {
        printf("name: %s\n", list_of_files[i]);
        playWav(list_of_files[i], 50);
    }
    return 0;
}

Now i used to control volume via

float volumeGain = ((float) bg1248_volume/ 100.0) * 39.0;

Serial.print("volumeGain:");

Serial.println(volumeGain);

id3 = new AudioFileSourceID3(file);

out = new AudioOutputI2S(0, 0); // Output to builtInDAC

out->SetPinout(12, 0, 2);

out->SetOutputModeMono(true);

out->SetGain(volumeGain);

wav = new AudioGeneratorWAV();

wav->begin(id3, out);

However im not sure how to do that anymore....