Audio-GtkGramofile
view release on metacpan or search on metacpan
GtkGramofile/GUI.pm view on Meta::CPAN
$self->{tooltips}->set_tip($self->{whole_frames_check}, "Specify frame size for processing wav file.");
$self->{tooltips}->set_tip($self->{start_process_button}, "Start signal processing the sound file/s");
$self->{tooltips}->set_tip($self->{stop_process_button}, "Stop signal processing the sound file/s");
$self->{tooltips}->set_tip($self->{record_button}, "Start recording to file");
$self->{tooltips}->set_tip($self->{play_button}, "Play a file");
$self->{tooltips}->set_tip($self->{save_button}, "Store useful settings in $ENV{HOME}/.gramofilerc");
$self->{tooltips}->set_tip($self->{quit_button}, "Quit GtkGramofile");
$self->{notebook}->set_current_page(0);
}
sub on_setting_finished {
my $widget = shift;
my $tmp = shift;
my $cb_data;
if (ref $tmp eq 'Gtk2::Gdk::Event::Focus') {
$cb_data = shift;
} else {
$cb_data = $tmp;
}
my $self = $cb_data->{self};
my $section = $cb_data->{section};
my $name = $cb_data->{name};
my $ref = ref $widget;
my $value;
if ($ref eq "Gtk2::Entry") {$value = $widget->get_text}
elsif ($ref eq "Gtk2::SpinButton") {$value = $widget->get_value_as_int}
elsif ($ref eq "Gtk2::CheckButton" || $ref eq "Gtk2::ToggleButton" || $ref eq "Gtk2::RadioButton") {
if ($widget->get_active) {$value = 1} else {$value = 0}}
$self->{gtkgramofile}->set_value($section, $name, $value);
$self->message("$name has been set to $value");
return 0;
}
sub on_setting_changed {
my $widget = shift;
my $cb_data = shift;
my $self = $cb_data->{self};
my $section = $cb_data->{section};
my $name = $cb_data->{name};
my $ref = ref $widget;
my $value;
if ($ref eq "Gtk2::Entry") {$value = $widget->get_text}
elsif ($ref eq "Gtk2::SpinButton") {$value = $widget->get_value_as_int}
elsif ($ref eq "Gtk2::CheckButton" || $ref eq "Gtk2::ToggleButton") {if ($widget->get_active) {$value = 1} else {$value = 0}}
$self->{gtkgramofile}->set_value($section, $name, $value);
$self->message("$name has been changed to $value");
return 1;
}
sub connect_signals {
my $self = shift;
my @callbacks = qw(quit record play save tracksplit_browse start_tracksplit stop_tracksplit process_infile process_outfile
simple_median_filter double_median_filter simple_mean_filter rms_filter cond_median_filter cond_median2_filter
cond_median3_filter simple_normalize_filter start_process stop_process);
foreach my $callback (@callbacks) {
$self->{$callback."_button"}->signal_connect('clicked', $self->{gtkgramofile}->{signals}->get_callback($callback), $self->{gtkgramofile}->{signals});
}
$self->{gramofile}->signal_connect('delete_event', $self->{gtkgramofile}->{signals}->get_callback("quit"));
foreach my $check (qw(tracksplit_rms_file_check tracksplit_generate_graph_check)) {
$self->connect_signal('toggled', $self->{finished}, 'tracksplit_params', $check);
}
foreach my $spin (qw(global_silence_factor_spin local_silence_factor_spin inter_track_silence_minlen_spin track_minlen_spin track_start_extra_blocks_spin track_end_extra_blocks_spin signal_power_data_blocklen_spin)) {
$self->connect_signal('changed', $self->{changed}, 'tracksplit_params', $spin);
}
$self->connect_signal('changed', $self->{finished}, 'tracksplit_general', 'tracksplit_filename_entry');
$self->connect_signal('focus_out_event', $self->{finished}, 'tracksplit_general', 'tracksplit_filename_entry');
$self->connect_signal('changed', $self->{finished}, 'tracksplit_general', 'tracksplit_filename_filter_entry');
$self->connect_signal('focus_out_event', $self->{finished}, 'tracksplit_general', 'tracksplit_filename_filter_entry');
foreach my $entry (qw(process_infile_entry process_infile_filter_entry process_outfile_entry process_outfile_filter_entry)) {
$self->connect_signal('changed', $self->{finished}, 'process_params', $entry);
}
$self->connect_signal('toggled', $self->{finished}, 'process_params', 'process_op_regexp_check');
foreach my $check (qw(copyonly_filter_check monoize_filter_check simple_median_filter_check double_median_filter_check simple_mean_filter_check rms_filter_check cond_median_filter_check cond_median2_filter_check cond_median3_filter_check simple_nor...
$self->connect_signal('toggled', $self->{finished}, 'process_filters', $check);
}
$self->{"begin_and_end_times_radio"}->signal_connect('toggled', $self->{gtkgramofile}->{signals}->get_callback("begin_and_end_times_radio"), $self->{gtkgramofile}->{signals});
$self->{"whole_frames_check"}->signal_connect('toggled', $self->{gtkgramofile}->{signals}->get_callback("whole_frames_check"), $self->{gtkgramofile}->{signals});
}
sub connect_signal {
my ($self, $signal, $function, $section, $event) = @_;
my $cb_data = {self => $self, section => $section};
(my $name = $event) =~ s/_(spin|entry|check|radio)$//;
$cb_data->{name} = $name;
$self->{$event}->signal_connect($signal, $function, $cb_data);
}
sub message {
my $self = shift;
my $data = shift;
if (defined $self) {
my $context_id=$self->{status_bar}->get_context_id('gramofile');
$self->{status_bar}->pop($context_id);
$self->{status_bar}->push($context_id, $data);
} else {
print "GtkGramofile message - $data\n"
}
}
sub load_settings_to_interface {
my $self = shift;
my $defaults = $self->{gtkgramofile}->get_defaults;
foreach my $section (keys %{$defaults}) {
foreach my $parameter (keys %{$defaults->{$section}}) {
my $value = $self->{gtkgramofile}->get_value($section, $parameter);
$self->{$parameter."_entry"}->set_text($value)
if defined ($self->{$parameter."_entry"}) and $parameter ne $self->{$parameter."_entry"}->get_text;
$self->{$parameter."_spin"}->set_value($value)
if defined ($self->{$parameter."_spin"}) and $parameter ne $self->{$parameter."_spin"}->get_value_as_int;
$self->{$parameter."_check"}->set_active($value) if defined ($self->{$parameter."_check"});
( run in 1.558 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )