mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 21:56:30 +01:00
[Summary] Add buttons "Name tracks after driver" and "Reset tracks name to default" in Preference Panel
[Reviewed] GZharun [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 465180]
This commit is contained in:
parent
0d0271e431
commit
cd94ffdebe
6 changed files with 121 additions and 12 deletions
|
|
@ -79,8 +79,6 @@ TracksControlPanel::TracksControlPanel ()
|
|||
, _apply_button (named_children ().get_waves_button ("apply_button"))
|
||||
, _control_panel_button (named_children ().get_waves_button ("control_panel_button"))
|
||||
, _no_button (named_children ().get_waves_button ("no_button"))
|
||||
, _name_track_after_driver_button (named_children ().get_waves_button ("name_track_after_driver_button"))
|
||||
, _reset_track_names_button (named_children ().get_waves_button ("reset_track_names_button"))
|
||||
, _yes_button (named_children ().get_waves_button ("yes_button"))
|
||||
, _engine_combo (named_children ().get_combo_box_text ("engine_combo"))
|
||||
, _device_combo (named_children ().get_combo_box_text ("device_combo"))
|
||||
|
|
@ -90,6 +88,8 @@ TracksControlPanel::TracksControlPanel ()
|
|||
, _default_open_path (named_children ().get_label("default_open_path"))
|
||||
, _multi_out_button(named_children ().get_waves_button ("multi_out_button"))
|
||||
, _stereo_out_button(named_children ().get_waves_button ("stereo_out_button"))
|
||||
, _name_tracks_after_driver(named_children ().get_waves_button ("name_tracks_after_driver_button"))
|
||||
, _reset_tracks_name_to_default(named_children ().get_waves_button ("reset_tracks_name_to_default_button"))
|
||||
, _browse_button(named_children ().get_waves_button("browse_default_folder"))
|
||||
, _have_control (false)
|
||||
, _ignore_changes (0)
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList
|
|||
WavesButton& _apply_button;
|
||||
WavesButton& _control_panel_button;
|
||||
WavesButton& _no_button;
|
||||
WavesButton& _name_track_after_driver_button;
|
||||
WavesButton& _reset_track_names_button;
|
||||
WavesButton& _yes_button;
|
||||
WavesButton& _browse_button;
|
||||
WavesButton& _name_tracks_after_driver;
|
||||
WavesButton& _reset_tracks_name_to_default;
|
||||
Gtk::ComboBoxText& _engine_combo;
|
||||
Gtk::ComboBoxText& _device_combo;
|
||||
Gtk::ComboBoxText& _sample_rate_combo;
|
||||
|
|
|
|||
|
|
@ -99,6 +99,10 @@ TracksControlPanel::init ()
|
|||
_sample_rate_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::sample_rate_changed));
|
||||
_buffer_size_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::buffer_size_changed));
|
||||
|
||||
_name_tracks_after_driver.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_name_tracks_after_driver));
|
||||
_reset_tracks_name_to_default.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_reset_tracks_name_to_default));
|
||||
|
||||
|
||||
populate_engine_combo ();
|
||||
populate_output_mode();
|
||||
|
||||
|
|
@ -458,8 +462,7 @@ void TracksControlPanel::device_changed (bool show_confirm_dial/*=true*/)
|
|||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
|
||||
set_keep_above(false);
|
||||
msg.set_keep_above(true);
|
||||
|
||||
switch (msg.run()) {
|
||||
case RESPONSE_NO:
|
||||
|
|
@ -467,11 +470,10 @@ void TracksControlPanel::device_changed (bool show_confirm_dial/*=true*/)
|
|||
PBD::Unwinder<uint32_t> protect_ignore_changes (_ignore_changes, _ignore_changes + 1);
|
||||
|
||||
_device_combo.set_active_text (EngineStateController::instance()->get_current_device_name());
|
||||
set_keep_above(true);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
set_keep_above(true);
|
||||
}
|
||||
|
||||
if (EngineStateController::instance()->set_new_device_as_current(device_name) )
|
||||
|
|
@ -497,6 +499,78 @@ TracksControlPanel::on_all_inputs_on_button(WavesButton*)
|
|||
EngineStateController::instance()->set_state_to_all_inputs(true);
|
||||
}
|
||||
|
||||
void
|
||||
TracksControlPanel::on_name_tracks_after_driver(WavesButton*)
|
||||
{
|
||||
if( Config->get_tracks_auto_naming() == NameAfterDriver )
|
||||
{
|
||||
std::string message = _("Current mode is already active");
|
||||
MessageDialog msg (message,
|
||||
false,
|
||||
Gtk::MESSAGE_WARNING,
|
||||
Gtk::BUTTONS_OK,
|
||||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
|
||||
msg.set_keep_above(true);
|
||||
msg.run();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
std::string message = _("Do you realy want to switch tracks naming?");
|
||||
MessageDialog msg (message,
|
||||
false,
|
||||
Gtk::MESSAGE_WARNING,
|
||||
Gtk::BUTTONS_YES_NO,
|
||||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
msg.set_keep_above(true);
|
||||
|
||||
switch (msg.run()) {
|
||||
case RESPONSE_YES:
|
||||
Config->set_tracks_auto_naming(NameAfterDriver);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TracksControlPanel::on_reset_tracks_name_to_default(WavesButton*)
|
||||
{
|
||||
if( Config->get_tracks_auto_naming() == UseDefaultNames )
|
||||
{
|
||||
std::string message = _("Current mode is already active");
|
||||
MessageDialog msg (message,
|
||||
false,
|
||||
Gtk::MESSAGE_WARNING,
|
||||
Gtk::BUTTONS_OK,
|
||||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
|
||||
msg.set_keep_above(true);
|
||||
msg.run();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
std::string message = _("Do you realy want to switch tracks naming?");
|
||||
MessageDialog msg (message,
|
||||
false,
|
||||
Gtk::MESSAGE_WARNING,
|
||||
Gtk::BUTTONS_YES_NO,
|
||||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
msg.set_keep_above(true);
|
||||
|
||||
switch (msg.run()) {
|
||||
case RESPONSE_YES:
|
||||
Config->set_tracks_auto_naming(UseDefaultNames);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TracksControlPanel::on_all_inputs_off_button(WavesButton*)
|
||||
{
|
||||
|
|
@ -762,7 +836,7 @@ TracksControlPanel::on_device_list_update (bool current_device_disconnected)
|
|||
populate_device_combo();
|
||||
|
||||
if (current_device_disconnected) {
|
||||
std::string message = _("Audio Device Has Been Removed");
|
||||
std::string message = _("Audio device has been removed");
|
||||
|
||||
MessageDialog msg (message,
|
||||
false,
|
||||
|
|
@ -771,6 +845,7 @@ TracksControlPanel::on_device_list_update (bool current_device_disconnected)
|
|||
true);
|
||||
|
||||
msg.set_position (Gtk::WIN_POS_MOUSE);
|
||||
msg.set_keep_above(true);
|
||||
msg.run();
|
||||
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -89,6 +89,8 @@
|
|||
void on_all_inputs_off_button(WavesButton*);
|
||||
void on_all_outputs_on_button(WavesButton*);
|
||||
void on_all_outputs_off_button(WavesButton*);
|
||||
void on_name_tracks_after_driver(WavesButton*);
|
||||
void on_reset_tracks_name_to_default(WavesButton*);
|
||||
|
||||
void engine_changed ();
|
||||
void device_changed (bool show_confirm_dial);
|
||||
|
|
|
|||
|
|
@ -207,12 +207,12 @@
|
|||
</HBox>
|
||||
</ScrolledWindow>
|
||||
<Button
|
||||
id="name_track_after_driver_button"
|
||||
id="name_tracks_after_driver_button"
|
||||
text="NAME TRACK\nAFTER DRIVER"
|
||||
style="generic_button"
|
||||
x="16" y="369" width="136" height="39"/>
|
||||
<Button
|
||||
id="reset_track_names_button"
|
||||
id="reset_tracks_name_to_default_button"
|
||||
text="RESET TRACK\nNAMES TO DEFAULT"
|
||||
style="generic_button"
|
||||
x="153" y="369" width="136" height="39"/>
|
||||
|
|
|
|||
|
|
@ -138,6 +138,19 @@ PBD::Signal2<void,std::string,std::string> Session::VersionMismatch;
|
|||
static void clean_up_session_event (SessionEvent* ev) { delete ev; }
|
||||
const SessionEvent::RTeventCallback Session::rt_cleanup (clean_up_session_event);
|
||||
|
||||
namespace {
|
||||
// if pattern is not found out_str == in_str
|
||||
bool remove_pattern_from_string(const std::string& in_str, const std::string& pattern, std::string& out_str) {
|
||||
if (in_str.find(pattern) != std::string::npos ) {
|
||||
out_str = in_str.substr(pattern.size() );
|
||||
return true;
|
||||
} else {
|
||||
out_str = in_str;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @param snapshot_name Snapshot name, without .ardour suffix */
|
||||
Session::Session (AudioEngine &eng,
|
||||
const string& fullpath,
|
||||
|
|
@ -369,7 +382,26 @@ Session::Session (AudioEngine &eng,
|
|||
|
||||
how_many = inputs.size();
|
||||
|
||||
list<boost::shared_ptr<AudioTrack> > tracks = new_audio_track (1, 1, Normal, 0, how_many, string() );
|
||||
|
||||
list<boost::shared_ptr<AudioTrack> > tracks;
|
||||
|
||||
// Track names after driver
|
||||
if( Config->get_tracks_auto_naming() == NameAfterDriver )
|
||||
{
|
||||
string track_name = "";
|
||||
for( int i = 0; i < inputs.size(); ++i)
|
||||
{
|
||||
string track_name;
|
||||
remove_pattern_from_string(inputs[i], "system:", track_name);
|
||||
|
||||
list<boost::shared_ptr<AudioTrack> > single_track = new_audio_track (1, 1, Normal, 0, 1, track_name);
|
||||
tracks.insert(tracks.begin(), single_track.front());
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Default track names
|
||||
tracks = new_audio_track (1, 1, Normal, 0, how_many, string());
|
||||
}
|
||||
|
||||
if (tracks.size() != how_many) {
|
||||
destroy ();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue