Merge branch 'ardour'
This commit is contained in:
commit
9c292ed6f4
@ -8,3 +8,5 @@ MimeType=application/x-ardour;
|
||||
Type=Application
|
||||
Categories=AudioVideo;Audio;AudioEditing;X-Recorders;X-Multitrack;X-Jack;
|
||||
StartupWMClass=Ardour
|
||||
X-NSM-Capable=true
|
||||
X-NSM-Exec=@ARDOUR_EXEC@
|
||||
|
@ -445,11 +445,11 @@ Editor::drop_paths_part_two (const vector<string>& paths, timepos_t const & p, d
|
||||
/* drop onto canvas background: create new tracks */
|
||||
|
||||
InstrumentSelector is(InstrumentSelector::ForTrackDefault); // instantiation builds instrument-list and sets default.
|
||||
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, SMFTrackNumber, SMFTempoIgnore, pos, is.selected_instrument());
|
||||
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos, is.selected_instrument());
|
||||
|
||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||
do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrack,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, pos);
|
||||
SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos);
|
||||
} else {
|
||||
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, pos);
|
||||
}
|
||||
@ -460,11 +460,11 @@ Editor::drop_paths_part_two (const vector<string>& paths, timepos_t const & p, d
|
||||
|
||||
if (tv->track()) {
|
||||
do_import (midi_paths, Editing::ImportSerializeFiles, ImportToTrack,
|
||||
SrcBest, SMFTrackNumber, SMFTempoIgnore, pos, std::shared_ptr<ARDOUR::PluginInfo>(), tv->track ());
|
||||
SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos, std::shared_ptr<ARDOUR::PluginInfo>(), tv->track ());
|
||||
|
||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||
do_import (audio_paths, Editing::ImportSerializeFiles, Editing::ImportToTrack,
|
||||
SrcBest, SMFTrackName, SMFTempoIgnore, pos, std::shared_ptr<PluginInfo>(), tv->track ());
|
||||
SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos, std::shared_ptr<PluginInfo>(), tv->track ());
|
||||
} else {
|
||||
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, pos, std::shared_ptr<ARDOUR::PluginInfo>(), tv->track ());
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ EditorSources::drag_data_received (const RefPtr<Gdk::DragContext>& context,
|
||||
|
||||
if (UIConfiguration::instance ().get_only_copy_imported_files () || copy) {
|
||||
_editor->do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion,
|
||||
SrcBest, SMFTrackNumber, SMFTempoIgnore, pos);
|
||||
SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos);
|
||||
} else {
|
||||
_editor->do_embed (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, pos);
|
||||
}
|
||||
|
@ -423,7 +423,7 @@ ExportDialog::show_progress ()
|
||||
for (auto const& x : _files_to_reimport) {
|
||||
timepos_t pos (x.first);
|
||||
Editing::ImportDisposition disposition = Editing::ImportDistinctFiles;
|
||||
editor.do_import (x.second, disposition, Editing::ImportAsTrack, SrcBest, SMFTrackNumber, SMFTempoIgnore, pos);
|
||||
editor.do_import (x.second, disposition, Editing::ImportAsTrack, SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -326,7 +326,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:green"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -317,7 +317,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="alert:green"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:blue"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -318,7 +318,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:contrasting"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -58,7 +58,7 @@
|
||||
<ColorAlias name="audio bus base" alias="widget:blue darker"/>
|
||||
<ColorAlias name="audio master bus base" alias="neutral:backgroundest"/>
|
||||
<ColorAlias name="audio track base" alias="neutral:background"/>
|
||||
<ColorAlias name="automation line" alias="midi meter 52"/>
|
||||
<ColorAlias name="automation line" alias="neutral:backgroundest"/>
|
||||
<ColorAlias name="automation track outline" alias="theme:bg1"/>
|
||||
<ColorAlias name="big clock active: background" alias="neutral:backgroundest"/>
|
||||
<ColorAlias name="big clock active: cursor" alias="theme:contrasting alt"/>
|
||||
@ -324,7 +324,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="alert:green"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="neutral:backgroundest"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -318,7 +318,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="alert:red"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="neutral:backgroundest"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -318,7 +318,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:greenish"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -319,7 +319,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:green"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -319,7 +319,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:green"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -317,7 +317,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="widget:blue"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:blue"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -318,7 +318,7 @@
|
||||
<ColorAlias name="pluginui toggle: fill" alias="widget:bg"/>
|
||||
<ColorAlias name="pluginui toggle: fill active" alias="widget:blue"/>
|
||||
<ColorAlias name="preference highlight" alias="alert:yellow"/>
|
||||
<ColorAlias name="processor automation line" alias="theme:bg1"/>
|
||||
<ColorAlias name="processor automation line" alias="alert:greenish"/>
|
||||
<ColorAlias name="processor auxfeedback: fill" alias="theme:contrasting alt"/>
|
||||
<ColorAlias name="processor auxfeedback: led active" alias="alert:green"/>
|
||||
<ColorAlias name="processor control button: fill" alias="neutral:background"/>
|
||||
|
@ -730,8 +730,8 @@ TriggerPage::drop_paths_part_two (std::vector<std::string> paths)
|
||||
}
|
||||
timepos_t pos (0);
|
||||
Editing::ImportDisposition disposition = Editing::ImportSerializeFiles; // or Editing::ImportDistinctFiles // TODO use drop modifier? config?
|
||||
PublicEditor::instance().do_import (midi_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFTrackNumber, SMFTempoIgnore, pos, _trigger_clip_picker.instrument_plugin ());
|
||||
PublicEditor::instance().do_import (audio_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFTrackNumber, SMFTempoIgnore, pos);
|
||||
PublicEditor::instance().do_import (midi_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos, _trigger_clip_picker.instrument_plugin ());
|
||||
PublicEditor::instance().do_import (audio_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFFileAndTrackName, SMFTempoIgnore, pos);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -76,7 +76,7 @@ IOTaskList::IOTaskList (uint32_t n_threads)
|
||||
|
||||
_workers.resize (_n_threads);
|
||||
for (uint32_t i = 0; i < _n_threads; ++i) {
|
||||
if (!use_rt || pbd_realtime_pthread_create (policy, THREAD_IO, 0, &_workers[i], &_worker_thread, this)) {
|
||||
if (!use_rt || pbd_realtime_pthread_create ("I/O", policy, PBD_RT_PRI_IOFX, 0, &_workers[i], &_worker_thread, this)) {
|
||||
if (use_rt && i == 0) {
|
||||
PBD::warning << _("IOTaskList: cannot acquire realtime permissions.") << endmsg;
|
||||
}
|
||||
|
@ -73,18 +73,7 @@ using namespace ARDOUR;
|
||||
using namespace PBD;
|
||||
using namespace Temporal;
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define ENSURE_PROCESS_THREAD do {} while (0)
|
||||
#else
|
||||
# define ENSURE_PROCESS_THREAD \
|
||||
do { \
|
||||
if (!AudioEngine::instance()->in_process_thread() \
|
||||
&& !loading ()) { \
|
||||
PBD::stacktrace (std::cerr, 30); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
#define TFSM_EVENT(evtype) { _transport_fsm->enqueue (new TransportFSM::Event (evtype)); }
|
||||
#define TFSM_ROLL() { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::StartTransport)); }
|
||||
|
@ -3650,7 +3650,7 @@ TriggerBox::set_from_path (uint32_t slot, std::string const & path)
|
||||
status.replace_existing_source = false;
|
||||
status.split_midi_channels = false;
|
||||
status.import_markers = false;
|
||||
status.midi_track_name_source = ARDOUR::SMFTrackNumber;
|
||||
status.midi_track_name_source = ARDOUR::SMFFileAndTrackName;
|
||||
|
||||
_session.import_files (status);
|
||||
|
||||
|
@ -952,7 +952,7 @@ AlsaAudioBackend::_start (bool for_latency_measurement)
|
||||
_run = true;
|
||||
_port_change_flag.store (0);
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("ALSA Main", PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
&_main_thread, pthread_process, this)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &_main_thread, pthread_process, this)) {
|
||||
PBD::error << _("AlsaAudioBackend: failed to create process thread.") << endmsg;
|
||||
@ -1152,7 +1152,7 @@ AlsaAudioBackend::create_process_thread (boost::function<void ()> func)
|
||||
pthread_t thread_id;
|
||||
ThreadData* td = new ThreadData (this, func, PBD_RT_STACKSIZE_PROC);
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC, &thread_id, alsa_process_thread, td)) {
|
||||
if (pbd_realtime_pthread_create ("ALSA Proc", PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC, &thread_id, alsa_process_thread, td)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &thread_id, alsa_process_thread, td)) {
|
||||
PBD::error << _("AudioEngine: cannot create process thread.") << endmsg;
|
||||
return -1;
|
||||
@ -1666,7 +1666,7 @@ AlsaAudioBackend::set_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
{
|
||||
BackendPortPtr port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "AlsaPort::set_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "AlsaAudioBackend::set_latency_range (): invalid port.");
|
||||
return;
|
||||
}
|
||||
port->set_latency_range (latency_range, for_playback);
|
||||
@ -1679,7 +1679,7 @@ AlsaAudioBackend::get_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
LatencyRange r;
|
||||
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "AlsaPort::get_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "AlsaAudioBackend::get_latency_range (): invalid port.");
|
||||
r.min = 0;
|
||||
r.max = 0;
|
||||
return r;
|
||||
|
@ -73,7 +73,7 @@ static void * pthread_process (void *arg)
|
||||
int
|
||||
AlsaMidiIO::start ()
|
||||
{
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MIDI, PBD_RT_STACKSIZE_HELP,
|
||||
if (pbd_realtime_pthread_create ("ALSA MIDI", PBD_SCHED_FIFO, PBD_RT_PRI_MIDI, PBD_RT_STACKSIZE_HELP,
|
||||
&_main_thread, pthread_process, this))
|
||||
{
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_HELP, &_main_thread, pthread_process, this)) {
|
||||
|
@ -111,7 +111,7 @@ AlsaAudioSlave::start ()
|
||||
}
|
||||
|
||||
_run = true;
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_HELP,
|
||||
if (pbd_realtime_pthread_create ("ALSA Slave", PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_HELP,
|
||||
&_thread, _process_thread, this))
|
||||
{
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_HELP, &_thread, _process_thread, this)) {
|
||||
|
@ -829,7 +829,7 @@ CoreAudioBackend::create_process_thread (boost::function<void()> func)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("CoreAudio Proc", PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
&thread_id, coreaudio_process_thread, td)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &thread_id, coreaudio_process_thread, td)) {
|
||||
PBD::error << _("AudioEngine: cannot create process thread.") << endmsg;
|
||||
@ -1158,7 +1158,7 @@ CoreAudioBackend::set_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
{
|
||||
std::shared_ptr<BackendPort> port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "BackendPort::set_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "CoreAudioBackend::set_latency_range (): invalid port.");
|
||||
return;
|
||||
}
|
||||
port->set_latency_range (latency_range, for_playback);
|
||||
@ -1170,7 +1170,7 @@ CoreAudioBackend::get_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
std::shared_ptr<BackendPort> port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
LatencyRange r;
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "BackendPort::get_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "CoreAudioBackend::get_latency_range (): invalid port.");
|
||||
r.min = 0;
|
||||
r.max = 0;
|
||||
return r;
|
||||
|
@ -431,7 +431,7 @@ DummyAudioBackend::_start (bool /*for_latency_measurement*/)
|
||||
_port_change_flag.store (0);
|
||||
|
||||
bool ok = _realtime;
|
||||
if (_realtime && pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC, &_main_thread, pthread_process, this)) {
|
||||
if (_realtime && pbd_realtime_pthread_create ("Dummy Main", PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC, &_main_thread, pthread_process, this)) {
|
||||
PBD::warning << _("DummyAudioBackend: failed to acquire realtime permissions.") << endmsg;
|
||||
ok = false;
|
||||
}
|
||||
@ -529,7 +529,7 @@ DummyAudioBackend::create_process_thread (boost::function<void()> func)
|
||||
pthread_t thread_id;
|
||||
ThreadData* td = new ThreadData (this, func, PBD_RT_STACKSIZE_PROC);
|
||||
|
||||
bool ok = _realtime && 0 == pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC, &thread_id, dummy_process_thread, td);
|
||||
bool ok = _realtime && 0 == pbd_realtime_pthread_create ("Dummy Proc", PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC, &thread_id, dummy_process_thread, td);
|
||||
if (!ok && pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &thread_id, dummy_process_thread, td)) {
|
||||
PBD::error << _("AudioEngine: cannot create process thread.") << endmsg;
|
||||
return -1;
|
||||
@ -846,7 +846,7 @@ DummyAudioBackend::set_latency_range (PortEngine::PortHandle port_handle, bool f
|
||||
{
|
||||
BackendPortPtr port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "DummyPort::set_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "DummyAudioBackend::set_latency_range (): invalid port.");
|
||||
return;
|
||||
}
|
||||
port->set_latency_range (latency_range, for_playback);
|
||||
@ -858,7 +858,7 @@ DummyAudioBackend::get_latency_range (PortEngine::PortHandle port_handle, bool f
|
||||
LatencyRange r;
|
||||
BackendPortPtr port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "DummyPort::get_latency_range (): invalid port.");
|
||||
DEBUG_TRACE (PBD::DEBUG::BackendPorts, "DummyAudioBackend::get_latency_range (): invalid port.");
|
||||
r.min = 0;
|
||||
r.max = 0;
|
||||
return r;
|
||||
|
@ -775,7 +775,7 @@ PortAudioBackend::process_callback(const float* input,
|
||||
bool
|
||||
PortAudioBackend::start_blocking_process_thread ()
|
||||
{
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("PortAudio Main", PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
&_main_blocking_thread, blocking_thread_func, this))
|
||||
{
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &_main_blocking_thread, blocking_thread_func, this))
|
||||
@ -1103,7 +1103,7 @@ PortAudioBackend::create_process_thread (boost::function<void()> func)
|
||||
pthread_t thread_id;
|
||||
ThreadData* td = new ThreadData (this, func, PBD_RT_STACKSIZE_PROC);
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("PortAudio Proc", PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
&thread_id, portaudio_process_thread, td)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &thread_id, portaudio_process_thread, td)) {
|
||||
DEBUG_AUDIO("Cannot create process thread.");
|
||||
@ -1428,7 +1428,7 @@ PortAudioBackend::set_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
{
|
||||
std::shared_ptr<BackendPort> port = std::dynamic_pointer_cast<BackendPort>(port_handle);
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_PORTS("BackendPort::set_latency_range (): invalid port.\n");
|
||||
DEBUG_PORTS ("PortAudioBackend::set_latency_range (): invalid port.\n");
|
||||
return;
|
||||
}
|
||||
port->set_latency_range (latency_range, for_playback);
|
||||
@ -1440,7 +1440,7 @@ PortAudioBackend::get_latency_range (PortEngine::PortHandle port_handle, bool fo
|
||||
std::shared_ptr<BackendPort> port = std::dynamic_pointer_cast<BackendPort>(port_handle);
|
||||
LatencyRange r;
|
||||
if (!valid_port (port)) {
|
||||
DEBUG_PORTS("BackendPort::get_latency_range (): invalid port.\n");
|
||||
DEBUG_PORTS ("PortAudioBackend::get_latency_range (): invalid port.\n");
|
||||
r.min = 0;
|
||||
r.max = 0;
|
||||
return r;
|
||||
|
@ -230,7 +230,7 @@ WinMMEMidiOutputDevice::start_midi_output_thread ()
|
||||
m_thread_quit = false;
|
||||
|
||||
// TODO Use native threads
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MIDI, PBD_RT_STACKSIZE_HELP,
|
||||
if (pbd_realtime_pthread_create ("WinMME Output", PBD_SCHED_FIFO, PBD_RT_PRI_MIDI, PBD_RT_STACKSIZE_HELP,
|
||||
&m_output_thread_handle, midi_output_thread, this)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -584,7 +584,7 @@ PulseAudioBackend::_start (bool /*for_latency_measurement*/)
|
||||
_run = true;
|
||||
_port_change_flag.store (0);
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("PulseAudio Main", PBD_SCHED_FIFO, PBD_RT_PRI_MAIN, PBD_RT_STACKSIZE_PROC,
|
||||
&_main_thread, pthread_process, this)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &_main_thread, pthread_process, this)) {
|
||||
PBD::error << _("PulseAudioBackend: failed to create process thread.") << endmsg;
|
||||
@ -703,7 +703,7 @@ PulseAudioBackend::create_process_thread (boost::function<void()> func)
|
||||
pthread_t thread_id;
|
||||
ThreadData* td = new ThreadData (this, func, PBD_RT_STACKSIZE_PROC);
|
||||
|
||||
if (pbd_realtime_pthread_create (PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
if (pbd_realtime_pthread_create ("PulseAudio Proc", PBD_SCHED_FIFO, PBD_RT_PRI_PROC, PBD_RT_STACKSIZE_PROC,
|
||||
&thread_id, pulse_process_thread, td)) {
|
||||
if (pbd_pthread_create (PBD_RT_STACKSIZE_PROC, &thread_id, pulse_process_thread, td)) {
|
||||
PBD::error << _("AudioEngine: cannot create process thread.") << endmsg;
|
||||
@ -895,7 +895,7 @@ PulseAudioBackend::set_latency_range (PortEngine::PortHandle port_handle, bool f
|
||||
{
|
||||
BackendPortPtr port = std::dynamic_pointer_cast<BackendPort> (port_handle);
|
||||
if (!valid_port (port)) {
|
||||
PBD::error << _("PulsePort::set_latency_range (): invalid port.") << endmsg;
|
||||
PBD::error << _("PulseAudioBackend::set_latency_range (): invalid port.") << endmsg;
|
||||
}
|
||||
port->set_latency_range (latency_range, for_playback);
|
||||
}
|
||||
@ -907,7 +907,7 @@ PulseAudioBackend::get_latency_range (PortEngine::PortHandle port_handle, bool f
|
||||
LatencyRange r;
|
||||
|
||||
if (!valid_port (port)) {
|
||||
PBD::error << _("PulsePort::get_latency_range (): invalid port.") << endmsg;
|
||||
PBD::error << _("PulseAudioBackend::get_latency_range (): invalid port.") << endmsg;
|
||||
r.min = 0;
|
||||
r.max = 0;
|
||||
return r;
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <string>
|
||||
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#include <objidl.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <signal.h>
|
||||
|
@ -35,6 +35,7 @@ def build(bld):
|
||||
autowaf.ensure_visible_symbols (obj, False)
|
||||
obj.export_includes = ['hidapi']
|
||||
obj.includes = ['hidapi']
|
||||
obj.defines = ['_POSIX_C_SOURCE=200809L']
|
||||
obj.name = 'hidapi'
|
||||
obj.target = 'hidapi'
|
||||
obj.vnum = HIDAPI_VERSION
|
||||
@ -51,7 +52,6 @@ def build(bld):
|
||||
obj.source = 'mac/hid.c'
|
||||
obj.framework = [ 'IOKit', 'CoreFoundation' ]
|
||||
else:
|
||||
# with '-strict' this needs "-std=gnu99" to compile w/o warnings
|
||||
obj.source = 'linux/hid.c'
|
||||
if re.search ("linux", sys.platform) != None:
|
||||
obj.uselib = 'UDEV'
|
||||
|
@ -176,7 +176,7 @@ typedef unsigned int nfds_t;
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
LIBPBD_API int __cdecl gettimeofday(struct timeval *__restrict tv, __timezone_ptr_t tz);
|
||||
LIBPBD_API int __cdecl gettimeofday(struct timeval *__restrict tv, __timezone_ptr_t tz) __THROW;
|
||||
LIBPBD_API ssize_t PBD_APICALLTYPE pread(int handle, void *buf, size_t nbytes, off_t offset);
|
||||
LIBPBD_API ssize_t PBD_APICALLTYPE pwrite(int handle, const void *buf, size_t nbytes, off_t offset);
|
||||
|
||||
|
@ -58,6 +58,7 @@
|
||||
# define PBD_RT_PRI_MIDI pbd_pthread_priority (THREAD_MIDI)
|
||||
# define PBD_RT_PRI_PROC pbd_pthread_priority (THREAD_PROC)
|
||||
# define PBD_RT_PRI_CTRL pbd_pthread_priority (THREAD_CTRL)
|
||||
# define PBD_RT_PRI_IOFX pbd_pthread_priority (THREAD_IOFX)
|
||||
|
||||
LIBPBD_API int pthread_create_and_store (std::string name, pthread_t *thread, void * (*start_routine)(void *), void * arg, uint32_t stacklimit = 0x80000 /*512kB*/);
|
||||
LIBPBD_API void pthread_cancel_one (pthread_t thread);
|
||||
@ -73,7 +74,7 @@ enum PBDThreadClass {
|
||||
THREAD_MIDI, // MIDI I/O threads
|
||||
THREAD_PROC, // realtime worker
|
||||
THREAD_CTRL, // Automation watch, BaseUI
|
||||
THREAD_IO // non-realtime I/O
|
||||
THREAD_IOFX // non-realtime I/O and regionFX
|
||||
};
|
||||
|
||||
LIBPBD_API int pbd_pthread_priority (PBDThreadClass);
|
||||
@ -86,6 +87,7 @@ LIBPBD_API int pbd_pthread_create (
|
||||
|
||||
|
||||
LIBPBD_API int pbd_realtime_pthread_create (
|
||||
std::string const& debug_name,
|
||||
const int policy, int priority, const size_t stacksize,
|
||||
pthread_t *thread,
|
||||
void *(*start_routine) (void *),
|
||||
|
@ -348,7 +348,7 @@ pbd_pthread_priority (PBDThreadClass which)
|
||||
case THREAD_CTRL:
|
||||
default:
|
||||
return -14; // THREAD_PRIORITY_HIGHEST (2)
|
||||
case THREAD_IO:
|
||||
case THREAD_IOFX:
|
||||
/* https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-libraries/winpthreads/src/sched.c */
|
||||
return -15; // THREAD_PRIORITY_ABOVE_NORMAL (1)
|
||||
}
|
||||
@ -372,7 +372,7 @@ pbd_pthread_priority (PBDThreadClass which)
|
||||
return base - 2;
|
||||
case THREAD_CTRL:
|
||||
return base - 3;
|
||||
case THREAD_IO:
|
||||
case THREAD_IOFX:
|
||||
return base - 10;
|
||||
}
|
||||
#endif
|
||||
@ -396,6 +396,7 @@ pbd_absolute_rt_priority (int policy, int priority)
|
||||
|
||||
int
|
||||
pbd_realtime_pthread_create (
|
||||
std::string const& debug_name,
|
||||
const int policy, int priority, const size_t stacksize,
|
||||
pthread_t* thread,
|
||||
void* (*start_routine) (void*),
|
||||
@ -416,7 +417,7 @@ pbd_realtime_pthread_create (
|
||||
if (stacksize > 0) {
|
||||
pthread_attr_setstacksize (&attr, stacksize + pbd_stack_size ());
|
||||
}
|
||||
DEBUG_TRACE (PBD::DEBUG::Threads, string_compose ("Start Realtime Thread policy = %1 priority = %2 stacksize = 0x%3%4\n", policy, parm.sched_priority, std::hex, stacksize));
|
||||
DEBUG_TRACE (PBD::DEBUG::Threads, string_compose ("Start RT Thread: '%1' policy = %2 priority = %3 stacksize = 0x%4%5\n", debug_name, policy, parm.sched_priority, std::hex, stacksize));
|
||||
rv = pthread_create (thread, &attr, start_routine, arg);
|
||||
pthread_attr_destroy (&attr);
|
||||
|
||||
|
@ -117,7 +117,7 @@ FaderPort8::probe (std::string& i, std::string& o)
|
||||
#elif defined FADERPORT2
|
||||
"PreSonus FP2"
|
||||
#else
|
||||
"PreSonus FP8"
|
||||
"PreSonus FP8 Port 1"
|
||||
#endif
|
||||
;
|
||||
|
||||
@ -465,7 +465,7 @@ FaderPort8::connection_handler (std::string name1, std::string name2)
|
||||
string no = ARDOUR::AudioEngine::instance()->make_port_name_non_relative (std::shared_ptr<ARDOUR::Port>(_output_port)->name());
|
||||
|
||||
if (ni == name1 || ni == name2) {
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connection notify %1 and %2\n", name1, name2));
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connection notify inputs '%1' and '%2'\n", name1, name2));
|
||||
if (_input_port->connected ()) {
|
||||
if (_connection_state & InputConnected) {
|
||||
return false;
|
||||
@ -475,7 +475,7 @@ FaderPort8::connection_handler (std::string name1, std::string name2)
|
||||
_connection_state &= ~InputConnected;
|
||||
}
|
||||
} else if (no == name1 || no == name2) {
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connection notify %1 and %2\n", name1, name2));
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connection notify outputs '%1' and '%2'\n", name1, name2));
|
||||
if (_output_port->connected ()) {
|
||||
if (_connection_state & OutputConnected) {
|
||||
return false;
|
||||
@ -486,7 +486,7 @@ FaderPort8::connection_handler (std::string name1, std::string name2)
|
||||
}
|
||||
} else {
|
||||
#ifdef VERBOSE_DEBUG
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connections between %1 and %2 changed, but I ignored it\n", name1, name2));
|
||||
DEBUG_TRACE (DEBUG::FaderPort8, string_compose ("Connections between '%1' and '%2' changed, but I ignored it\n", name1, name2));
|
||||
#endif
|
||||
/* not our ports */
|
||||
return false;
|
||||
|
@ -57,6 +57,8 @@ SliderController::SliderController (Gtk::Adjustment *adj, std::shared_ptr<PBD::C
|
||||
_spin_adj.set_page_increment(_ctrl->interface_to_internal(adj->get_page_increment()) - _ctrl->lower ());
|
||||
}
|
||||
|
||||
ctrl_adjusted ();
|
||||
|
||||
adj->signal_value_changed().connect (sigc::mem_fun(*this, &SliderController::ctrl_adjusted));
|
||||
_spin_adj.signal_value_changed().connect (sigc::mem_fun(*this, &SliderController::spin_adjusted));
|
||||
|
||||
|
53
share/midi_maps/M-Audio_Axiom_49_mkII.map
Normal file
53
share/midi_maps/M-Audio_Axiom_49_mkII.map
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ArdourMIDIBindings version="1.0.0" name="M-Audio Axiom 49 MkII">
|
||||
|
||||
<!-- 2015-04-25 Edgar Aichinger: initial version for Axiom 61 -->
|
||||
<!-- 2024-10-14 Francois-Xavier Thomas: adaptation for Axiom 49 MkII -->
|
||||
<!-- I'm assuming Factory default, preset/patch 1 in the Axiom 49 MkII. -->
|
||||
|
||||
<!-- Faders, mapped to track faders 1-8 and Master -->
|
||||
|
||||
<Binding channel="1" ctl="74" uri="/route/gain 1"/>
|
||||
<Binding channel="1" ctl="71" uri="/route/gain 2"/>
|
||||
<Binding channel="1" ctl="91" uri="/route/gain 3"/>
|
||||
<Binding channel="1" ctl="93" uri="/route/gain 4"/>
|
||||
<Binding channel="1" ctl="73" uri="/route/gain 5"/>
|
||||
<Binding channel="1" ctl="72" uri="/route/gain 6"/>
|
||||
<Binding channel="1" ctl="5" uri="/route/gain 7"/>
|
||||
<Binding channel="1" ctl="84" uri="/route/gain 8"/>
|
||||
<Binding channel="1" ctl="7" uri="/bus/gain master"/>
|
||||
|
||||
<!-- Zone/Group buttons, below the faders -->
|
||||
<!-- these toggle record for the corresponding tracks (1-8) and metronome/click on the rightmost button -->
|
||||
|
||||
<Binding channel="1" pgm="0" uri="/route/recenable 1"/>
|
||||
<Binding channel="1" pgm="1" uri="/route/recenable 2"/>
|
||||
<Binding channel="1" pgm="2" uri="/route/recenable 3"/>
|
||||
<Binding channel="1" pgm="3" uri="/route/recenable 4"/>
|
||||
<Binding channel="1" pgm="4" uri="/route/recenable 5"/>
|
||||
<Binding channel="1" pgm="5" uri="/route/recenable 6"/>
|
||||
<Binding channel="1" pgm="6" uri="/route/recenable 7"/>
|
||||
<Binding channel="1" pgm="7" uri="/route/recenable 8"/>
|
||||
<Binding channel="1" pgm="8" action="Transport/ToggleClick"/>
|
||||
|
||||
<!-- Encoders, mapped to pan direction. -->
|
||||
|
||||
<Binding channel="1" ctl="75" uri="/route/pandirection 1"/>
|
||||
<Binding channel="1" ctl="76" uri="/route/pandirection 2"/>
|
||||
<Binding channel="1" ctl="92" uri="/route/pandirection 3"/>
|
||||
<Binding channel="1" ctl="95" uri="/route/pandirection 4"/>
|
||||
<Binding channel="1" ctl="10" uri="/route/pandirection 5"/>
|
||||
<Binding channel="1" ctl="77" uri="/route/pandirection 6"/>
|
||||
<Binding channel="1" ctl="78" uri="/route/pandirection 7"/>
|
||||
<Binding channel="1" ctl="79" uri="/route/pandirection 8"/>
|
||||
|
||||
<!-- Transport controls -->
|
||||
|
||||
<Binding channel="16" ctl="114" action="Common/jump-backward-to-mark"/>
|
||||
<Binding channel="16" ctl="115" action="Common/jump-forward-to-mark"/>
|
||||
<Binding channel="16" ctl="116" function="transport-stop"/>
|
||||
<Binding channel="16" ctl="117" function="transport-roll"/>
|
||||
<Binding channel="16" ctl="113" function="loop-toggle"/>
|
||||
<Binding channel="16" ctl="118" function="toggle-rec-enable"/>
|
||||
|
||||
</ArdourMIDIBindings>
|
37
share/scripts/duplicate_to_grid.lua
Normal file
37
share/scripts/duplicate_to_grid.lua
Normal file
@ -0,0 +1,37 @@
|
||||
ardour {
|
||||
["type"] = "EditorAction",
|
||||
name = "Duplicate to grid",
|
||||
version = "0.1.0",
|
||||
license = "MIT",
|
||||
author = "Daniel Appelt",
|
||||
description = [[Duplicate region to grid]]
|
||||
}
|
||||
|
||||
function factory () return function ()
|
||||
-- Get first selected region
|
||||
local regionList = Editor:get_selection().regions:regionlist()
|
||||
local region = regionList:front()
|
||||
|
||||
-- Bail out if no region was selected
|
||||
if region:isnil() then
|
||||
LuaDialog.Message("Duplicate to grid", "Please select a region first!",
|
||||
LuaDialog.MessageType.Info, LuaDialog.ButtonType.Close):run()
|
||||
return
|
||||
end
|
||||
|
||||
-- Create duplicate of region
|
||||
local playlist = region:playlist()
|
||||
local curPos = region:position()
|
||||
local curBeat = Editor:get_grid_type_as_beats(true, curPos)
|
||||
local nextPos = Temporal.timepos_t.from_ticks(curPos:ticks() + curBeat:to_ticks())
|
||||
-- gap could be used to create mulitple duplicates at once
|
||||
local gap = Temporal.timecnt_t.from_ticks(curBeat:to_ticks())
|
||||
playlist:duplicate(region, nextPos, gap, 1)
|
||||
|
||||
-- Change selection to duplicate to allow repeated application
|
||||
local selectionList = ArdourUI.SelectionList()
|
||||
region = playlist:find_next_region(curPos, ARDOUR.RegionPoint.Start, 1)
|
||||
local regionView = Editor:regionview_from_region(region)
|
||||
selectionList:push_back(regionView)
|
||||
Editor:set_selection(selectionList, ArdourUI.SelectionOp.Set)
|
||||
end end
|
@ -8,7 +8,7 @@ function factory (params) return function ()
|
||||
local pos = Temporal.timepos_t(0)
|
||||
Editor:do_import (files,
|
||||
Editing.ImportDistinctFiles, Editing.ImportAsTrack, ARDOUR.SrcQuality.SrcBest,
|
||||
ARDOUR.MidiTrackNameSource.SMFTrackName, ARDOUR.MidiTempoMapDisposition.SMFTempoIgnore,
|
||||
ARDOUR.MidiTrackNameSource.SMFFileAndTrackName, ARDOUR.MidiTempoMapDisposition.SMFTempoIgnore,
|
||||
pos, ARDOUR.PluginInfo(), ARDOUR.Track(), false)
|
||||
|
||||
end end
|
||||
|
@ -76,6 +76,7 @@ while [ $# -gt 0 ] ; do
|
||||
STRIP=all ;
|
||||
WITH_NLS=1 ;
|
||||
APPNAME=LiveTrax ;
|
||||
EXENAME=LiveTrax ;
|
||||
shift ;;
|
||||
--vbm)
|
||||
VBM=1
|
||||
|
115
wscript
115
wscript
@ -195,6 +195,48 @@ def fetch_tarball_revision_date():
|
||||
|
||||
return rev, date
|
||||
|
||||
def parse_macos_version(version):
|
||||
# The [.] matches to the dot after the major version, "." would match any character
|
||||
if re.search ("^[0-7][.]", version) is not None:
|
||||
return 'panther'
|
||||
elif re.search ("^8[.]", version) is not None:
|
||||
return 'tiger'
|
||||
elif re.search ("^9[.]", version) is not None:
|
||||
return 'leopard'
|
||||
elif re.search ("^10[.]", version) is not None:
|
||||
return 'snowleopard'
|
||||
elif re.search ("^11[.]", version) is not None:
|
||||
return 'lion'
|
||||
elif re.search ("^12[.]", version) is not None:
|
||||
return 'mountainlion'
|
||||
elif re.search ("^13[.]", version) is not None:
|
||||
return 'mavericks'
|
||||
elif re.search ("^14[.]", version) is not None:
|
||||
return 'yosemite'
|
||||
elif re.search ("^15[.]", version) is not None:
|
||||
return 'el_capitan'
|
||||
elif re.search ("^16[.]", version) is not None:
|
||||
return 'sierra'
|
||||
elif re.search ("^17[.]", version) is not None:
|
||||
return 'high_sierra'
|
||||
elif re.search ("^18[.]", version) is not None:
|
||||
return 'mojave'
|
||||
elif re.search ("^19[.]", version) is not None:
|
||||
return 'catalina'
|
||||
elif re.search ("^20[.]", version) is not None:
|
||||
return 'bigsur'
|
||||
elif re.search ("^21[.]", version) is not None:
|
||||
return 'monterey'
|
||||
elif re.search ("^22[.]", version) is not None:
|
||||
return 'ventura'
|
||||
elif re.search ("^23[.]", version) is not None:
|
||||
return 'sonoma'
|
||||
elif re.search ("^24[.]", version) is not None:
|
||||
return 'sequoia'
|
||||
else:
|
||||
return 'sequoia'
|
||||
|
||||
|
||||
def set_version (from_file = False):
|
||||
def sanitize(s):
|
||||
# round-trip to remove anything in the string that is not encodable in
|
||||
@ -458,75 +500,12 @@ int main() { return 0; }''',
|
||||
|
||||
# OSX
|
||||
if platform == 'darwin':
|
||||
if re.search ("^13[.]", version) is not None:
|
||||
conf.env['build_host'] = 'mavericks'
|
||||
elif re.search ("^14[.]", version) is not None:
|
||||
conf.env['build_host'] = 'yosemite'
|
||||
elif re.search ("^15[.]", version) is not None:
|
||||
conf.env['build_host'] = 'el_capitan'
|
||||
elif re.search ("^16[.]", version) is not None:
|
||||
conf.env['build_host'] = 'sierra'
|
||||
elif re.search ("^17[.]", version) is not None:
|
||||
conf.env['build_host'] = 'high_sierra'
|
||||
elif re.search ("^18[.]", version) is not None:
|
||||
conf.env['build_host'] = 'mojave'
|
||||
elif re.search ("^19[.]", version) is not None:
|
||||
conf.env['build_host'] = 'catalina'
|
||||
elif re.search ("^20[.]", version) is not None:
|
||||
conf.env['build_host'] = 'bigsur'
|
||||
elif re.search ("^21[.]", version) is not None:
|
||||
conf.env['build_host'] = 'monterey'
|
||||
elif re.search ("^22[.]", version) is not None:
|
||||
conf.env['build_host'] = 'ventura'
|
||||
elif re.search ("^23[.]", version) is not None:
|
||||
conf.env['build_host'] = 'sonoma'
|
||||
elif re.search ("^24[.]", version) is not None:
|
||||
conf.env['build_host'] = 'sequoia'
|
||||
else:
|
||||
conf.env['build_host'] = 'irrelevant'
|
||||
conf.env['build_host'] = parse_macos_version (version)
|
||||
|
||||
# Autodetect
|
||||
if opt.dist_target == 'auto':
|
||||
if platform == 'darwin':
|
||||
# The [.] matches to the dot after the major version, "." would match any character
|
||||
if re.search ("^[0-7][.]", version) is not None:
|
||||
conf.env['build_target'] = 'panther'
|
||||
elif re.search ("^8[.]", version) is not None:
|
||||
conf.env['build_target'] = 'tiger'
|
||||
elif re.search ("^9[.]", version) is not None:
|
||||
conf.env['build_target'] = 'leopard'
|
||||
elif re.search ("^10[.]", version) is not None:
|
||||
conf.env['build_target'] = 'snowleopard'
|
||||
elif re.search ("^11[.]", version) is not None:
|
||||
conf.env['build_target'] = 'lion'
|
||||
elif re.search ("^12[.]", version) is not None:
|
||||
conf.env['build_target'] = 'mountainlion'
|
||||
elif re.search ("^13[.]", version) is not None:
|
||||
conf.env['build_target'] = 'mavericks'
|
||||
elif re.search ("^14[.]", version) is not None:
|
||||
conf.env['build_target'] = 'yosemite'
|
||||
elif re.search ("^15[.]", version) is not None:
|
||||
conf.env['build_target'] = 'el_capitan'
|
||||
elif re.search ("^16[.]", version) is not None:
|
||||
conf.env['build_target'] = 'sierra'
|
||||
elif re.search ("^17[.]", version) is not None:
|
||||
conf.env['build_target'] = 'high_sierra'
|
||||
elif re.search ("^18[.]", version) is not None:
|
||||
conf.env['build_target'] = 'mojave'
|
||||
elif re.search ("^19[.]", version) is not None:
|
||||
conf.env['build_target'] = 'catalina'
|
||||
elif re.search ("^20[.]", version) is not None:
|
||||
conf.env['build_target'] = 'bigsur'
|
||||
elif re.search ("^21[.]", version) is not None:
|
||||
conf.env['build_target'] = 'monterey'
|
||||
elif re.search ("^22[.]", version) is not None:
|
||||
conf.env['build_target'] = 'ventura'
|
||||
elif re.search ("^23[.]", version) is not None:
|
||||
conf.env['build_target'] = 'sonoma'
|
||||
elif re.search ("^24[.]", version) is not None:
|
||||
conf.env['build_target'] = 'sequoia'
|
||||
else:
|
||||
conf.env['build_target'] = 'catalina'
|
||||
conf.env['build_target'] = parse_macos_version (version)
|
||||
else:
|
||||
match = re.search(
|
||||
"(?P<cpu>i[0-6]86|x86_64|powerpc|ppc|ppc64|arm|s390x?)",
|
||||
@ -736,9 +715,9 @@ int main() { return 0; }''',
|
||||
|
||||
elif conf.env['build_target'] in ['bigsur'] and not opt.arm64:
|
||||
compiler_flags.extend(
|
||||
("-DMAC_OS_X_VERSION_MAX_ALLOWED=101100",
|
||||
"-mmacosx-version-min=10.11"))
|
||||
linker_flags.append("-mmacosx-version-min=10.11")
|
||||
("-DMAC_OS_X_VERSION_MAX_ALLOWED=101300",
|
||||
"-mmacosx-version-min=10.13"))
|
||||
linker_flags.append("-mmacosx-version-min=10.13")
|
||||
|
||||
elif conf.env['build_target'] in ['bigsur', 'monterey', 'ventura', 'sonoma', 'sequoia']:
|
||||
compiler_flags.extend(
|
||||
|
Loading…
Reference in New Issue
Block a user