/*
 * function javacall_amms_create_local_manager()
 * for details see declaration in javacall_multimedia_advanced.h
 */
javacall_result javacall_amms_create_local_manager(
                   /*OUT*/ javacall_amms_local_manager_t** mgr )
{
    IGlobalManager                *qs_mgr;
    javacall_amms_local_manager_t *ptr;

    if( NULL == mgr ) return JAVACALL_INVALID_ARGUMENT;

	ptr = malloc( sizeof(javacall_amms_local_manager_t) );
    //ptr = malloc( sizeof( *ptr ) );

    if( NULL == ptr ) return JAVACALL_OUT_OF_MEMORY;

	memset( ptr, 0, sizeof( javacall_amms_local_manager_t ) );
    //memset( ptr, 0, sizeof( *ptr ) );

    /*
     *       Global manager access
     *
     * TODO: I'm using IsolateIdToGM( getCurrentIsolateId() ), but
     *       AFAIK, MIDP API shouldn't be used in javacall...
     */

    ptr->gmIdx = isolateIDtoGM( getCurrentIsolateId() );

    qs_mgr = QSOUND_GET_GM( ptr->gmIdx ).gm;

    //printf( "   GM : create gmIdx = %i\n", ptr->gmIdx );

    reverb_init( &ptr->reverb, mQ234_GlobalManager_getReverbControl( qs_mgr ) );
    equalizer_init( &ptr->equalizer, mQ234_GlobalManager_getEqualizerControl( qs_mgr ) );
    ptr->volume.qs_obj_ptr = mQ234_GlobalManager_getVolumeControl( qs_mgr );
    initSpectatorImpl( &ptr->spectator, ptr );

    ptr->controls[0].type = javacall_music_eReverbControl;
    ptr->controls[0].ptr  = &ptr->reverb;

    ptr->controls[1].type = javacall_amms_eVolumeControl;
    ptr->controls[1].ptr  = &ptr->volume;

    ptr->controls[2].type = javacall_amms_eEqualizerControl;
    ptr->controls[2].ptr  = &ptr->equalizer;

    ptr->controllable.controls = ptr->controls;
    ptr->controllable.number_of_controls
        = sizeof( ptr->controls ) / sizeof( ptr->controls[0] );

    *mgr = ptr;

    return JAVACALL_OK;
}
Ejemplo n.º 2
0
HANDLE mad_init()
{
	dec_struct* dec = malloc(sizeof(dec_struct));
	if (!dec)
		return NULL;

	memset(dec, 0, sizeof(dec_struct));
	mad_stream_init(&dec->stream);
	mad_frame_init(&dec->frame);
	mad_synth_init(&dec->synth);

	equalizer_init(dec->eqfactor);
	dec->equalizer = 0;
	dec->left = 0;

	dec->stats.clipped_samples = 0;
	dec->stats.peak_clipping = 0;
	dec->stats.peak_sample = 0;

	return dec;
}