remove cruft from ArdourUI; improve keyboard icon(s); shrink other plugin GUI buttons; close all dialogs when quitting so that we actually quit
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4036 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
2fab8c2737
commit
040d7fec2c
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <sigc++/bind.h>
|
||||||
|
|
||||||
#include <gtkmm2ext/doi.h>
|
#include <gtkmm2ext/doi.h>
|
||||||
|
|
||||||
|
@ -25,12 +26,21 @@
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "ardour_ui.h"
|
#include "ardour_ui.h"
|
||||||
#include "splash.h"
|
#include "splash.h"
|
||||||
|
#include "public_editor.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
using namespace sigc;
|
||||||
|
using namespace Gtk;
|
||||||
|
|
||||||
|
sigc::signal<void> ArdourDialog::CloseAllDialogs;
|
||||||
|
|
||||||
ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
|
ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
|
||||||
: Dialog (title, modal, use_seperator)
|
: Dialog (title, modal, use_seperator)
|
||||||
{
|
{
|
||||||
session = 0;
|
session = 0;
|
||||||
|
|
||||||
|
CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL));
|
||||||
|
|
||||||
set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
|
set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +49,8 @@ ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool
|
||||||
{
|
{
|
||||||
session = 0;
|
session = 0;
|
||||||
|
|
||||||
|
CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL));
|
||||||
|
|
||||||
set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
|
set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
|
||||||
set_position (Gtk::WIN_POS_CENTER_ON_PARENT);
|
set_position (Gtk::WIN_POS_CENTER_ON_PARENT);
|
||||||
}
|
}
|
||||||
|
@ -80,3 +92,10 @@ ArdourDialog::on_show ()
|
||||||
|
|
||||||
Dialog::on_show ();
|
Dialog::on_show ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ArdourDialog::on_key_press_event (GdkEventKey* key)
|
||||||
|
{
|
||||||
|
return Gtk::Dialog::on_key_press_event (key);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,9 @@ class ArdourDialog : public Gtk::Dialog
|
||||||
ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false);
|
ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false);
|
||||||
~ArdourDialog();
|
~ArdourDialog();
|
||||||
|
|
||||||
|
static int close_all_current_dialogs (int response);
|
||||||
|
|
||||||
|
bool on_key_press_event (GdkEventKey *);
|
||||||
bool on_enter_notify_event (GdkEventCrossing*);
|
bool on_enter_notify_event (GdkEventCrossing*);
|
||||||
bool on_leave_notify_event (GdkEventCrossing*);
|
bool on_leave_notify_event (GdkEventCrossing*);
|
||||||
void on_unmap ();
|
void on_unmap ();
|
||||||
|
@ -54,6 +57,11 @@ class ArdourDialog : public Gtk::Dialog
|
||||||
virtual void session_gone () {
|
virtual void session_gone () {
|
||||||
set_session (0);
|
set_session (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void close_all_dialogs () { CloseAllDialogs(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
static sigc::signal<void> CloseAllDialogs;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __ardour_dialog_h__
|
#endif // __ardour_dialog_h__
|
||||||
|
|
|
@ -747,6 +747,7 @@ If you still wish to quit, please use the\n\n\
|
||||||
session->set_deletion_in_progress ();
|
session->set_deletion_in_progress ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ArdourDialog::close_all_dialogs ();
|
||||||
engine->stop (true);
|
engine->stop (true);
|
||||||
save_ardour_state ();
|
save_ardour_state ();
|
||||||
quit ();
|
quit ();
|
||||||
|
@ -1918,14 +1919,6 @@ ARDOUR_UI::transport_rec_enable_blink (bool onoff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gint
|
|
||||||
ARDOUR_UI::hide_and_quit (GdkEventAny *ev, ArdourDialog *window)
|
|
||||||
{
|
|
||||||
window->hide();
|
|
||||||
Gtk::Main::quit ();
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ARDOUR_UI::save_template ()
|
ARDOUR_UI::save_template ()
|
||||||
|
|
||||||
|
@ -2162,28 +2155,6 @@ ARDOUR_UI::loading_message (const std::string& msg)
|
||||||
splash->message (msg);
|
splash->message (msg);
|
||||||
flush_pending ();
|
flush_pending ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ARDOUR_UI::idle_load (const Glib::ustring& path)
|
|
||||||
{
|
|
||||||
if (session) {
|
|
||||||
if (Glib::file_test (path, Glib::FILE_TEST_IS_DIR)) {
|
|
||||||
/* /path/to/foo => /path/to/foo, foo */
|
|
||||||
load_session (path, basename_nosuffix (path));
|
|
||||||
} else {
|
|
||||||
/* /path/to/foo/foo.ardour => /path/to/foo, foo */
|
|
||||||
load_session (Glib::path_get_dirname (path), basename_nosuffix (path));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ARDOUR_COMMAND_LINE::session_name = path;
|
|
||||||
if (new_session_dialog) {
|
|
||||||
/* make it break out of Dialog::run() and
|
|
||||||
start again.
|
|
||||||
*/
|
|
||||||
new_session_dialog->response (1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be_new)
|
ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be_new)
|
||||||
|
|
|
@ -116,7 +116,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
void show_about ();
|
void show_about ();
|
||||||
void hide_about ();
|
void hide_about ();
|
||||||
|
|
||||||
void idle_load (const Glib::ustring& path);
|
void finish();
|
||||||
|
|
||||||
int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
|
int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
|
||||||
bool session_loaded;
|
bool session_loaded;
|
||||||
int build_session (const Glib::ustring& path, const Glib::ustring& snapshot,
|
int build_session (const Glib::ustring& path, const Glib::ustring& snapshot,
|
||||||
|
@ -178,8 +179,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
|
|
||||||
void name_io_setup (ARDOUR::AudioEngine&, string&, ARDOUR::IO& io, bool in);
|
void name_io_setup (ARDOUR::AudioEngine&, string&, ARDOUR::IO& io, bool in);
|
||||||
|
|
||||||
static gint hide_and_quit (GdkEventAny *ev, ArdourDialog *);
|
|
||||||
|
|
||||||
XMLNode* editor_settings() const;
|
XMLNode* editor_settings() const;
|
||||||
XMLNode* mixer_settings () const;
|
XMLNode* mixer_settings () const;
|
||||||
XMLNode* keyboard_settings () const;
|
XMLNode* keyboard_settings () const;
|
||||||
|
@ -300,7 +299,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
void startup ();
|
void startup ();
|
||||||
void shutdown ();
|
void shutdown ();
|
||||||
|
|
||||||
void finish();
|
|
||||||
int ask_about_saving_session (const string & why);
|
int ask_about_saving_session (const string & why);
|
||||||
|
|
||||||
/* periodic safety backup, to be precise */
|
/* periodic safety backup, to be precise */
|
||||||
|
|
|
@ -195,7 +195,7 @@ ARDOUR_UI::install_actions ()
|
||||||
|
|
||||||
common_actions = ActionGroup::create (X_("Common"));
|
common_actions = ActionGroup::create (X_("Common"));
|
||||||
ActionManager::register_action (main_actions, X_("WindowMenu"), _("Window"));
|
ActionManager::register_action (main_actions, X_("WindowMenu"), _("Window"));
|
||||||
ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (mem_fun(*this, &ARDOUR_UI::finish)));
|
ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (hide_return (mem_fun(*this, &ARDOUR_UI::finish))));
|
||||||
|
|
||||||
/* windows visibility actions */
|
/* windows visibility actions */
|
||||||
|
|
||||||
|
|
|
@ -65,16 +65,27 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
|
||||||
|
|
||||||
/* stuff some stuff into the top of the window */
|
/* stuff some stuff into the top of the window */
|
||||||
|
|
||||||
|
HBox* smaller_hbox = manage (new HBox);
|
||||||
|
|
||||||
|
smaller_hbox->pack_start (preset_label, false, false, 10);
|
||||||
|
smaller_hbox->pack_start (preset_combo, false, false);
|
||||||
|
smaller_hbox->pack_start (save_button, false, false);
|
||||||
|
smaller_hbox->pack_start (automation_mode_label, false, false);
|
||||||
|
smaller_hbox->pack_start (automation_mode_selector, false, false);
|
||||||
|
smaller_hbox->pack_start (bypass_button, false, true);
|
||||||
|
|
||||||
|
VBox* v1_box = manage (new VBox);
|
||||||
|
VBox* v2_box = manage (new VBox);
|
||||||
|
|
||||||
|
v1_box->pack_start (*smaller_hbox, false, true);
|
||||||
|
v2_box->pack_start (focus_button, false, true);
|
||||||
|
|
||||||
|
top_box.set_homogeneous (false);
|
||||||
top_box.set_spacing (6);
|
top_box.set_spacing (6);
|
||||||
top_box.set_border_width (6);
|
top_box.set_border_width (6);
|
||||||
|
|
||||||
top_box.pack_end (focus_button, false, true);
|
top_box.pack_end (*v2_box, false, false);
|
||||||
top_box.pack_end (bypass_button, false, true);
|
top_box.pack_end (*v1_box, false, false);
|
||||||
top_box.pack_end (automation_mode_selector, false, false);
|
|
||||||
top_box.pack_end (automation_mode_label, false, false);
|
|
||||||
top_box.pack_end (save_button, false, false);
|
|
||||||
top_box.pack_end (preset_combo, false, false);
|
|
||||||
top_box.pack_end (preset_label, false, false);
|
|
||||||
|
|
||||||
set_spacing (6);
|
set_spacing (6);
|
||||||
pack_start (top_box, false, false);
|
pack_start (top_box, false, false);
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "canvas_impl.h"
|
#include "canvas_impl.h"
|
||||||
#include "simplerect.h"
|
#include "simplerect.h"
|
||||||
#include "waveview.h"
|
#include "waveview.h"
|
||||||
|
#include "actions.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
|
@ -98,6 +99,8 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr<Crossfade> xf, d
|
||||||
set_name ("CrossfadeEditWindow");
|
set_name ("CrossfadeEditWindow");
|
||||||
set_position (Gtk::WIN_POS_MOUSE);
|
set_position (Gtk::WIN_POS_MOUSE);
|
||||||
|
|
||||||
|
add_accel_group (ActionManager::ui_manager->get_accel_group());
|
||||||
|
|
||||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
|
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
|
||||||
|
|
||||||
RadioButtonGroup sel_but_group = select_in_button.get_group();
|
RadioButtonGroup sel_but_group = select_in_button.get_group();
|
||||||
|
|
|
@ -73,8 +73,6 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
|
||||||
set_border_width (10);
|
set_border_width (10);
|
||||||
set_homogeneous (false);
|
set_homogeneous (false);
|
||||||
|
|
||||||
settings_box.set_homogeneous (false);
|
|
||||||
|
|
||||||
HBox* constraint_hbox = manage (new HBox);
|
HBox* constraint_hbox = manage (new HBox);
|
||||||
HBox* smaller_hbox = manage (new HBox);
|
HBox* smaller_hbox = manage (new HBox);
|
||||||
Label* combo_label = manage (new Label (_("<span size=\"large\">Presets</span>")));
|
Label* combo_label = manage (new Label (_("<span size=\"large\">Presets</span>")));
|
||||||
|
@ -83,15 +81,21 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
|
||||||
smaller_hbox->pack_start (*combo_label, false, false, 10);
|
smaller_hbox->pack_start (*combo_label, false, false, 10);
|
||||||
smaller_hbox->pack_start (preset_combo, false, false);
|
smaller_hbox->pack_start (preset_combo, false, false);
|
||||||
smaller_hbox->pack_start (save_button, false, false);
|
smaller_hbox->pack_start (save_button, false, false);
|
||||||
|
smaller_hbox->pack_start (bypass_button, false, true);
|
||||||
|
|
||||||
constraint_hbox->set_spacing (5);
|
constraint_hbox->set_spacing (5);
|
||||||
constraint_hbox->pack_start (*smaller_hbox, true, false);
|
constraint_hbox->set_homogeneous (false);
|
||||||
constraint_hbox->pack_end (focus_button, false, false);
|
|
||||||
constraint_hbox->pack_end (bypass_button, false, false);
|
VBox* v1_box = manage (new VBox);
|
||||||
|
VBox* v2_box = manage (new VBox);
|
||||||
|
|
||||||
settings_box.pack_end (*constraint_hbox, false, false);
|
v1_box->pack_start (*smaller_hbox, false, true);
|
||||||
|
v2_box->pack_start (focus_button, false, true);
|
||||||
|
|
||||||
pack_start (settings_box, false, false);
|
constraint_hbox->pack_end (*v2_box, false, false);
|
||||||
|
constraint_hbox->pack_end (*v1_box, false, false);
|
||||||
|
|
||||||
|
pack_start (*constraint_hbox, false, false);
|
||||||
|
|
||||||
if ( is_scrollable ) {
|
if ( is_scrollable ) {
|
||||||
scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
||||||
|
@ -107,9 +111,6 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
|
||||||
pack_start (hpacker, false, false);
|
pack_start (hpacker, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
insert->active_changed.connect (mem_fun(*this, &GenericPluginUI::redirect_active_changed));
|
|
||||||
bypass_button.set_active (!insert->active());
|
|
||||||
|
|
||||||
build ();
|
build ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -705,14 +706,6 @@ GenericPluginUI::control_combo_changed (ControlUI* cui)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
GenericPluginUI::redirect_active_changed (Redirect* r, void* src)
|
|
||||||
{
|
|
||||||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &GenericPluginUI::redirect_active_changed), r, src));
|
|
||||||
|
|
||||||
bypass_button.set_active (!r->active());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
GenericPluginUI::start_updating (GdkEventAny* ignored)
|
GenericPluginUI::start_updating (GdkEventAny* ignored)
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -89,14 +89,12 @@ void
|
||||||
Keyboard::magic_widget_grab_focus ()
|
Keyboard::magic_widget_grab_focus ()
|
||||||
{
|
{
|
||||||
_some_magic_widget_has_focus = true;
|
_some_magic_widget_has_focus = true;
|
||||||
cerr << "Grabbed magic widget docus\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Keyboard::magic_widget_drop_focus ()
|
Keyboard::magic_widget_drop_focus ()
|
||||||
{
|
{
|
||||||
_some_magic_widget_has_focus = false;
|
_some_magic_widget_has_focus = false;
|
||||||
cerr << "Dropped magic widget docus\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -264,10 +262,20 @@ Keyboard::snooper (GtkWidget *widget, GdkEventKey *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->type == GDK_KEY_RELEASE && event->keyval == GDK_w && modifier_state_equals (event->state, PrimaryModifier)) {
|
/* Special keys that we want to handle in
|
||||||
if (current_window) {
|
any dialog, no matter whether it uses
|
||||||
current_window->hide ();
|
the regular set of accelerators or not
|
||||||
current_window = 0;
|
*/
|
||||||
|
|
||||||
|
if (event->type == GDK_KEY_RELEASE && modifier_state_equals (event->state, PrimaryModifier)) {
|
||||||
|
switch (event->keyval) {
|
||||||
|
case GDK_w:
|
||||||
|
if (current_window) {
|
||||||
|
current_window->hide ();
|
||||||
|
current_window = 0;
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -342,6 +342,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||||
|
|
||||||
bypass_button.set_name ("PluginBypassButton");
|
bypass_button.set_name ("PluginBypassButton");
|
||||||
bypass_button.signal_toggled().connect (mem_fun(*this, &PlugUIBase::bypass_toggled));
|
bypass_button.signal_toggled().connect (mem_fun(*this, &PlugUIBase::bypass_toggled));
|
||||||
|
focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
|
||||||
|
|
||||||
focus_button.signal_button_release_event().connect (mem_fun(*this, &PlugUIBase::focus_toggled));
|
focus_button.signal_button_release_event().connect (mem_fun(*this, &PlugUIBase::focus_toggled));
|
||||||
focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
|
focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
|
||||||
|
@ -352,14 +353,15 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
|
||||||
focus_in_image = new Image (get_icon (X_("computer_keyboard_active")));
|
focus_in_image = new Image (get_icon (X_("computer_keyboard_active")));
|
||||||
|
|
||||||
focus_button.add (*focus_out_image);
|
focus_button.add (*focus_out_image);
|
||||||
|
|
||||||
ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
|
ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
|
||||||
|
ARDOUR_UI::instance()->set_tip (&bypass_button, _("Click to enable/disable this plugin"), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlugUIBase::redirect_active_changed (Redirect* r, void* src)
|
PlugUIBase::redirect_active_changed (Redirect* r, void* src)
|
||||||
{
|
{
|
||||||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &PlugUIBase::redirect_active_changed), r, src));
|
ENSURE_GUI_THREAD(bind (mem_fun(*this, &PlugUIBase::redirect_active_changed), r, src));
|
||||||
bypass_button.set_active (!r->active());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -93,8 +93,8 @@ class PlugUIBase : public virtual sigc::trackable
|
||||||
|
|
||||||
void setting_selected();
|
void setting_selected();
|
||||||
void save_plugin_setting (void);
|
void save_plugin_setting (void);
|
||||||
void bypass_toggled();
|
|
||||||
bool focus_toggled(GdkEventButton*);
|
bool focus_toggled(GdkEventButton*);
|
||||||
|
void bypass_toggled();
|
||||||
void redirect_active_changed (ARDOUR::Redirect* r, void* src);
|
void redirect_active_changed (ARDOUR::Redirect* r, void* src);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -194,8 +194,6 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
|
||||||
void control_port_toggled (ControlUI* cui);
|
void control_port_toggled (ControlUI* cui);
|
||||||
void control_combo_changed (ControlUI* cui);
|
void control_combo_changed (ControlUI* cui);
|
||||||
|
|
||||||
void redirect_active_changed (ARDOUR::Redirect*, void*);
|
|
||||||
|
|
||||||
void astate_clicked (ControlUI*, uint32_t parameter);
|
void astate_clicked (ControlUI*, uint32_t parameter);
|
||||||
void automation_state_changed (ControlUI*);
|
void automation_state_changed (ControlUI*);
|
||||||
void set_automation_state (ARDOUR::AutoState state, ControlUI* cui);
|
void set_automation_state (ARDOUR::AutoState state, ControlUI* cui);
|
||||||
|
|
|
@ -77,7 +77,7 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit
|
||||||
ArdourCanvas::SimpleLine *line = NULL;
|
ArdourCanvas::SimpleLine *line = NULL;
|
||||||
gdouble xpos;
|
gdouble xpos;
|
||||||
double who_cares;
|
double who_cares;
|
||||||
double x1, x2, y1, y2, beat_density;
|
double x1, x2, y1, beat_density;
|
||||||
|
|
||||||
uint32_t beats = 0;
|
uint32_t beats = 0;
|
||||||
uint32_t bars = 0;
|
uint32_t bars = 0;
|
||||||
|
|
Loading…
Reference in New Issue