📄 equalizer.m
字号:
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 ); if( (BOOL)config_GetInt( p_intf, "macosx-eq-keep" ) == YES ) { /* save changed to config */ config_PutPsz( p_intf, "equalizer-bands", psz_values ); /* save to vlcrc */ config_SaveConfigFile( p_intf, "equalizer" ); } 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 ); if( p_object == NULL ) p_object = (vlc_object_t *)pl_Yield( p_intf ); char psz_values[102]; memset( psz_values, 0, 102 ); 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]; [self setBandSlidersValues:(float *)eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp]; if( (BOOL)config_GetInt( p_intf, "macosx-eq-keep" ) == YES ) { /* save changed to config */ config_PutPsz( p_intf, "equalizer-bands", psz_values ); config_PutFloat( p_intf, "equalizer-preamp", eqz_preset_10b[[sender indexOfSelectedItem]]->f_preamp ); config_PutPsz( p_intf, "equalizer-preset", preset_list[[sender indexOfSelectedItem]] ); /* save to vlcrc */ config_SaveConfigFile( p_intf, "equalizer" ); } vlc_object_release( p_object );}- (IBAction)enable:(id)sender{ ChangeFiltersString( VLCIntf, (char *)"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_t *)pl_Yield( p_intf ); var_SetFloat( p_object, "equalizer-preamp", f_preamp ); if( (BOOL)config_GetInt( p_intf, "macosx-eq-keep" ) == YES ) { /* save changed to config */ config_PutFloat( p_intf, "equalizer-preamp", f_preamp ); /* save to vlcrc */ config_SaveConfigFile( p_intf, "equalizer" ); } 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; bool b_2p = [sender state] ? true : 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_t *)pl_Yield( p_intf ); 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 = true; } } if( (BOOL)config_GetInt( p_intf, "macosx-eq-keep" ) == YES ) { /* save changed to config */ config_PutInt( p_intf, "equalizer-2pass", (int)b_2p ); /* save to vlcrc */ config_SaveConfigFile( p_intf, "equalizer" ); } 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_t *)pl_Yield( VLCIntf ); [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_GetNonEmptyString( p_object, "equalizer-preset" ); for( i = 0 ; (psz_preset != NULL) && (i < 18) ; i++ ) { if( strcmp( preset_list[i], psz_preset ) ) continue; [o_popup_presets selectItemAtIndex: i]; [o_slider_preamp setFloatValue: eqz_preset_10b[i]->f_preamp]; [self setBandSlidersValues: (float *)eqz_preset_10b[i]->f_amp]; if( strcmp( psz_preset, "flat" ) ) { char psz_bands[100]; snprintf( psz_bands, sizeof( 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 + -