mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 05:36:31 +01:00
enable icon-start-from-.ardour-file to work on OS X; properly install apple event handlers; change plugin add logic to avoid asking for stream counts before they would be configured; fix up new session dialog to not use manage(), and thus not throw away widgets when their page is hidden (by removal) in the tabbed browser
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3144 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
fb6565456e
commit
11af3f8fdf
21 changed files with 262 additions and 171 deletions
51
ardour_system_sae.rc
Normal file
51
ardour_system_sae.rc
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Ardour>
|
||||
<MIDI-port tag="ardour" device="ardour" type="coremidi" mode="duplex"/>
|
||||
<MIDI-port tag="mcu" device="ardour" type="coremidi" mode="duplex"/>
|
||||
<Config>
|
||||
<Option name="minimum-disk-io-bytes" value="262144"/>
|
||||
<Option name="track-buffer-seconds" value="5.000000"/>
|
||||
<Option name="mute-affects-pre-fader" value="yes"/>
|
||||
<Option name="mute-affects-post-fader" value="yes"/>
|
||||
<Option name="mute-affects-control-outs" value="yes"/>
|
||||
<Option name="mute-affects-main-outs" value="yes"/>
|
||||
<Option name="solo-latch" value="yes"/>
|
||||
<Option name="mtc-port" value="ardour"/>
|
||||
<Option name="mmc-port" value="ardour"/>
|
||||
<Option name="midi-port" value="ardour"/>
|
||||
<Option name="use-mmc" value="yes"/>
|
||||
<Option name="send-mmc" value="yes"/>
|
||||
<Option name="jack-time-master" value="yes"/>
|
||||
<Option name="trace-midi-input" value="no"/>
|
||||
<Option name="trace-midi-output" value="no"/>
|
||||
<Option name="plugins-stop-with-transport" value="no"/>
|
||||
<Option name="no-sw-monitoring" value="no"/>
|
||||
<Option name="stop-recording-on-xrun" value="no"/>
|
||||
<Option name="create-xrun-marker" value="yes"/>
|
||||
<Option name="stop-at-session-end" value="no"/>
|
||||
<Option name="auto-xfade" value="yes"/>
|
||||
<Option name="crossfades-active" value="1"/>
|
||||
<Option name="crossfades-visible" value="1"/>
|
||||
<Option name="xfade-model" value="0"/>
|
||||
<Option name="no-new-session-dialog" value="yes"/>
|
||||
<Option name="timecode-source-is-synced" value="yes"/>
|
||||
<Option name="auditioner-left-out" value="coreaudio:Built-in Audio:in1"/>
|
||||
<Option name="auditioner-right-out" value="coreaudio:Built-in Audio:in2"/>
|
||||
<Option name="quieten-at-speed" value="1.000000"/>
|
||||
<Option name="use-vst" value="yes"/>
|
||||
<Option name="use-tranzport" value="yes"/>
|
||||
<Option name="disk-choice-space-threshold" value="57600000"/>
|
||||
<Option name="destructive-xfade-msecs" value="20"/>
|
||||
<Option name="periodic-safety-backups" value="1"/>
|
||||
<Option name="periodic-safety-backup-interval" value="120"/>
|
||||
<Option name="show-track-meters" value="1"/>
|
||||
<Option name="default-narrow_ms" value="0"/>
|
||||
<Option name="smpte-format" value="6"/>
|
||||
<Option name="font-scale" value="102400"/>
|
||||
</Config>
|
||||
<extra>
|
||||
<RulerVisibility smpte="yes" bbt="yes" frames="no" minsec="no" tempo="yes" meter="yes" marker="yes" rangemarker="no" transportmarker="yes" cdmarker="no"/>
|
||||
<Keyboard edit-button="3" edit-modifier="4" delete-button="3" delete-modifier="1" snap-modifier="32"/>
|
||||
</extra>
|
||||
</Ardour>
|
||||
|
||||
|
|
@ -279,6 +279,11 @@
|
|||
<menuitem action='UseSoftwareMonitoring'/>
|
||||
<menuitem action='UseExternalMonitoring'/>
|
||||
</menu>
|
||||
<menu action="SyncMenu">
|
||||
<menuitem action='SendMMC'/>
|
||||
<menuitem action='UseMMC'/>
|
||||
<menuitem action='SendMTC'/>
|
||||
</menu>
|
||||
<menu action="TempoMenu">
|
||||
<menuitem action='set-tempo-from-region'/>
|
||||
<menuitem action='set-tempo-from-edit-range'/>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
#include <pbd/error.h>
|
||||
#include <pbd/basename.h>
|
||||
#include <pbd/compose.h>
|
||||
#include <pbd/misc.h>
|
||||
#include <pbd/pathscanner.h>
|
||||
#include <pbd/failed_constructor.h>
|
||||
#include <pbd/enumwriter.h>
|
||||
|
|
@ -2192,6 +2191,28 @@ ARDOUR_UI::loading_message (const std::string& msg)
|
|||
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
|
||||
ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be_new)
|
||||
{
|
||||
|
|
@ -2199,8 +2220,10 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be
|
|||
Glib::ustring session_name;
|
||||
Glib::ustring session_path;
|
||||
Glib::ustring template_name;
|
||||
int response;
|
||||
|
||||
int response = Gtk::RESPONSE_NONE;
|
||||
begin:
|
||||
response = Gtk::RESPONSE_NONE;
|
||||
|
||||
if (!ARDOUR_COMMAND_LINE::session_name.empty()) {
|
||||
|
||||
|
|
@ -2243,6 +2266,13 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be
|
|||
/* handle possible negative responses */
|
||||
|
||||
switch (response) {
|
||||
case 1:
|
||||
/* sent by idle_load, meaning restart the whole process again */
|
||||
new_session_dialog->hide();
|
||||
new_session_dialog->reset();
|
||||
goto begin;
|
||||
break;
|
||||
|
||||
case Gtk::RESPONSE_CANCEL:
|
||||
case Gtk::RESPONSE_DELETE_EVENT:
|
||||
if (!session) {
|
||||
|
|
@ -2421,7 +2451,6 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na
|
|||
}
|
||||
|
||||
loading_message (_("Please wait while Ardour loads your session"));
|
||||
disable_screen_updates ();
|
||||
|
||||
try {
|
||||
new_session = new Session (*engine, path, snap_name, mix_template);
|
||||
|
|
@ -2493,7 +2522,6 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na
|
|||
session->set_clean ();
|
||||
}
|
||||
|
||||
enable_screen_updates ();
|
||||
flush_pending ();
|
||||
retval = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
|||
void show_about ();
|
||||
void hide_about ();
|
||||
|
||||
int load_session (const Glib::ustring & path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
|
||||
void idle_load (const Glib::ustring& path);
|
||||
int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
|
||||
bool session_loaded;
|
||||
int build_session (const Glib::ustring& path, const Glib::ustring& snapshot,
|
||||
uint32_t ctl_chns,
|
||||
|
|
|
|||
|
|
@ -1056,10 +1056,13 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
|||
} else if (PARAM_IS ("send-mtc")) {
|
||||
|
||||
ActionManager::map_some_state ("options", "SendMTC", &Configuration::get_send_mtc);
|
||||
cerr << "Send MMC = " << Config->get_send_mmc() << endl;
|
||||
|
||||
} else if (PARAM_IS ("send-mmc")) {
|
||||
|
||||
|
||||
ActionManager::map_some_state ("options", "SendMMC", &Configuration::get_send_mmc);
|
||||
cerr << "Send MMC = " << Config->get_send_mmc() << endl;
|
||||
|
||||
} else if (PARAM_IS ("use-osc")) {
|
||||
|
||||
|
|
@ -1075,6 +1078,8 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
|||
|
||||
} else if (PARAM_IS ("mmc-control")) {
|
||||
ActionManager::map_some_state ("options", "UseMMC", &Configuration::get_mmc_control);
|
||||
cerr << "Use MMC = " << Config->get_mmc_control() << endl;
|
||||
|
||||
} else if (PARAM_IS ("midi-feedback")) {
|
||||
ActionManager::map_some_state ("options", "SendMIDIfeedback", &Configuration::get_midi_feedback);
|
||||
} else if (PARAM_IS ("do-not-record-plugins")) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include <gtkmm2ext/sync-menu.h>
|
||||
|
||||
#include <Appkit/Appkit.h>
|
||||
#include <gdk/gdkquartz.h>
|
||||
|
||||
sigc::signal<void,bool> ApplicationActivationChanged;
|
||||
static EventHandlerRef application_event_handler_ref;
|
||||
|
|
@ -40,18 +41,51 @@ handle_reopen_application (const AppleEvent *inAppleEvent,
|
|||
AppleEvent *outAppleEvent,
|
||||
long inHandlerRefcon)
|
||||
{
|
||||
cerr << "reopen app\n";
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
||||
static OSErr
|
||||
handle_print_documents (const AppleEvent *inAppleEvent,
|
||||
AppleEvent *outAppleEvent,
|
||||
long inHandlerRefcon)
|
||||
{
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
||||
static OSErr
|
||||
handle_open_documents (const AppleEvent *inAppleEvent,
|
||||
AppleEvent *outAppleEvent,
|
||||
long inHandlerRefcon)
|
||||
{
|
||||
AEDescList docs;
|
||||
|
||||
if (AEGetParamDesc(inAppleEvent, keyDirectObject, typeAEList, &docs) == noErr) {
|
||||
long n = 0;
|
||||
AECountItems(&docs, &n);
|
||||
UInt8 strBuffer[PATH_MAX+1];
|
||||
|
||||
/* ardour only opens 1 session at a time */
|
||||
|
||||
FSRef ref;
|
||||
|
||||
if (AEGetNthPtr(&docs, 1, typeFSRef, 0, 0, &ref, sizeof(ref), 0) == noErr) {
|
||||
if (FSRefMakePath(&ref, strBuffer, sizeof(strBuffer)) == noErr) {
|
||||
Glib::ustring utf8_path ((const char*) strBuffer);
|
||||
ARDOUR_UI::instance()->idle_load (utf8_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
static OSErr
|
||||
handle_quit_application (const AppleEvent *inAppleEvent,
|
||||
handle_open_application (const AppleEvent *inAppleEvent,
|
||||
AppleEvent *outAppleEvent,
|
||||
long inHandlerRefcon)
|
||||
{
|
||||
cerr << "quit app\n";
|
||||
ARDOUR_UI::instance()->quit ();
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
|
@ -79,12 +113,6 @@ application_event_handler (EventHandlerCallRef nextHandlerRef, EventRef event, v
|
|||
void
|
||||
ARDOUR_UI::platform_specific ()
|
||||
{
|
||||
AEInstallEventHandler (kCoreEventClass, kAEReopenApplication,
|
||||
handle_reopen_application, 0, true);
|
||||
|
||||
AEInstallEventHandler (kCoreEventClass, kAEQuitApplication,
|
||||
handle_quit_application, 0, true);
|
||||
|
||||
Gtk::Widget* widget = ActionManager::get_widget ("/ui/Main/Session/Quit");
|
||||
if (widget) {
|
||||
ige_mac_menu_set_quit_menu_item ((GtkMenuItem*) widget->gobj());
|
||||
|
|
@ -97,9 +125,26 @@ ARDOUR_UI::platform_specific ()
|
|||
ige_mac_menu_add_app_menu_item (group, (GtkMenuItem*) widget->gobj(), 0);
|
||||
}
|
||||
widget = ActionManager::get_widget ("/ui/Main/Session/ToggleOptionsEditor");
|
||||
|
||||
if (widget) {
|
||||
ige_mac_menu_add_app_menu_item (group, (GtkMenuItem*) widget->gobj(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::platform_setup ()
|
||||
{
|
||||
AEInstallEventHandler (kCoreEventClass, kAEOpenDocuments,
|
||||
handle_open_documents, 0, true);
|
||||
|
||||
AEInstallEventHandler (kCoreEventClass, kAEOpenApplication,
|
||||
handle_open_application, 0, true);
|
||||
|
||||
AEInstallEventHandler (kCoreEventClass, kAEReopenApplication,
|
||||
handle_reopen_application, 0, true);
|
||||
|
||||
AEInstallEventHandler (kCoreEventClass, kAEPrintDocuments,
|
||||
handle_print_documents, 0, true);
|
||||
|
||||
EventTypeSpec applicationEventTypes[] = {
|
||||
{kEventClassApplication, kEventAppActivated },
|
||||
|
|
@ -110,11 +155,6 @@ ARDOUR_UI::platform_specific ()
|
|||
|
||||
InstallApplicationEventHandler (ehUPP, sizeof(applicationEventTypes) / sizeof(EventTypeSpec),
|
||||
applicationEventTypes, 0, &application_event_handler_ref);
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::platform_setup ()
|
||||
{
|
||||
if (!ARDOUR_COMMAND_LINE::finder_invoked_ardour) {
|
||||
|
||||
/* if invoked from the command line, make sure we're visible */
|
||||
|
|
@ -122,3 +162,4 @@ ARDOUR_UI::platform_setup ()
|
|||
[NSApp activateIgnoringOtherApps:1];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -589,6 +589,10 @@ Editor::Editor ()
|
|||
|
||||
region_list_display.set_size_request (100, -1);
|
||||
region_list_display.set_name ("RegionListDisplay");
|
||||
/* Try to prevent single mouse presses from initiating edits.
|
||||
This relies on a hack in gtktreeview.c:gtk_treeview_button_press()
|
||||
*/
|
||||
region_list_display.set_data ("mouse-edits-require-mod1", (gpointer) 0x1);
|
||||
|
||||
region_list_model = TreeStore::create (region_list_columns);
|
||||
region_list_model->set_sort_func (0, mem_fun (*this, &Editor::region_list_sorter));
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ Editor::register_actions ()
|
|||
ActionManager::register_action (editor_actions, X_("SetPunchMenu"), _("Punch"));
|
||||
ActionManager::register_action (editor_actions, X_("Solo"), _("Solo"));
|
||||
ActionManager::register_action (editor_actions, X_("Subframes"), _("Subframes"));
|
||||
ActionManager::register_action (editor_actions, X_("SyncMenu"), _("Sync"));
|
||||
ActionManager::register_action (editor_actions, X_("TempoMenu"), _("Tempo"));
|
||||
ActionManager::register_action (editor_actions, X_("Timecode"), _("Timecode fps"));
|
||||
ActionManager::register_action (editor_actions, X_("TrackHeightMenu"), _("Height"));
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ ExportDialog::ExportDialog(PublicEditor& e)
|
|||
set_title (title.get_string());
|
||||
set_wmclass (X_("ardour_export"), "Ardour");
|
||||
set_name ("ExportWindow");
|
||||
set_events (get_events()|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
||||
|
||||
spec.running = false;
|
||||
|
||||
|
|
@ -388,13 +388,6 @@ ExportDialog::~ExportDialog()
|
|||
{
|
||||
}
|
||||
|
||||
bool
|
||||
ExportDialog::on_event (GdkEvent* ev)
|
||||
{
|
||||
cerr << "ED event type " << ev->type << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
ExportDialog::do_not_allow_track_and_master_selection()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,8 +47,6 @@ class ExportDialog : public ArdourDialog
|
|||
|
||||
virtual Gtk::FileChooserAction browse_action() const { return Gtk::FILE_CHOOSER_ACTION_SAVE; }
|
||||
|
||||
bool on_event (GdkEvent* ev);
|
||||
|
||||
protected:
|
||||
ARDOUR::AudioExportSpecification spec;
|
||||
Gtk::Frame file_frame;
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
#include <gtkmm2ext/window_title.h>
|
||||
|
||||
using namespace Gtk;
|
||||
using namespace Gtkmm2ext;
|
||||
using namespace PBD;
|
||||
|
||||
|
|
@ -47,14 +48,14 @@ NewSessionDialog::NewSessionDialog()
|
|||
: ArdourDialog ("session control")
|
||||
{
|
||||
in_destructor = false;
|
||||
session_name_label = Gtk::manage(new class Gtk::Label(_("Name :")));
|
||||
m_name = Gtk::manage(new class Gtk::Entry());
|
||||
session_name_label = new Gtk::Label(_("Name :"));
|
||||
m_name = new Gtk::Entry();
|
||||
m_name->set_text(ARDOUR_COMMAND_LINE::session_name);
|
||||
|
||||
chan_count_label_1 = Gtk::manage(new class Gtk::Label(_("channels")));
|
||||
chan_count_label_2 = Gtk::manage(new class Gtk::Label(_("channels")));
|
||||
chan_count_label_3 = Gtk::manage(new class Gtk::Label(_("channels")));
|
||||
chan_count_label_4 = Gtk::manage(new class Gtk::Label(_("channels")));
|
||||
chan_count_label_1 = new Gtk::Label(_("channels"));
|
||||
chan_count_label_2 = new Gtk::Label(_("channels"));
|
||||
chan_count_label_3 = new Gtk::Label(_("channels"));
|
||||
chan_count_label_4 = new Gtk::Label(_("channels"));
|
||||
|
||||
chan_count_label_1->set_alignment(0,0.5);
|
||||
chan_count_label_1->set_padding(0,0);
|
||||
|
|
@ -72,64 +73,64 @@ NewSessionDialog::NewSessionDialog()
|
|||
chan_count_label_4->set_padding(0,0);
|
||||
chan_count_label_4->set_line_wrap(false);
|
||||
|
||||
bus_label = Gtk::manage(new class Gtk::Label(_("<b>Busses</b>")));
|
||||
input_label = Gtk::manage(new class Gtk::Label(_("<b>Inputs</b>")));
|
||||
output_label = Gtk::manage(new class Gtk::Label(_("<b>Outputs</b>")));
|
||||
bus_label = new Gtk::Label(_("<b>Busses</b>"));
|
||||
input_label = new Gtk::Label(_("<b>Inputs</b>"));
|
||||
output_label = new Gtk::Label(_("<b>Outputs</b>"));
|
||||
|
||||
session_location_label = Gtk::manage(new class Gtk::Label(_("Create Folder In :")));
|
||||
m_folder = Gtk::manage(new class Gtk::FileChooserButton(Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
|
||||
session_template_label = Gtk::manage(new class Gtk::Label(_("Template :")));
|
||||
m_template = Gtk::manage(new class Gtk::FileChooserButton());
|
||||
m_create_control_bus = Gtk::manage(new class Gtk::CheckButton(_("Create Monitor Bus")));
|
||||
session_location_label = new Gtk::Label(_("Create Folder In :"));
|
||||
m_folder = new Gtk::FileChooserButton(Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
|
||||
session_template_label = new Gtk::Label(_("Template :"));
|
||||
m_template = new Gtk::FileChooserButton();
|
||||
m_create_control_bus = new Gtk::CheckButton(_("Create Monitor Bus"));
|
||||
|
||||
Gtk::Adjustment *m_control_bus_channel_count_adj = Gtk::manage(new class Gtk::Adjustment(2, 0, 100, 1, 10, 10));
|
||||
m_control_bus_channel_count = Gtk::manage(new class Gtk::SpinButton(*m_control_bus_channel_count_adj, 1, 0));
|
||||
Gtk::Adjustment *m_control_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10, 10));
|
||||
m_control_bus_channel_count = new Gtk::SpinButton(*m_control_bus_channel_count_adj, 1, 0);
|
||||
|
||||
Gtk::Adjustment *m_master_bus_channel_count_adj = Gtk::manage(new class Gtk::Adjustment(2, 0, 100, 1, 10, 10));
|
||||
m_master_bus_channel_count = Gtk::manage(new class Gtk::SpinButton(*m_master_bus_channel_count_adj, 1, 0));
|
||||
m_create_master_bus = Gtk::manage(new class Gtk::CheckButton(_("Create Master Bus")));
|
||||
advanced_table = Gtk::manage(new class Gtk::Table(2, 2, true));
|
||||
m_connect_inputs = Gtk::manage(new class Gtk::CheckButton(_("Automatically Connect to Physical Inputs")));
|
||||
m_limit_input_ports = Gtk::manage(new class Gtk::CheckButton(_("Use only")));
|
||||
Gtk::Adjustment *m_master_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10, 10));
|
||||
m_master_bus_channel_count = new Gtk::SpinButton(*m_master_bus_channel_count_adj, 1, 0);
|
||||
m_create_master_bus = new Gtk::CheckButton(_("Create Master Bus"));
|
||||
advanced_table = new Gtk::Table(2, 2, true);
|
||||
m_connect_inputs = new Gtk::CheckButton(_("Automatically Connect to Physical Inputs"));
|
||||
m_limit_input_ports = new Gtk::CheckButton(_("Use only"));
|
||||
|
||||
Gtk::Adjustment *m_input_limit_count_adj = Gtk::manage(new class Gtk::Adjustment(1, 0, 100, 1, 10, 10));
|
||||
m_input_limit_count = Gtk::manage(new class Gtk::SpinButton(*m_input_limit_count_adj, 1, 0));
|
||||
input_port_limit_hbox = Gtk::manage(new class Gtk::HBox(false, 0));
|
||||
input_port_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
input_table = Gtk::manage(new class Gtk::Table(2, 2, false));
|
||||
Gtk::Adjustment *m_input_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10, 10));
|
||||
m_input_limit_count = new Gtk::SpinButton(*m_input_limit_count_adj, 1, 0);
|
||||
input_port_limit_hbox = new Gtk::HBox(false, 0);
|
||||
input_port_vbox = new Gtk::VBox(false, 0);
|
||||
input_table = new Gtk::Table(2, 2, false);
|
||||
|
||||
bus_frame = Gtk::manage(new class Gtk::Frame());
|
||||
bus_table = Gtk::manage (new Gtk::Table (2, 3, false));
|
||||
bus_frame = new Gtk::Frame();
|
||||
bus_table = new Gtk::Table (2, 3, false);
|
||||
|
||||
input_frame = Gtk::manage(new class Gtk::Frame());
|
||||
m_connect_outputs = Gtk::manage(new class Gtk::CheckButton(_("Automatically Connect Outputs")));
|
||||
m_limit_output_ports = Gtk::manage(new class Gtk::CheckButton(_("Use only")));
|
||||
input_frame = new Gtk::Frame();
|
||||
m_connect_outputs = new Gtk::CheckButton(_("Automatically Connect Outputs"));
|
||||
m_limit_output_ports = new Gtk::CheckButton(_("Use only"));
|
||||
|
||||
Gtk::Adjustment *m_output_limit_count_adj = Gtk::manage(new class Gtk::Adjustment(1, 0, 100, 1, 10, 10));
|
||||
m_output_limit_count = Gtk::manage(new class Gtk::SpinButton(*m_output_limit_count_adj, 1, 0));
|
||||
output_port_limit_hbox = Gtk::manage(new class Gtk::HBox(false, 0));
|
||||
output_port_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
Gtk::Adjustment *m_output_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10, 10));
|
||||
m_output_limit_count = new Gtk::SpinButton(*m_output_limit_count_adj, 1, 0);
|
||||
output_port_limit_hbox = new Gtk::HBox(false, 0);
|
||||
output_port_vbox = new Gtk::VBox(false, 0);
|
||||
|
||||
Gtk::RadioButton::Group _RadioBGroup_m_connect_outputs_to_master;
|
||||
m_connect_outputs_to_master = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Master Bus")));
|
||||
m_connect_outputs_to_physical = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Physical Outputs")));
|
||||
output_conn_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
output_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
m_connect_outputs_to_master = new Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Master Bus"));
|
||||
m_connect_outputs_to_physical = new Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Physical Outputs"));
|
||||
output_conn_vbox = new Gtk::VBox(false, 0);
|
||||
output_vbox = new Gtk::VBox(false, 0);
|
||||
|
||||
output_frame = Gtk::manage(new class Gtk::Frame());
|
||||
advanced_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
advanced_label = Gtk::manage(new class Gtk::Label(_("Advanced Options")));
|
||||
advanced_expander = Gtk::manage(new class Gtk::Expander());
|
||||
new_session_table = Gtk::manage(new class Gtk::Table(2, 2, false));
|
||||
m_open_filechooser = Gtk::manage(new class Gtk::FileChooserButton());
|
||||
open_session_hbox = Gtk::manage(new class Gtk::HBox(false, 0));
|
||||
m_treeview = Gtk::manage(new class Gtk::TreeView());
|
||||
recent_scrolledwindow = Gtk::manage(new class Gtk::ScrolledWindow());
|
||||
output_frame = new Gtk::Frame();
|
||||
advanced_vbox = new Gtk::VBox(false, 0);
|
||||
advanced_label = new Gtk::Label(_("Advanced Options"));
|
||||
advanced_expander = new Gtk::Expander();
|
||||
new_session_table = new Gtk::Table(2, 2, false);
|
||||
m_open_filechooser = new Gtk::FileChooserButton();
|
||||
open_session_hbox = new Gtk::HBox(false, 0);
|
||||
m_treeview = new Gtk::TreeView();
|
||||
recent_scrolledwindow = new Gtk::ScrolledWindow();
|
||||
|
||||
recent_sesion_label = Gtk::manage(new class Gtk::Label(_("Recent:")));
|
||||
recent_frame = Gtk::manage(new class Gtk::Frame());
|
||||
open_session_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
|
||||
m_notebook = Gtk::manage(new class Gtk::Notebook());
|
||||
recent_sesion_label = new Gtk::Label(_("Recent:"));
|
||||
recent_frame = new Gtk::Frame();
|
||||
open_session_vbox = new Gtk::VBox(false, 0);
|
||||
m_notebook = new Gtk::Notebook();
|
||||
session_name_label->set_alignment(0, 0.5);
|
||||
session_name_label->set_padding(6,0);
|
||||
session_name_label->set_line_wrap(false);
|
||||
|
|
@ -163,7 +164,7 @@ NewSessionDialog::NewSessionDialog()
|
|||
m_master_bus_channel_count->set_numeric(true);
|
||||
m_master_bus_channel_count->set_digits(0);
|
||||
m_master_bus_channel_count->set_wrap(false);
|
||||
open_session_file_label = Gtk::manage(new class Gtk::Label(_("Browse:")));
|
||||
open_session_file_label = new Gtk::Label(_("Browse:"));
|
||||
open_session_file_label->set_alignment(0, 0.5);
|
||||
m_create_master_bus->set_flags(Gtk::CAN_FOCUS);
|
||||
m_create_master_bus->set_relief(Gtk::RELIEF_NORMAL);
|
||||
|
|
@ -191,7 +192,7 @@ NewSessionDialog::NewSessionDialog()
|
|||
m_input_limit_count->set_wrap(false);
|
||||
m_input_limit_count->set_sensitive(false);
|
||||
|
||||
bus_hbox = Gtk::manage (new Gtk::HBox (false, 0));
|
||||
bus_hbox = new Gtk::HBox (false, 0);
|
||||
bus_hbox->pack_start (*bus_table, Gtk::PACK_SHRINK, 18);
|
||||
|
||||
bus_label->set_alignment(0, 0.5);
|
||||
|
|
@ -222,7 +223,7 @@ NewSessionDialog::NewSessionDialog()
|
|||
input_table->set_col_spacings(0);
|
||||
input_table->attach(*input_port_vbox, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 6, 6);
|
||||
|
||||
input_hbox = Gtk::manage (new Gtk::HBox (false, 0));
|
||||
input_hbox = new Gtk::HBox (false, 0);
|
||||
input_hbox->pack_start (*input_table, Gtk::PACK_SHRINK, 18);
|
||||
|
||||
input_label->set_alignment(0, 0.5);
|
||||
|
|
@ -282,7 +283,7 @@ NewSessionDialog::NewSessionDialog()
|
|||
output_frame->set_shadow_type(Gtk::SHADOW_NONE);
|
||||
output_frame->set_label_align(0,0.5);
|
||||
|
||||
output_hbox = Gtk::manage (new Gtk::HBox (false, 0));
|
||||
output_hbox = new Gtk::HBox (false, 0);
|
||||
output_hbox->pack_start (*output_vbox, Gtk::PACK_SHRINK, 18);
|
||||
|
||||
output_frame->add(*output_hbox);
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ CONFIG_VARIABLE (std::string, midi_port_name, "midi-port-name", "default")
|
|||
CONFIG_VARIABLE (bool, trace_midi_input, "trace-midi-input", false)
|
||||
CONFIG_VARIABLE (bool, trace_midi_output, "trace-midi-output", false)
|
||||
CONFIG_VARIABLE (bool, send_mtc, "send-mtc", false)
|
||||
CONFIG_VARIABLE (bool, send_mmc, "send-mmc", false)
|
||||
CONFIG_VARIABLE (bool, mmc_control, "mmc-control", false)
|
||||
CONFIG_VARIABLE (bool, send_mmc, "send-mmc", true)
|
||||
CONFIG_VARIABLE (bool, mmc_control, "mmc-control", true)
|
||||
CONFIG_VARIABLE (bool, midi_feedback, "midi-feedback", false)
|
||||
CONFIG_VARIABLE (uint8_t, mmc_receive_device_id, "mmc-receive-device-id", 0)
|
||||
CONFIG_VARIABLE (uint8_t, mmc_send_device_id, "mmc-send-device-id", 0x7f)
|
||||
|
|
|
|||
|
|
@ -93,12 +93,10 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC
|
|||
streamFormat.mSampleRate = session.frame_rate();
|
||||
streamFormat.mFormatID = kAudioFormatLinearPCM;
|
||||
streamFormat.mFormatFlags = kAudioFormatFlagIsFloat|kAudioFormatFlagIsPacked|kAudioFormatFlagIsNonInterleaved;
|
||||
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
/* relax, for now */
|
||||
/* relax */
|
||||
#else
|
||||
/* it is ridiculous that this flag is needed when its
|
||||
opposite flag is not.
|
||||
*/
|
||||
streamFormat.mFormatFlags |= kAudioFormatFlagIsBigEndian;
|
||||
#endif
|
||||
|
||||
|
|
@ -329,7 +327,7 @@ AUPlugin::activate ()
|
|||
if (!initialized) {
|
||||
OSErr err;
|
||||
if ((err = unit->Initialize()) != noErr) {
|
||||
error << string_compose (_("AUPlugin: cannot initialize plugin (err = %1)"), err) << endmsg;
|
||||
error << string_compose (_("AUPlugin: %1 cannot initialize plugin (err = %2)"), name(), err) << endmsg;
|
||||
} else {
|
||||
frames_processed = 0;
|
||||
initialized = true;
|
||||
|
|
@ -454,9 +452,10 @@ uint32_t
|
|||
AUPlugin::output_streams() const
|
||||
{
|
||||
if (!(format_set & 0x2)) {
|
||||
warning << _("AUPlugin: output_streams() called without any format set!") << endmsg;
|
||||
warning << string_compose (_("AUPlugin: %1 output_streams() called without any format set!"), name()) << endmsg;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return streamFormat.mChannelsPerFrame;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -861,6 +861,14 @@ Route::add_redirect (boost::shared_ptr<Redirect> redirect, void *src, uint32_t*
|
|||
boost::shared_ptr<PluginInsert> pi;
|
||||
boost::shared_ptr<PortInsert> porti;
|
||||
|
||||
_redirects.push_back (redirect);
|
||||
|
||||
if (_reset_plugin_counts (err_streams)) {
|
||||
_redirects.pop_back ();
|
||||
_reset_plugin_counts (0); // it worked before we tried to add it ...
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint32_t potential_max_streams = 0;
|
||||
|
||||
if ((pi = boost::dynamic_pointer_cast<PluginInsert>(redirect)) != 0) {
|
||||
|
|
@ -901,14 +909,6 @@ Route::add_redirect (boost::shared_ptr<Redirect> redirect, void *src, uint32_t*
|
|||
_max_peak_power.push_back(-INFINITY);
|
||||
}
|
||||
|
||||
_redirects.push_back (redirect);
|
||||
|
||||
if (_reset_plugin_counts (err_streams)) {
|
||||
_redirects.pop_back ();
|
||||
_reset_plugin_counts (0); // it worked before we tried to add it ...
|
||||
return -1;
|
||||
}
|
||||
|
||||
redirect->activate ();
|
||||
redirect->active_changed.connect (mem_fun (*this, &Route::redirect_active_proxy));
|
||||
}
|
||||
|
|
@ -1129,14 +1129,14 @@ int
|
|||
Route::_reset_plugin_counts (uint32_t* err_streams)
|
||||
{
|
||||
RedirectList::iterator r;
|
||||
uint32_t i_cnt;
|
||||
uint32_t s_cnt;
|
||||
uint32_t insert_cnt = 0;
|
||||
uint32_t send_cnt = 0;
|
||||
map<Placement,list<InsertCount> > insert_map;
|
||||
RedirectList::iterator prev;
|
||||
nframes_t initial_streams;
|
||||
int ret = -1;
|
||||
|
||||
redirect_max_outs = 0;
|
||||
i_cnt = 0;
|
||||
s_cnt = 0;
|
||||
|
||||
/* divide inserts up by placement so we get the signal flow
|
||||
properly modelled. we need to do this because the _redirects
|
||||
|
|
@ -1148,14 +1148,8 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
|
||||
boost::shared_ptr<Insert> insert;
|
||||
|
||||
/* do this here in case we bomb out before we get to the end of
|
||||
this function.
|
||||
*/
|
||||
|
||||
redirect_max_outs = max ((*r)->output_streams (), redirect_max_outs);
|
||||
|
||||
if ((insert = boost::dynamic_pointer_cast<Insert>(*r)) != 0) {
|
||||
++i_cnt;
|
||||
++insert_cnt;
|
||||
insert_map[insert->placement()].push_back (InsertCount (insert));
|
||||
|
||||
/* reset plugin counts back to one for now so
|
||||
|
|
@ -1170,15 +1164,16 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
}
|
||||
|
||||
} else if (boost::dynamic_pointer_cast<Send> (*r) != 0) {
|
||||
++s_cnt;
|
||||
++send_cnt;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_cnt == 0) {
|
||||
if (s_cnt) {
|
||||
if (insert_cnt == 0) {
|
||||
if (send_cnt) {
|
||||
goto recompute;
|
||||
} else {
|
||||
return 0;
|
||||
ret = 0;
|
||||
goto streamcount;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1189,7 +1184,7 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
/* A: PreFader */
|
||||
|
||||
if (check_some_plugin_counts (insert_map[PreFader], n_inputs (), err_streams)) {
|
||||
return -1;
|
||||
goto streamcount;
|
||||
}
|
||||
|
||||
/* figure out the streams that will feed into PreFader */
|
||||
|
|
@ -1204,7 +1199,7 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
/* B: PostFader */
|
||||
|
||||
if (check_some_plugin_counts (insert_map[PostFader], initial_streams, err_streams)) {
|
||||
return -1;
|
||||
goto streamcount;
|
||||
}
|
||||
|
||||
/* OK, everything can be set up correctly, so lets do it */
|
||||
|
|
@ -1217,7 +1212,7 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
recompute:
|
||||
|
||||
redirect_max_outs = 0;
|
||||
RedirectList::iterator prev = _redirects.end();
|
||||
prev = _redirects.end();
|
||||
|
||||
for (r = _redirects.begin(); r != _redirects.end(); prev = r, ++r) {
|
||||
boost::shared_ptr<Send> s;
|
||||
|
|
@ -1241,8 +1236,13 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
|
|||
}
|
||||
|
||||
/* we're done */
|
||||
|
||||
return 0;
|
||||
|
||||
streamcount:
|
||||
for (r = _redirects.begin(); r != _redirects.end(); ++r) {
|
||||
redirect_max_outs = max ((*r)->output_streams (), redirect_max_outs);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int32_t
|
||||
|
|
|
|||
|
|
@ -578,16 +578,10 @@ Session::destroy ()
|
|||
tmp = i;
|
||||
++tmp;
|
||||
|
||||
cerr << "Drop refs to " << i->second->name() << endl;
|
||||
|
||||
i->second->drop_references ();
|
||||
|
||||
cerr << "move on\n";
|
||||
|
||||
i = tmp;
|
||||
}
|
||||
|
||||
cerr << "clear audio sources\n";
|
||||
audio_sources.clear ();
|
||||
|
||||
#ifdef TRACK_DESTRUCTION
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ dmalloc.cc
|
|||
error.cc
|
||||
fpu.cc
|
||||
id.cc
|
||||
misc.c
|
||||
mountpoint.cc
|
||||
path.cc
|
||||
pathscanner.cc
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
#include <pbd/misc.h>
|
||||
|
||||
#ifdef GTKOSX
|
||||
#include <AppKit/AppKit.h>
|
||||
#endif
|
||||
|
||||
void
|
||||
disable_screen_updates ()
|
||||
{
|
||||
#ifdef GTKOSX
|
||||
// NSDisableScreenUpdates ();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
enable_screen_updates ()
|
||||
{
|
||||
#ifdef GTKOSX
|
||||
// NSEnableScreenUpdates();
|
||||
#endif
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#ifndef __pbd_misc_h__
|
||||
#define __pbd_misc_h__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void disable_screen_updates ();
|
||||
void enable_screen_updates ();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __pbd_misc_h__ */
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __ardour_svn_revision_h__
|
||||
#define __ardour_svn_revision_h__
|
||||
static const char* ardour_svn_revision = "3117";
|
||||
static const char* ardour_svn_revision = "3142";
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ while [ $# -gt 0 ] ; do
|
|||
--sae) SAE=1 ; WITH_JACK=1; WITH_LADSPA=1; STRIP= ; shift ;;
|
||||
--public) SAE= ; WITH_JACK=; WITH_LADSPA=1; STRIP= ; shift ;;
|
||||
--allinone) SAE= ; WITH_JACK=1; WITH_LADSPA=1; STRIP= ; shift ;;
|
||||
--test) SAE= ; WITH_JACK=; WITH_LADSPA=; STRIP= ; shift ;;
|
||||
|
||||
#
|
||||
# specific build flags
|
||||
|
|
@ -204,7 +205,13 @@ cp ../../gtk2_ardour/mnemonic-us.bindings $Resources
|
|||
cp ../../gtk2_ardour/SAE-de.bindings $Resources
|
||||
cp ../../gtk2_ardour/ardour.menus $Resources
|
||||
cp ../../gtk2_ardour/ardour-sae.menus $Resources
|
||||
cp ../../ardour_system.rc $Resources
|
||||
if test x$SAE != x ; then
|
||||
cp ../../ardour_system_sae.rc $Resources/ardour_system.rc
|
||||
echo cp ../../ardour_system_sae.rc $Resources/ardour_system.rc
|
||||
else
|
||||
cp ../../ardour_system.rc $Resources/ardour_system.rc
|
||||
echo FOO cp ../../ardour_system.rc $Resources/ardour_system.rc
|
||||
fi
|
||||
cp ../../gtk2_ardour/ardour2_ui_sae.conf $Resources
|
||||
cp ../../gtk2_ardour/ardour2_ui_default.conf $Resources
|
||||
cp ../../gtk2_ardour/ardour2_ui_light.rc $Resources
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue