📄 equalizer.m
字号:
VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_object == NULL ) return; /* Write the new bands values *//* TODO: write a generic code instead of ten times the same thing */ sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band1 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band2 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band3 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band4 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band5 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band6 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band7 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band8 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band9 floatValue] ); sprintf( psz_values, "%s %.1f", psz_values, [o_slider_band10 floatValue] ); var_SetString( p_object, "equalizer-bands", psz_values ); vlc_object_release( p_object );}- (IBAction)changePreset:(id)sender{ intf_thread_t *p_intf = VLCIntf; int i; vlc_object_t *p_object= vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); char psz_values[102]; memset( psz_values, 0, 102 ); if( p_object == NULL ) p_object = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_object == NULL ) return; var_SetString( p_object , "equalizer-preset" , preset_list[[sender indexOfSelectedItem]] ); for( i = 0; i < 10; i++ ) sprintf( psz_values, "%s %.1f", psz_values, eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[i] ); var_SetString( p_object, "equalizer-bands", psz_values ); var_SetFloat( p_object, "equalizer-preamp", eqz_preset_10b[[sender indexOfSelectedItem]]->f_preamp); [o_slider_preamp setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_preamp]; /* [o_slider_band1 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[0]]; [o_slider_band2 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[1]]; [o_slider_band3 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[2]]; [o_slider_band4 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[3]]; [o_slider_band5 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[4]]; [o_slider_band6 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[5]]; [o_slider_band7 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[6]]; [o_slider_band8 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[7]]; [o_slider_band9 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[8]]; [o_slider_band10 setFloatValue: eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[9]]; */ [self setBandSlidersValues:(float *)eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp]; vlc_object_release( p_object );}- (IBAction)enable:(id)sender{ ChangeFiltersString( VLCIntf, "equalizer", [sender state] );}- (IBAction)preampSliderUpdated:(id)sender{ intf_thread_t *p_intf = VLCIntf; float f_preamp = [sender floatValue] ; vlc_object_t *p_object = vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); if( p_object == NULL ) p_object = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_object == NULL ) return; var_SetFloat( p_object, "equalizer-preamp", f_preamp ); vlc_object_release( p_object );}- (IBAction)toggleWindow:(id)sender{ if( [o_window isVisible] ) { [o_window orderOut:sender]; [o_btn_equalizer setState:NSOffState]; } else { [o_window makeKeyAndOrderFront:sender]; [o_btn_equalizer setState:NSOnState]; }}- (IBAction)twopass:(id)sender{ intf_thread_t *p_intf = VLCIntf; vlc_bool_t b_2p = [sender state] ? VLC_TRUE : VLC_FALSE; vlc_object_t *p_object= vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); aout_instance_t *p_aout = (aout_instance_t *)p_object; if( p_object == NULL ) p_object = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_object == NULL ) return; var_SetBool( p_object, "equalizer-2pass", b_2p ); if( ( [o_ckb_enable state] ) && ( p_aout != NULL ) ) { int i; for( i = 0; i < p_aout->i_nb_inputs; i++ ) { p_aout->pp_inputs[i]->b_restart = VLC_TRUE; } } vlc_object_release( p_object );}- (void)windowWillClose:(NSNotification *)aNotification{ [o_btn_equalizer setState: NSOffState];}- (void)awakeFromNib{ int i; vlc_object_t *p_object= vlc_object_find( VLCIntf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); if( p_object == NULL ) p_object = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); [o_window setExcludedFromWindowsMenu: TRUE]; [self initStrings]; if( p_object ) { char *psz_preset; var_Create( p_object, "equalizer-preset", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); psz_preset = var_GetString( p_object, "equalizer-preset" ); for( i = 0 ; i < 18 ; i++ ) { if( !strcmp( preset_list[i], psz_preset ) ) { [o_popup_presets selectItemAtIndex: i]; [o_slider_preamp setFloatValue: eqz_preset_10b[i]->f_preamp]; [self setBandSlidersValues: (float *)eqz_preset_10b[i]->f_amp]; /* [o_slider_band1 setFloatValue: eqz_preset_10b[i]->f_amp[0]]; [o_slider_band2 setFloatValue: eqz_preset_10b[i]->f_amp[1]]; [o_slider_band3 setFloatValue: eqz_preset_10b[i]->f_amp[2]]; [o_slider_band4 setFloatValue: eqz_preset_10b[i]->f_amp[3]]; [o_slider_band5 setFloatValue: eqz_preset_10b[i]->f_amp[4]]; [o_slider_band6 setFloatValue: eqz_preset_10b[i]->f_amp[5]]; [o_slider_band7 setFloatValue: eqz_preset_10b[i]->f_amp[6]]; [o_slider_band8 setFloatValue: eqz_preset_10b[i]->f_amp[7]]; [o_slider_band9 setFloatValue: eqz_preset_10b[i]->f_amp[8]]; [o_slider_band10 setFloatValue: eqz_preset_10b[i]->f_amp[9]]; */ if( strcmp( psz_preset, "flat" ) ) { char psz_bands[100]; memset( psz_bands, 0, 100 ); sprintf( psz_bands, "%.1f %.1f %.1f %.1f %.1f %.1f %.1f " "%.1f %.1f %.1f", eqz_preset_10b[i]->f_amp[0], eqz_preset_10b[i]->f_amp[1], eqz_preset_10b[i]->f_amp[2], eqz_preset_10b[i]->f_amp[3], eqz_preset_10b[i]->f_amp[4], eqz_preset_10b[i]->f_amp[5], eqz_preset_10b[i]->f_amp[6], eqz_preset_10b[i]->f_amp[7], eqz_preset_10b[i]->f_amp[8], eqz_preset_10b[i]->f_amp[9] ); var_Create( p_object, "equalizer-preamp", VLC_VAR_FLOAT | VLC_VAR_DOINHERIT ); var_Create( p_object, "equalizer-bands", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); var_SetFloat( p_object, "equalizer-preamp", eqz_preset_10b[i]->f_preamp ); var_SetString( p_object, "equalizer-bands", psz_bands ); } } } free( psz_preset ); vlc_object_release( p_object ); } [self equalizerUpdated];}- (id)getSliderByIndex:(int)index{ switch(index) { case 0 : return o_slider_band1; case 1 : return o_slider_band2; case 2 : return o_slider_band3; case 3 : return o_slider_band4; case 4 : return o_slider_band5; case 5 : return o_slider_band6; case 6 : return o_slider_band7; case 7 : return o_slider_band8; case 8 : return o_slider_band9; case 9 : return o_slider_band10; default : return nil; }}- (void)setBandSlidersValues:(float *)values{ int i = 0; for (i = 0 ; i<= 9 ; i++) { [self setValue:values[i] forSlider:i]; }}- (void)initBandSliders{ int i = 0; for (i = 0 ; i< 9 ; i++) { [self setValue:0.0 forSlider:i]; }}- (void)setValue:(float)value forSlider:(int)index{ id slider = [self getSliderByIndex:index]; if (slider != nil) { [slider setFloatValue:value]; }}@end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -