mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 12:16:30 +01:00
more strip silence dialog changes, to use audio clocks, show smallest silence/audible segments, etc.
git-svn-id: svn://localhost/ardour2/branches/3.0@6734 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
4cb9014de2
commit
ec047d8981
6 changed files with 40 additions and 23 deletions
|
|
@ -758,6 +758,18 @@ style "default_clock_display" = "medium text"
|
|||
bg[ACTIVE] = { 0, 0, 0 }
|
||||
}
|
||||
|
||||
|
||||
style "white_on_black_clock_display" = "medium text"
|
||||
{
|
||||
fg[NORMAL] = { 1.0, 1.0, 1.0 }
|
||||
fg[ACTIVE] = { 1.0, 0.0, 0.0 }
|
||||
fg[SELECTED] = { 1.0, 0, 0 }
|
||||
base[NORMAL] = { 0, 0, 0 }
|
||||
base[ACTIVE] = { 0, 0, 0 }
|
||||
bg[NORMAL] = { 0, 0, 0 }
|
||||
bg[ACTIVE] = { 0, 0, 0 }
|
||||
}
|
||||
|
||||
style "editor_time_ruler" = "small_text"
|
||||
{
|
||||
fg[NORMAL] = { 0.80, 0.80, 0.80 }
|
||||
|
|
@ -1440,6 +1452,7 @@ widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
|
|||
widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
|
||||
widget "*SelectionStartClock" style:highest "default_clock_display"
|
||||
widget "*SelectionEndClock" style:highest "default_clock_display"
|
||||
widget "*SilenceDurationClock" style:highest "white_on_black_clock_display"
|
||||
widget "*EditPointClock" style:highest "default_clock_display"
|
||||
widget "*PreRollClock" style:highest "default_clock_display"
|
||||
widget "*PostRollClock" style:highest "default_clock_display"
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
|
|||
|
||||
/* big clock */
|
||||
|
||||
big_clock (X_("bigclock"), false, "BigClockNonRecording", true, true, false, true),
|
||||
big_clock (X_("bigclock"), false, "BigClockNonRecording", true, true, false, false),
|
||||
|
||||
/* transport */
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ const uint32_t AudioClock::field_length[(int) AudioClock::AudioFrames+1] = {
|
|||
10 /* Audio Frame */
|
||||
};
|
||||
|
||||
AudioClock::AudioClock (std::string clock_name, bool transient, std::string widget_name,
|
||||
AudioClock::AudioClock (const string& clock_name, bool transient, const string& widget_name,
|
||||
bool allow_edit, bool follows_playhead, bool duration, bool with_info)
|
||||
: _name (clock_name),
|
||||
is_transient (transient),
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@ class AudioClock : public Gtk::HBox, public ARDOUR::SessionHandlePtr
|
|||
Off
|
||||
};
|
||||
|
||||
AudioClock (std::string, bool, std::string, bool, bool, bool duration = false, bool with_info = false);
|
||||
AudioClock (const std::string& clock_name, bool is_transient, const std::string& widget_name,
|
||||
bool editable, bool follows_playhead, bool duration = false, bool with_info = false);
|
||||
|
||||
Mode mode() const { return _mode; }
|
||||
|
||||
|
|
|
|||
|
|
@ -4651,7 +4651,7 @@ Editor::strip_region_silence ()
|
|||
}
|
||||
}
|
||||
|
||||
StripSilenceDialog d (ar);
|
||||
StripSilenceDialog d (_session, ar);
|
||||
int const r = d.run ();
|
||||
|
||||
if (r == Gtk::RESPONSE_OK) {
|
||||
|
|
|
|||
|
|
@ -26,28 +26,23 @@
|
|||
|
||||
namespace ARDOUR {
|
||||
class AudioRegion;
|
||||
class Session;
|
||||
}
|
||||
|
||||
/// Dialog box to set options for the `strip silence' filter
|
||||
class StripSilenceDialog : public ArdourDialog
|
||||
{
|
||||
public:
|
||||
StripSilenceDialog (std::list<boost::shared_ptr<ARDOUR::AudioRegion> > const &);
|
||||
StripSilenceDialog (ARDOUR::Session*, std::list<boost::shared_ptr<ARDOUR::AudioRegion> > const &);
|
||||
~StripSilenceDialog ();
|
||||
|
||||
double threshold () const {
|
||||
return _threshold.get_value ();
|
||||
}
|
||||
|
||||
nframes_t minimum_length () const {
|
||||
return _minimum_length.get_value_as_int ();
|
||||
}
|
||||
|
||||
nframes_t fade_length () const {
|
||||
return _fade_length.get_value_as_int ();
|
||||
}
|
||||
|
||||
static void stop_thread ();
|
||||
nframes_t minimum_length () const;
|
||||
nframes_t fade_length () const;
|
||||
static void stop_thread ();
|
||||
|
||||
private:
|
||||
void create_waves ();
|
||||
|
|
@ -57,16 +52,17 @@ private:
|
|||
void redraw_silence_rects ();
|
||||
|
||||
Gtk::SpinButton _threshold;
|
||||
Gtk::SpinButton _minimum_length;
|
||||
Gtk::SpinButton _fade_length;
|
||||
AudioClock _minimum_length;
|
||||
AudioClock _fade_length;
|
||||
Gtk::Label _segment_count_label;
|
||||
typedef std::list<std::pair<ARDOUR::frameoffset_t,ARDOUR::framecnt_t> > SilenceResult;
|
||||
|
||||
struct Wave {
|
||||
boost::shared_ptr<ARDOUR::AudioRegion> region;
|
||||
ArdourCanvas::WaveView* view;
|
||||
std::list<ArdourCanvas::SimpleRect*> silence_rects;
|
||||
double samples_per_unit;
|
||||
std::list<std::pair<ARDOUR::frameoffset_t,ARDOUR::framecnt_t> >silence;
|
||||
SilenceResult silence;
|
||||
|
||||
Wave() : view (0), samples_per_unit (1) { }
|
||||
};
|
||||
|
|
@ -77,12 +73,17 @@ private:
|
|||
int _wave_height;
|
||||
bool restart_queued;
|
||||
|
||||
static ARDOUR::InterThreadInfo itt;
|
||||
static bool thread_should_exit;
|
||||
static Glib::Cond *thread_run;
|
||||
static Glib::Cond *thread_waiting;
|
||||
static Glib::StaticMutex run_lock;
|
||||
static StripSilenceDialog* current;
|
||||
static ARDOUR::InterThreadInfo itt;
|
||||
static bool thread_should_exit;
|
||||
static Glib::Cond *thread_run;
|
||||
static Glib::Cond *thread_waiting;
|
||||
static Glib::StaticMutex run_lock;
|
||||
static StripSilenceDialog* current;
|
||||
|
||||
ARDOUR::framecnt_t max_audible;
|
||||
ARDOUR::framecnt_t min_audible;
|
||||
ARDOUR::framecnt_t max_silence;
|
||||
ARDOUR::framecnt_t min_silence;
|
||||
|
||||
PBD::ScopedConnection _peaks_ready_connection;
|
||||
|
||||
|
|
@ -93,4 +94,6 @@ private:
|
|||
void* detection_thread_work ();
|
||||
bool start_silence_detection ();
|
||||
void maybe_start_silence_detection ();
|
||||
|
||||
void update_stats (const SilenceResult&);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue