Ejemplo n.º 1
0
void music_play (const char *file,
                 const char *alias,
                 uint32_t rate)
{
    int audio_format = MIX_DEFAULT_FORMAT;
    int audio_channels = 2;
    int audio_buffers = 4096;

    if (!music_init_done) {
        if (Mix_OpenAudio(rate,
                          audio_format,
                          audio_channels,
                          audio_buffers) != 0) {

            MSG_BOX("Mix_OpenAudio fail: %s %s",
                    Mix_GetError(), SDL_GetError());
            SDL_ClearError();
        }

        music_init_done = true;
    }

    musicp music = music_load(file, alias);

    music_update_volume();

    static int sound_loaded;
    if (!sound_loaded) {
        sound_loaded = true;
        sound_load_all();
    }

    if (HEADLESS) {
        return;
    }

    if (Mix_FadeInMusicPos(music->music, -1, 2000, 0) == -1) {
//    if (Mix_PlayMusic(music->music, -1) == -1) {
        WARN("cannot play music %s: %s", music->tree.key, Mix_GetError());
    }
}
Ejemplo n.º 2
0
static void wid_intro_settings_save (void)
{
    wid_intro_settings_restart_needed = false;

    /*
     * window.
     */
    sscanf(wid_intro_button_value_string[WID_INTRO_SETTINGS_ROW_WINDOW][
            wid_intro_button_val[WID_INTRO_SETTINGS_ROW_WINDOW]],
            "%dx%d",
            &game.video_pix_width,
            &game.video_pix_height);

    game.music_volume = 
        wid_intro_button_val[WID_INTRO_SETTINGS_ROW_MUSIC];

    game.sound_volume =
        wid_intro_button_val[WID_INTRO_SETTINGS_ROW_SOUND];

#if 0
    game.display_sync =
        wid_intro_button_val[WID_INTRO_SETTINGS_ROW_DISPLAY_SYNC];
#endif
    game.display_sync = 1;

    game.full_screen =
        wid_intro_button_val[WID_INTRO_SETTINGS_ROW_FULL_SCREEN];

#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION == 2 /* { */

    if (game.display_sync) {
        SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1);
    } else {
        SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);
    }

#else /* } { */

    if (game.display_sync) {
        SDL_GL_SetSwapInterval(1);
    } else {
        SDL_GL_SetSwapInterval(0);
    }

#endif /* } */

    game.fps_counter =
        wid_intro_button_val[WID_INTRO_SETTINGS_ROW_FPS_COUNTER];

    music_update_volume();

    if (!memcmp(&old_game,
                &game, sizeof(old_game))) {
        LOG("No config change");
        return;
    }

    config_save();

    if ((old_game.video_pix_width != game.video_pix_width) ||
        (old_game.video_pix_height != game.video_pix_height)) {

        game.video_pix_width = old_game.video_pix_width;
        game.video_pix_height = old_game.video_pix_height;

        LOG("Restart needed");

        wid_intro_settings_restart_needed = true;
    }

    if (old_game.full_screen != game.full_screen) {
        wid_intro_settings_restart_needed = true;
    }
}