#include <gtkmm/spinbutton.h>
#include <libgnomecanvas/libgnomecanvas.h>
-#include <sigc++/signal.h>
+
+#include "pbd/signals.h"
+#include "pbd/crossthread.h"
#include "audio_clock.h"
#include "ardour_dialog.h"
class AudioRegionEditor : public RegionEditor
{
public:
- AudioRegionEditor (ARDOUR::Session*, boost::shared_ptr<ARDOUR::AudioRegion>, AudioRegionView& rv);
+ AudioRegionEditor (ARDOUR::Session*, boost::shared_ptr<ARDOUR::AudioRegion>);
~AudioRegionEditor ();
- private:
- boost::shared_ptr<ARDOUR::AudioRegion> _region;
- AudioRegionView& _region_view;
-
- void connect_editor_events ();
+ void peak_amplitude_thread ();
- Gtk::Label name_label;
- Gtk::Entry name_entry;
- Gtk::HBox name_hbox;
-
- Gtk::HBox top_row_hbox;
- Gtk::HBox top_row_button_hbox;
+ private:
- Gtk::ToggleButton audition_button;
+ void region_changed (PBD::PropertyChange const &);
- Gtk::HBox lower_hbox;
+ void gain_changed ();
+ void gain_adjustment_changed ();
- Gtk::Table time_table;
+ boost::shared_ptr<ARDOUR::AudioRegion> _audio_region;
- Gtk::Label position_label;
- Gtk::Label end_label;
- Gtk::Label length_label;
- Gtk::Label sync_relative_label;
- Gtk::Label sync_absolute_label;
- Gtk::Label start_label;
Gtk::Label gain_label;
-
- AudioClock position_clock;
- AudioClock end_clock;
- AudioClock length_clock;
- AudioClock sync_offset_relative_clock; ///< sync offset relative to the start of the region
- AudioClock sync_offset_absolute_clock; ///< sync offset relative to the start of the timeline
- AudioClock start_clock;
Gtk::Adjustment gain_adjustment;
Gtk::SpinButton gain_entry;
- Gtk::HSeparator sep3;
- Gtk::VSeparator sep1;
- Gtk::VSeparator sep2;
-
- void region_changed (ARDOUR::Change);
- void bounds_changed (ARDOUR::Change);
- void name_changed ();
- void gain_changed ();
-
- void audition_state_changed (bool);
-
- void activation ();
-
- void name_entry_changed ();
- void position_clock_changed ();
- void end_clock_changed ();
- void length_clock_changed ();
- void sync_offset_absolute_clock_changed ();
- void sync_offset_relative_clock_changed ();
- void gain_adjustment_changed ();
-
- void audition_button_toggled ();
-
- gint bpressed (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)());
- gint breleased (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)());
-
- bool on_delete_event (GdkEventAny *);
+ Gtk::Label _peak_amplitude_label;
+ Gtk::Entry _peak_amplitude;
- bool spin_arrow_grab;
+ pthread_t _peak_amplitude_thread_handle;
+ void peak_amplitude_found (double);
+ PBD::Signal1<void, double> PeakAmplitudeFound;
+ PBD::ScopedConnection _peak_amplitude_connection;
+ CrossThreadChannel _peak_channel;
};
#endif /* __gtk_ardour_audio_region_edit_h__ */