[Summary] Replacing gtk comboboxes with waves dropdowns

This commit is contained in:
VKamyshniy 2014-09-10 10:16:41 +03:00
parent d23e8afefb
commit a551f9e8a3
7 changed files with 198 additions and 203 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

View file

@ -46,7 +46,7 @@ TracksControlPanel::TracksControlPanel ()
, _control_panel_button (get_waves_button ("control_panel_button"))
, _no_button (get_waves_button ("no_button"))
, _yes_button (get_waves_button ("yes_button"))
, _engine_combo (get_combo_box_text ("engine_combo"))
, _engine_dropdown (get_waves_dropdown ("engine_dropdown"))
, _device_dropdown (get_waves_dropdown ("device_dropdown"))
, _sample_rate_dropdown (get_waves_dropdown ("sample_rate_dropdown"))
, _buffer_size_dropdown (get_waves_dropdown ("buffer_size_dropdown"))
@ -57,12 +57,12 @@ TracksControlPanel::TracksControlPanel ()
, _name_tracks_after_driver(get_waves_button ("name_tracks_after_driver_button"))
, _reset_tracks_name_to_default(get_waves_button ("reset_tracks_name_to_default_button"))
, _file_type_dropdown (get_waves_dropdown ("file_type_dropdown"))
, _bit_depth_combo (get_combo_box_text ("bit_depth_combo"))
, _frame_rate_combo (get_combo_box_text ("frame_rate_combo"))
, _bit_depth_dropdown (get_waves_dropdown ("bit_depth_dropdown"))
, _frame_rate_dropdown (get_waves_dropdown ("frame_rate_dropdown"))
, _browse_button(get_waves_button("browse_default_folder"))
, _auto_lock_timer_combo(get_combo_box_text("auto_lock_timer_combo"))
, _auto_save_timer_combo(get_combo_box_text("auto_save_timer_combo"))
, _pre_record_buffer_combo(get_combo_box_text("pre_record_buffer_combo"))
, _auto_lock_timer_dropdown(get_waves_dropdown("auto_lock_timer_dropdown"))
, _auto_save_timer_dropdown(get_waves_dropdown("auto_save_timer_dropdown"))
, _pre_record_buffer_dropdown(get_waves_dropdown("pre_record_buffer_dropdown"))
, _have_control (false)
, _ignore_changes (0)
{

View file

@ -68,16 +68,16 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList
WavesButton& _browse_button;
WavesButton& _name_tracks_after_driver;
WavesButton& _reset_tracks_name_to_default;
Gtk::ComboBoxText& _engine_combo;
WavesDropdown& _engine_dropdown;
WavesDropdown& _device_dropdown;
WavesDropdown& _sample_rate_dropdown;
WavesDropdown& _buffer_size_dropdown;
WavesDropdown& _file_type_dropdown;
Gtk::ComboBoxText& _bit_depth_combo;
Gtk::ComboBoxText& _frame_rate_combo;
Gtk::ComboBoxText& _auto_lock_timer_combo;
Gtk::ComboBoxText& _auto_save_timer_combo;
Gtk::ComboBoxText& _pre_record_buffer_combo;
WavesDropdown& _bit_depth_dropdown;
WavesDropdown& _frame_rate_dropdown;
WavesDropdown& _auto_lock_timer_dropdown;
WavesDropdown& _auto_save_timer_dropdown;
WavesDropdown& _pre_record_buffer_dropdown;
Gtk::Label& _latency_label;
Gtk::Label& _default_open_path;

View file

@ -48,7 +48,7 @@ using namespace Gtk;
using namespace Gtkmm2ext;
using namespace PBD;
using namespace Glib;
using namespace std;
using namespace Timecode;
#define dbg_msg(a) MessageDialog (a, PROGRAM_NAME).run();
@ -121,15 +121,15 @@ TracksControlPanel::init ()
/* Global configuration parameters update */
Config->ParameterChanged.connect (update_connections, MISSING_INVALIDATOR, boost::bind (&TracksControlPanel::on_parameter_changed, this, _1), gui_context());
_engine_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::engine_changed));
_device_dropdown.signal_menu_item_clicked.connect (mem_fun(*this, &TracksControlPanel::on_device_dropdown_item_clicked));
_sample_rate_dropdown.signal_menu_item_clicked.connect (mem_fun(*this, &TracksControlPanel::on_sample_rate_dropdown_item_clicked));
_buffer_size_dropdown.signal_menu_item_clicked.connect (mem_fun(*this, &TracksControlPanel::on_buffer_size_dropdown_item_clicked));
_engine_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_engine_dropdown_item_clicked));
_device_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_device_dropdown_item_clicked));
_sample_rate_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_sample_rate_dropdown_item_clicked));
_buffer_size_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_buffer_size_dropdown_item_clicked));
/* Session configuration parameters update */
_file_type_dropdown.signal_menu_item_clicked.connect (mem_fun(*this, &TracksControlPanel::on_file_type_dropdown_item_clicked));
_bit_depth_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::bit_depth_changed));
_frame_rate_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::frame_rate_changed));
_file_type_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_file_type_dropdown_item_clicked));
_bit_depth_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun(*this, &TracksControlPanel::on_bit_depth_dropdown_item_clicked));
_frame_rate_dropdown.signal_menu_item_clicked.connect (sigc::mem_fun (*this, &TracksControlPanel::on_frame_rate__item_clicked));
_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));
@ -141,7 +141,9 @@ TracksControlPanel::init ()
_yes_button.set_visible(false);
_no_button.set_visible(false);
populate_engine_combo ();
populate_engine_dropdown ();
populate_device_dropdown ();
populate_output_mode ();
populate_file_type_dropdown ();
@ -151,11 +153,11 @@ TracksControlPanel::init ()
populate_default_session_path ();
// Init session Settings
populate_bit_depth_combo();
populate_frame_rate_combo();
populate_auto_lock_timer_combo();
populate_save_lock_timer_combo();
populate_pre_record_buffer_combo();
populate_bit_depth_dropdown();
populate_frame_rate_dropdown();
populate_auto_lock_timer_dropdown();
populate_auto_save_timer_dropdown();
populate_pre_record_buffer_dropdown();
_audio_settings_tab_button.set_active(true);
}
@ -228,8 +230,6 @@ namespace {
std::string
HeaderFormat_to_string(HeaderFormat header_format)
{
using namespace std;
switch (header_format) {
case CAF:
return string_CAF;
@ -240,10 +240,10 @@ namespace {
case WAVE64:
return string_Wav64;
default:
return string("");
return std::string("");
}
return string("");
return std::string("");
}
HeaderFormat
@ -277,35 +277,33 @@ namespace {
std::string
read_property_from_last_session(SessionProperty session_property)
{
using namespace std;
ARDOUR::RecentSessions rs;
ARDOUR::read_recent_sessions (rs);
if( rs.size() > 0 )
{
string full_session_name = Glib::build_filename( rs[0].second, rs[0].first );
std::string full_session_name = Glib::build_filename( rs[0].second, rs[0].first );
full_session_name += statefile_suffix;
// read property from session projectfile
boost::shared_ptr<XMLTree> state_tree(new XMLTree());
if (!state_tree->read (full_session_name))
return string("");
return std::string("");
XMLNode& root (*state_tree->root());
if (root.name() != X_("Session"))
return string("");
return std::string("");
XMLNode* config_main_node = root.child ("Config");
if( !config_main_node )
return string("");
return std::string("");
XMLNodeList config_nodes_list = config_main_node->children();
XMLNodeConstIterator config_node_iter = config_nodes_list.begin();
string required_property_name;
std::string required_property_name;
switch (session_property) {
case Native_File_Header_Format:
@ -318,7 +316,7 @@ namespace {
required_property_name = "timecode-format";
break;
default:
return string("");
return std::string("");
}
for (; config_node_iter != config_nodes_list.end(); ++config_node_iter)
@ -333,7 +331,7 @@ namespace {
}
}
return string("");
return std::string("");
}
}
@ -346,8 +344,6 @@ namespace {
std::string
SampleFormat_to_string(SampleFormat sample_format)
{
using namespace std;
switch (sample_format) {
case FormatFloat:
return string_bit32;
@ -357,7 +353,7 @@ namespace {
return string_bit16;
}
return string("");
return std::string("");
}
SampleFormat
@ -378,17 +374,10 @@ namespace {
}
void
TracksControlPanel::populate_bit_depth_combo()
TracksControlPanel::populate_bit_depth_dropdown()
{
using namespace std;
vector<string> bit_depth_strings;
bit_depth_strings.push_back(SampleFormat_to_string(FormatInt16));
bit_depth_strings.push_back(SampleFormat_to_string(FormatInt24));
bit_depth_strings.push_back(SampleFormat_to_string(FormatFloat));
// Get BIT_DEPTH from last used session
string sample_format_string = read_property_from_last_session(Native_File_Data_Format);
std::string sample_format_string = read_property_from_last_session(Native_File_Data_Format);
ARDOUR_UI* ardour_ui = ARDOUR_UI::instance();
SampleFormat sample_format = string_to_SampleFormat(sample_format_string);
@ -397,9 +386,7 @@ TracksControlPanel::populate_bit_depth_combo()
{
// set _ignore_changes flag to ignore changes in combo-box callbacks
PBD::Unwinder<uint32_t> protect_ignore_changes (_ignore_changes, _ignore_changes + 1);
set_popdown_strings (_bit_depth_combo, bit_depth_strings);
_bit_depth_combo.set_sensitive (bit_depth_strings.size() > 1);
_bit_depth_combo.set_active_text ( SampleFormat_to_string(sample_format) );
_bit_depth_dropdown.set_text ( SampleFormat_to_string(sample_format) );
}
return;
@ -415,8 +402,6 @@ namespace {
std::string
TimecodeFormat_to_string(Timecode::TimecodeFormat timecode_format)
{
using namespace std;
using namespace Timecode;
switch (timecode_format) {
case timecode_24:
@ -431,17 +416,15 @@ namespace {
return string_2997fps;
default:
return string("");
return std::string("");
}
return string("");
return std::string("");
}
Timecode::TimecodeFormat
string_to_TimecodeFormat(std::string s)
{
using namespace Timecode;
if(s == string_24fps)
return timecode_24;
if(s == string_25fps)
@ -506,19 +489,10 @@ namespace {
}
void
TracksControlPanel::populate_frame_rate_combo()
TracksControlPanel::populate_frame_rate_dropdown()
{
using namespace std;
vector<string> frame_rate_strings;
frame_rate_strings.push_back(string_24fps);
frame_rate_strings.push_back(string_25fps);
frame_rate_strings.push_back(string_30fps);
frame_rate_strings.push_back(string_23976fps);
frame_rate_strings.push_back(string_2997fps);
// Get FRAME_RATE from last used session
string last_used_frame_rate = read_property_from_last_session(Timecode_Format);
std::string last_used_frame_rate = read_property_from_last_session(Timecode_Format);
ARDOUR_UI* ardour_ui = ARDOUR_UI::instance();
Timecode::TimecodeFormat timecode_format = string_to_TimecodeFormat(last_used_frame_rate);
@ -527,78 +501,43 @@ TracksControlPanel::populate_frame_rate_combo()
{
// set _ignore_changes flag to ignore changes in combo-box callbacks
PBD::Unwinder<uint32_t> protect_ignore_changes (_ignore_changes, _ignore_changes + 1);
set_popdown_strings (_frame_rate_combo, frame_rate_strings);
_frame_rate_combo.set_sensitive (frame_rate_strings.size() > 1);
_frame_rate_combo.set_active_text ( TimecodeFormat_to_string(timecode_format) );
_frame_rate_dropdown.set_text ( TimecodeFormat_to_string(timecode_format) );
}
return;
}
void
TracksControlPanel::populate_auto_lock_timer_combo()
TracksControlPanel::populate_auto_lock_timer_dropdown()
{
using namespace std;
vector<string> lock_time_strings;
lock_time_strings.push_back("0 Min");
lock_time_strings.push_back("1 Min");
lock_time_strings.push_back("3 Min");
lock_time_strings.push_back("5 Min");
lock_time_strings.push_back("10 Min");
lock_time_strings.push_back("15 Min");
int time = ARDOUR_UI::config()->get_auto_lock_timer();
stringstream ss;
std::stringstream ss;
ss << time;
string str_time = ss.str() + " Min";
std::string str_time = ss.str() + " Min";
set_popdown_strings (_auto_lock_timer_combo, lock_time_strings);
_auto_lock_timer_combo.set_sensitive (lock_time_strings.size() > 1);
_auto_lock_timer_combo.set_active_text( str_time );
_auto_lock_timer_dropdown.set_text( str_time );
}
void
TracksControlPanel::populate_save_lock_timer_combo()
TracksControlPanel::populate_auto_save_timer_dropdown()
{
using namespace std;
vector<string> save_time_strings;
save_time_strings.push_back("0 Min");
save_time_strings.push_back("1 Min");
save_time_strings.push_back("3 Min");
save_time_strings.push_back("5 Min");
save_time_strings.push_back("10 Min");
save_time_strings.push_back("15 Min");
int time = ARDOUR_UI::config()->get_auto_save_timer();
stringstream ss;
std::stringstream ss;
ss << time;
string str_time = ss.str() + " Min";
std::string str_time = ss.str() + " Min";
set_popdown_strings (_auto_save_timer_combo, save_time_strings);
_auto_save_timer_combo.set_sensitive (save_time_strings.size() > 1);
_auto_save_timer_combo.set_active_text( str_time );
_auto_save_timer_dropdown.set_text( str_time );
}
void
TracksControlPanel::populate_pre_record_buffer_combo()
TracksControlPanel::populate_pre_record_buffer_dropdown()
{
using namespace std;
vector<string> pre_record_buffer_strings;
pre_record_buffer_strings.push_back("0 Min");
pre_record_buffer_strings.push_back("1 Min");
pre_record_buffer_strings.push_back("2 Min");
int time = ARDOUR_UI::config()->get_pre_record_buffer();
stringstream ss;
std::stringstream ss;
ss << time;
string str_time = ss.str() + " Min";
std::string str_time = ss.str() + " Min";
set_popdown_strings (_pre_record_buffer_combo, pre_record_buffer_strings);
_pre_record_buffer_combo.set_sensitive (pre_record_buffer_strings.size() > 1);
_pre_record_buffer_combo.set_active_text( str_time );
_pre_record_buffer_dropdown.set_text( str_time );
}
void
@ -611,9 +550,9 @@ TracksControlPanel::refresh_session_settings_info()
Session* session = ardour_ui->the_session();
if( !session )
return;
_bit_depth_combo.set_active_text( SampleFormat_to_string(session->config.get_native_file_data_format()) );
_bit_depth_dropdown.set_text( SampleFormat_to_string(session->config.get_native_file_data_format()) );
_file_type_dropdown.set_text( HeaderFormat_to_string(session->config.get_native_file_header_format()) );
_frame_rate_combo.set_active_text( TimecodeFormat_to_string(session->config.get_timecode_format()) );
_frame_rate_dropdown.set_text( TimecodeFormat_to_string(session->config.get_timecode_format()) );
}
void
@ -629,13 +568,12 @@ TracksControlPanel::populate_default_session_path()
}
void
TracksControlPanel::populate_engine_combo()
TracksControlPanel::populate_engine_dropdown()
{
if (_ignore_changes) {
return;
}
std::vector<std::string> strings;
std::vector<const AudioBackendInfo*> backends;
EngineStateController::instance()->available_backends(backends);
@ -645,19 +583,18 @@ TracksControlPanel::populate_engine_combo()
throw failed_constructor ();
}
for (std::vector<const AudioBackendInfo*>::const_iterator b = backends.begin(); b != backends.end(); ++b) {
strings.push_back ((*b)->name);
_engine_dropdown.add_menu_item ((*b)->name, 0);
}
{
// set _ignore_changes flag to ignore changes in combo-box callbacks
PBD::Unwinder<uint32_t> protect_ignore_changes (_ignore_changes, _ignore_changes + 1);
set_popdown_strings (_engine_combo, strings);
_engine_combo.set_sensitive (strings.size() > 1);
_engine_dropdown.set_sensitive (backends.size() > 1);
}
if (!strings.empty() )
if (!backends.empty() )
{
_engine_combo.set_active_text (EngineStateController::instance()->get_current_backend_name() );
_engine_dropdown.set_text (EngineStateController::instance()->get_current_backend_name() );
}
}
@ -688,7 +625,7 @@ void
TracksControlPanel::populate_file_type_dropdown()
{
// Get FILE_TYPE from last used session
string header_format_string = read_property_from_last_session(Native_File_Header_Format);
std::string header_format_string = read_property_from_last_session(Native_File_Header_Format);
ARDOUR_UI* ardour_ui = ARDOUR_UI::instance();
HeaderFormat header_format = string_to_HeaderFormat(header_format_string);
@ -835,7 +772,7 @@ TracksControlPanel::populate_midi_ports()
EngineStateController::instance()->get_physical_midi_input_states(midi_input_states);
EngineStateController::instance()->get_physical_midi_output_states(midi_output_states);
// now group corresponding inputs and outputs into a vector of midi device descriptors
// now group corresponding inputs and outputs into a std::vector of midi device descriptors
MidiDeviceDescriptorVec midi_device_descriptors;
std::vector<EngineStateController::PortState>::const_iterator state_iter;
// process inputs
@ -946,13 +883,13 @@ TracksControlPanel::cleanup_midi_device_list()
}
}
void TracksControlPanel::engine_changed ()
void TracksControlPanel::on_engine_dropdown_item_clicked (WavesDropdown*, void*)
{
if (_ignore_changes) {
return;
}
std::string backend_name = _engine_combo.get_active_text();
std::string backend_name = _engine_dropdown.get_text();
if ( EngineStateController::instance()->set_new_backend_as_current (backend_name) )
{
@ -1103,13 +1040,13 @@ TracksControlPanel::on_file_type_dropdown_item_clicked (WavesDropdown*, void*)
}
void
TracksControlPanel::bit_depth_changed()
TracksControlPanel::on_bit_depth_dropdown_item_clicked (WavesDropdown*, void*)
{
if (_ignore_changes) {
return;
}
std::string s = _bit_depth_combo.get_active_text();
std::string s = _bit_depth_dropdown.get_text();
ARDOUR::SampleFormat sample_format = string_to_SampleFormat(s);
ARDOUR_UI* ardour_ui = ARDOUR_UI::instance();
@ -1117,13 +1054,13 @@ TracksControlPanel::bit_depth_changed()
}
void
TracksControlPanel::frame_rate_changed()
TracksControlPanel::on_frame_rate__item_clicked (WavesDropdown*, void*)
{
if (_ignore_changes) {
return;
}
std::string s = _frame_rate_combo.get_active_text();
std::string s = _frame_rate_dropdown.get_text();
Timecode::TimecodeFormat timecode_format = string_to_TimecodeFormat(s);
ARDOUR_UI* ardour_ui = ARDOUR_UI::instance();
@ -1270,8 +1207,6 @@ TracksControlPanel::on_stereo_out (WavesButton*)
void
TracksControlPanel::on_browse_button (WavesButton*)
{
using namespace std;
set_keep_above (false);
_default_path_name = ARDOUR::choose_folder_dialog(Config->get_default_session_parent_dir(), _("Choose Default Path"));
set_keep_above (true);
@ -1296,7 +1231,7 @@ TracksControlPanel::save_default_session_path()
void
TracksControlPanel::save_auto_lock_time()
{
string s = _auto_lock_timer_combo.get_active_text();
std::string s = _auto_lock_timer_dropdown.get_text();
char * pEnd;
int time = strtol( s.c_str(), &pEnd, 10 );
ARDOUR_UI::config()->set_auto_lock_timer(time);
@ -1305,7 +1240,7 @@ TracksControlPanel::save_auto_lock_time()
void
TracksControlPanel::save_auto_save_time()
{
string s = _auto_save_timer_combo.get_active_text();
std::string s = _auto_save_timer_dropdown.get_text();
char * pEnd;
int time = strtol( s.c_str(), &pEnd, 10 );
ARDOUR_UI::config()->set_auto_save_timer(time);
@ -1314,7 +1249,7 @@ TracksControlPanel::save_auto_save_time()
void
TracksControlPanel::save_pre_record_buffer()
{
string s = _pre_record_buffer_combo.get_active_text();
std::string s = _pre_record_buffer_dropdown.get_text();
char * pEnd;
int time = strtol( s.c_str(), &pEnd, 10 );
ARDOUR_UI::config()->set_pre_record_buffer(time);
@ -1331,8 +1266,8 @@ void TracksControlPanel::update_session_config ()
if( session )
{
session->config.set_native_file_header_format( string_to_HeaderFormat(_file_type_dropdown.get_text()));
session->config.set_native_file_data_format ( string_to_SampleFormat(_bit_depth_combo.get_active_text()));
session->config.set_timecode_format ( string_to_TimecodeFormat(_frame_rate_combo.get_active_text()));
session->config.set_native_file_data_format ( string_to_SampleFormat(_bit_depth_dropdown.get_text()));
session->config.set_timecode_format ( string_to_TimecodeFormat(_frame_rate_dropdown.get_text()));
}
}
}
@ -1370,29 +1305,29 @@ TracksControlPanel::on_cancel (WavesButton*)
response(Gtk::RESPONSE_CANCEL);
// restore previous value in combo-boxes
stringstream ss;
std::stringstream ss;
int temp;
string str;
std::string str;
temp = ARDOUR_UI::config()->get_auto_lock_timer();
ss.str(string(""));
ss.str(std::string(""));
ss.clear();
ss << temp;
str = ss.str() + " Min";
_auto_lock_timer_combo.set_active_text(str);
_auto_lock_timer_dropdown.set_text(str);
temp = ARDOUR_UI::config()->get_auto_save_timer();
ss.str(string(""));
ss.str(std::string(""));
ss.clear();
ss << temp;
str = ss.str() + " Min";
_auto_save_timer_combo.set_active_text(str);
_auto_save_timer_dropdown.set_text(str);
temp = ARDOUR_UI::config()->get_pre_record_buffer();
ss.str(string(""));
ss.str(std::string(""));
ss.clear();
ss << temp;
str = ss.str() + " Min";
_pre_record_buffer_combo.set_active_text(str);
_pre_record_buffer_dropdown.set_text(str);
_default_open_path.set_text(Config->get_default_session_parent_dir());
}
@ -1623,7 +1558,7 @@ TracksControlPanel::bufsize_as_string (uint32_t sz)
framecnt_t
TracksControlPanel::get_sample_rate () const
{
const string sample_rate = _sample_rate_dropdown.get_text ();
const std::string sample_rate = _sample_rate_dropdown.get_text ();
if ( "44.1 kHz" == sample_rate )
{
@ -1647,7 +1582,7 @@ TracksControlPanel::get_sample_rate () const
float r = atof (sample_rate);
/* the string may have been translated with an abbreviation for
/* the std::string may have been translated with an abbreviation for
* thousands, so use a crude heuristic to fix this.
*/
if (r < 1000.0) {

View file

@ -30,8 +30,8 @@
uint32_t _desired_sample_rate;
bool _have_control;
// this flag is set for emidiate return during combo-box change callbacks
// when we don need to process current combo-box change
// this flag is set for immediate return during combo-box change callbacks
// when we do not need to process current combo-box change
uint32_t _ignore_changes;
std::string _current_device;
@ -78,7 +78,7 @@
void on_control_panel_button(WavesButton*);
ARDOUR::TracksAutoNamingRule _tracks_naming_rule;
void engine_changed ();
void on_engine_dropdown_item_clicked (WavesDropdown*, void*);
void on_device_dropdown_item_clicked (WavesDropdown*, void*);
void device_changed ();
void buffer_size_changed ();
@ -87,10 +87,10 @@
void engine_running ();
void engine_stopped ();
void on_file_type_dropdown_item_clicked (WavesDropdown*, void*);
void bit_depth_changed ();
void frame_rate_changed ();
void on_bit_depth_dropdown_item_clicked (WavesDropdown*, void*);
void on_frame_rate__item_clicked (WavesDropdown*, void*);
void populate_engine_combo ();
void populate_engine_dropdown ();
void populate_device_dropdown ();
void populate_sample_rate_dropdown ();
void populate_buffer_size_dropdown ();
@ -102,11 +102,11 @@
// Session Settings
void populate_file_type_dropdown();
void populate_bit_depth_combo();
void populate_frame_rate_combo();
void populate_auto_lock_timer_combo();
void populate_save_lock_timer_combo();
void populate_pre_record_buffer_combo();
void populate_bit_depth_dropdown();
void populate_frame_rate_dropdown();
void populate_auto_lock_timer_dropdown();
void populate_auto_save_timer_dropdown();
void populate_pre_record_buffer_dropdown();
// Engine State update callback handlers
void on_port_registration_update();

View file

@ -119,10 +119,19 @@
<Layout id="audio_settings_layout" bgnormal="#000000" x="113" y="1" width="505" height="558" visible="true">
<Layout bgnormal="#565656" x="0" y="0" width="505" height="100">
<Label style="generic_control" text="AUDIO ENGINE" x="12" y="17"/>
<ComboBoxText style="generic_control" id="engine_combo" x="97" y="12" width="126" height="20"/>
<Dropdown style="generic_button"
id="engine_dropdown"
x="97"
y="12"
width="126"
height="20"
normalicon="preference_device_dropdown"
activeicon="preference_device_dropdown_active"
prelighticon="preference_device_dropdown_prelight"
inactiveicon="preference_device_dropdown_inactive"/>
<Label style="generic_control" text="INTERFACE" x="12" y="47"/>
<Dropdown style="generic_control"
<Dropdown style="generic_button"
id="device_dropdown"
x="97"
y="40"
@ -131,13 +140,9 @@
normalicon="preference_device_dropdown"
activeicon="preference_device_dropdown_active"
prelighticon="preference_device_dropdown_prelight"
bgnormal="#6C6C6C"
fgnormal="#ffffff"
fgactive="#ffffff"
fghover="#ffffff"
winfont="Arial 10"/>
inactiveicon="preference_device_dropdown_inactive"/>
<Label style="generic_control" text="SAMPLE RATE" x="231" y="17"/>
<Dropdown style="generic_control"
<Dropdown style="generic_button"
id="sample_rate_dropdown"
x="311"
y="12"
@ -146,13 +151,9 @@
normalicon="preference_rate_buffer_dropdown"
activeicon="preference_rate_buffer_dropdown_active"
prelighticon="preference_rate_buffer_dropdown_prelight"
bgnormal="#6C6C6C"
fgnormal="#ffffff"
fgactive="#ffffff"
fghover="#ffffff"
winfont="Arial 10"/>
inactiveicon="preference_rate_buffer_dropdown_inactive"/>
<Label style="generic_control" text="BUFFER SIZE" x="231" y="47"/>
<Dropdown style="generic_control"
<Dropdown style="generic_button"
id="buffer_size_dropdown"
x="311"
y="42"
@ -161,11 +162,7 @@
normalicon="preference_rate_buffer_dropdown"
activeicon="preference_rate_buffer_dropdown_active"
prelighticon="preference_rate_buffer_dropdown_prelight"
bgnormal="#6C6C6C"
fgnormal="#ffffff"
fgactive="#ffffff"
fghover="#ffffff"
winfont="Arial 10"/>
inactiveicon="preference_rate_buffer_dropdown_inactive"/>
<Button id="control_panel_button"
style="generic_button"
@ -317,7 +314,7 @@
-->
<Label style="generic_control" text="FILE TYPE" x="24" y="40"/>
<Dropdown style="generic_control"
<Dropdown style="generic_button"
id="file_type_dropdown"
x="215"
y="40"
@ -325,27 +322,90 @@
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight"
bgnormal="#6C6C6C"
fgnormal="#ffffff"
fgactive="#ffffff"
fghover="#ffffff"
winfont="Arial 10">
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="Caf"/>
<dropdownitem title="BWav"/>
<dropdownitem title="Aiff"/>
<dropdownitem title="Wave64"/>
</Dropdown>
<Label style="generic_control" text="BIT DEPTH" x="24" y="70"/>
<ComboBoxText style="generic_control" id="bit_depth_combo" x="215" y="70" width="150" height="20" />
<Dropdown style="generic_button"
id="bit_depth_dropdown"
x="215"
y="70"
width="150"
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="16 bit"/>
<dropdownitem title="24 bit"/>
<dropdownitem title="32 bit floating point"/>
</Dropdown>
<Label style="generic_control" text="SESSION FRAME RATE" x="24" y="100"/>
<ComboBoxText style="generic_control" id="frame_rate_combo" x="215" y="100" width="150" height="20" />
<Dropdown style="generic_button"
id="frame_rate_dropdown"
x="215"
y="100"
width="150"
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="24 fps"/>
<dropdownitem title="25 fps"/>
<dropdownitem title="30 fps"/>
<dropdownitem title="23.976 fps"/>
<dropdownitem title="29.97 fps"/>
</Dropdown>
<Label style="generic_control" text="AUTO LOCK TIMER" x="24" y="175"/>
<ComboBoxText style="generic_control" id="auto_lock_timer_combo" x="215" y="175" width="150" height="20" />
<Dropdown style="generic_button"
id="auto_lock_timer_dropdown"
x="215"
y="175"
width="150"
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="0 Min"/>
<dropdownitem title="1 Min"/>
<dropdownitem title="3 Min"/>
<dropdownitem title="5 Min"/>
<dropdownitem title="10 Min"/>
<dropdownitem title="15 Min"/>
</Dropdown>
<Label style="generic_control" text="AUTO SAVE TIMER" x="24" y="205"/>
<ComboBoxText style="generic_control" id="auto_save_timer_combo" x="215" y="205" width="150" height="20" />
<Dropdown style="generic_button"
id="auto_save_timer_dropdown"
x="215"
y="205"
width="150"
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="0 Min"/>
<dropdownitem title="1 Min"/>
<dropdownitem title="3 Min"/>
<dropdownitem title="5 Min"/>
<dropdownitem title="10 Min"/>
<dropdownitem title="15 Min"/>
</Dropdown>
<Label style="generic_control" text="PRE RECORD BUFFER" x="24" y="235"/>
<ComboBoxText style="generic_control" id="pre_record_buffer_combo" x="215" y="235" width="150" height="20" />
<Dropdown style="generic_button"
id="pre_record_buffer_dropdown"
x="215"
y="235"
width="150"
height="20"
normalicon="preference_session_settings_dropdown"
activeicon="preference_session_settings_dropdown_active"
prelighticon="preference_session_settings_dropdown_prelight">
<dropdownitem title="0 Min"/>
<dropdownitem title="1 Min"/>
<dropdownitem title="2 Min"/>
</Dropdown>
<Label style="generic_control" text="DEFAULT FOLDER FOR NEW SESSION" x = "24" y = "290" />
<Button