Example #1
0
JNIEXPORT jlong JNICALL Java_Sound_initCpp
  (JNIEnv *env, jobject obj, jstring filename) {
    const char *filename_char = env->GetStringUTFChars(filename, 0);
    void *return_obj = create_sound(filename_char);
    env->ReleaseStringUTFChars(filename, 0);
    return (jlong) return_obj;
}
Example #2
0
/* **level\_data** is created and populated with
 * level specific entities. Some entities require further
 * initialization, such as the timeline.
 * A timeline allows creating a sequence of events
 * on a, well.. time line. Each event has a start time,
 * duration and callback function the will get called
 * each time the timeline is updated and if the event
 * is active.
 * We use a timeline to animate the title, creating 3
 * events: (1) slide the title into the screen (2)
 * make the title "bling" and (3) slide the title out
 * of the screen.
 * Using the SECOND and SECONDS constant is for
 * the sake of readability only.
 */
static struct level_data* create_level_data(void)
{
    struct level_data* ldata = calloc(1, sizeof(*ldata));
    if (ldata == NULL) goto error;

    ldata->wizard = create_wizard();
    if (ldata->wizard == NULL) goto cleanup_level_data;

    if (prepare_title(&ldata->title) != 0) goto cleanup_level_data;
    if (prepare_tree(&ldata->tree) != 0) goto cleanup_level_data;

    ldata->grass_tile = create_image("res/grass_tile.png");
    if (ldata->grass_tile == NULL) goto cleanup_level_data;

    ldata->earth_tile = create_image("res/earth_tile.png");
    if (ldata->earth_tile == NULL) goto cleanup_level_data;

    play_animation(ldata->tree.sprite, ldata->tree.windblow);

    ldata->timeline = create_timeline();
    if (ldata->timeline == NULL) goto cleanup_level_data;
    append_event(ldata->timeline, 0, 1 * SECOND, before_title_in);
    append_event(ldata->timeline, 0, 1 * SECOND, slide_title_in);
    append_event(ldata->timeline, 0, 4 * SECONDS, bling_title);
    append_event(ldata->timeline, 0, 1 * SECOND, slide_title_out);

    ldata->font = create_font("res/font.png", 32, 4);
    if (ldata->font == NULL) goto cleanup_level_data;

    ldata->music = create_sound("res/wizard.ogg");
    play_sound(ldata->music, -1);
    return ldata;

cleanup_level_data:
    destroy_level_data(ldata);

error:
    ERROR("Unable to create level data");
    return NULL;
}
Example #3
0
////////////////////////////////////////////////////////////////////////
///
/// @fn void SoundFMOD::init()
///
/// Initialisation de la librairie.
///
/// @return : Aucune.
///
////////////////////////////////////////////////////////////////////////
void SoundFMOD::init()
{
    // Create a System object and initialize.
    result = FMOD::System_Create(&systemFmod);
    ERRCHECK(result,);

	unsigned int version;
    result = systemFmod->getVersion(&version);
    ERRCHECK(result,);

	result = systemFmod->createSoundGroup("songs",&songs_group);
	ERRCHECK(result,);
	result = systemFmod->createSoundGroup("effects",&effects_group);
	ERRCHECK(result,);
	result = systemFmod->createSoundGroup("voices",&voices_group);
	ERRCHECK(result,);

    if (version < FMOD_VERSION)
    {
        printf("Error!  You are using an old version of FMOD %08x.  This program requires %08x\n", version, FMOD_VERSION);
        return;
    }
    result = systemFmod->init(32, FMOD_INIT_NORMAL, 0);
    ERRCHECK(result,);

	// Sons par défaut de l'application 
    /*STARTUP_SONG,*/create_sound("hockey.mp3", FMOD_SOFTWARE, 0, songs_group);
    /*EDITION_MODE_SONG,*/create_sound("EditionMode.mp3", FMOD_LOOP_NORMAL, 0, songs_group);
    /*MENU_MODE_SONG,*/create_sound("Diamond_Mine.xm", FMOD_LOOP_NORMAL, 0, songs_group);
    /*LINDSEY_CAGE_SONG,*/create_sound("SongoftheCagedBird.mp3", FMOD_LOOP_NORMAL, 0, songs_group);
	
	// Volume des musiques
	songs_group->setVolume((float)0.25);

	// Effets sonores
    /*GOAL_EFFECT,*/                  create_sound("goal.wav",               FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MURET_EFFECT, */      create_sound("collision_muret.wav",    FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MAILLET_EFFECT1,*/    create_sound("collision_maillet1.wav", FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MAILLET_EFFECT2,*/    create_sound("collision_maillet2.wav", FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MAILLET_EFFECT3,*/    create_sound("collision_maillet3.wav", FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MAILLET_EFFECT4,*/    create_sound("collision_maillet4.wav", FMOD_SOFTWARE, 0, effects_group);
    /*COLLISION_MAILLET_EFFECT5,*/    create_sound("collision_maillet5.wav", FMOD_SOFTWARE, 0, effects_group);
    /*CLICK_EFFECT, */                create_sound("click.wav",              FMOD_SOFTWARE, 0, effects_group);
    /*BEEP_EFFECT,*/                  create_sound("beep-3.wav",             FMOD_SOFTWARE, 0, effects_group);
    /*PORTAL_EFFECT,*/                create_sound("portalenter.wav",        FMOD_SOFTWARE, 0, effects_group);
    /*PAUSE_EFFECT,*/                 create_sound("pause.wav",              FMOD_SOFTWARE, 0, effects_group);
    /*ACCELERATOR_EFFECT,*/           create_sound("accelerator.mp3",        FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_FAN_IN_EFFECT,*/          create_sound("fan.mp3",                FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_BLOCK_GOAL_IN_EFFECT,*/   create_sound("goalClose.mp3",          FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_BLOCK_GOAL_OUT_EFFECT,*/  create_sound("goalOpen.mp3",           FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_CHANGE_SIDE_IN_EFFECT,*/  create_sound("changeSide.mp3",         FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_CHANGE_SIDE_OUT_EFFECT,*/ create_sound("returnToSide.mp3",       FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_PASS_WALL_IN_EFFECT,*/    create_sound("wallBreak.mp3",          FMOD_SOFTWARE, 0, effects_group);
    /*BONUS_PASS_WALL_OUT_EFFECT,*/   create_sound("wallHit.mp3",            FMOD_SOFTWARE, 0, effects_group);
    
	effects_group->setMaxAudible(100);
	effects_group->setMaxAudibleBehavior(FMOD_SOUNDGROUP_BEHAVIOR_MUTE);
	
	// L'initialisation est complète
	initialised_ = true;
}