#include <glibmm/miscutils.h>
#include "ardour/ardour.h"
+#include "ardour/audio_unit.h"
#include "ardour/audioengine.h"
#include "ardour/audio_buffer.h"
#include "ardour/debug.h"
-#include "ardour/midi_buffer.h"
#include "ardour/filesystem_paths.h"
#include "ardour/io.h"
-#include "ardour/audio_unit.h"
+#include "ardour/midi_buffer.h"
#include "ardour/route.h"
#include "ardour/session.h"
#include "ardour/tempo.h"
, input_buffers (0)
, input_map (0)
, samples_processed (0)
+ , audio_input_cnt (0)
, _parameter_listener (0)
, _parameter_listener_arg (0)
, transport_sample (0)
for (vector<pair<int,int> >::const_iterator i = ioc.begin(); i != ioc.end(); ++i) {
int32_t possible_in = i->first;
int32_t possible_out = i->second;
- if (possible_in < 1 || possible_out < 1) {
+ if (possible_in < 0) {
continue;
}
for (uint32_t i = 1; i < input_elements; ++i) {
// on the 2nd bus.
io_configs.push_back (pair<int,int> (possible_in + bus_inputs[i], possible_out));
}
+ /* only add additional, optional busses to first available config.
+ * AUPluginInfo::cached_io_configuration () already incrementally
+ * adds busses (for instruments w/ multiple configurations)
+ */
+ break;
}
}
for (vector<pair<int,int> >::const_iterator i = ioc.begin(); i != ioc.end(); ++i) {
int32_t possible_in = i->first;
int32_t possible_out = i->second;
- if (possible_in < 1 || possible_out < 1) {
+ if (possible_out < 0) {
continue;
}
for (uint32_t i = 1; i < output_elements; ++i) {
}
io_configs.push_back (pair<int,int> (possible_in, possible_out + c));
}
+ /* only add additional, optional busses to first available config.
+ * AUPluginInfo::cached_io_configuration () already incrementally
+ * adds busses (for instruments w/ multiple configurations)
+ */
+ break;
}
}
int
AUPlugin::connect_and_run (BufferSet& bufs,
samplepos_t start, samplepos_t end, double speed,
- ChanMapping in_map, ChanMapping out_map,
+ ChanMapping const& in_map, ChanMapping const& out_map,
pframes_t nframes, samplecnt_t offset)
{
Plugin::connect_and_run(bufs, start, end, speed, in_map, out_map, nframes, offset);
DEBUG_TRACE (DEBUG::AudioUnits, string_compose("AU Saving Preset to %1\n", user_preset_path));
- return string ("file:///") + user_preset_path;
+ return user_preset_path;
}
//-----------------------------------------------------------------------------
continue;
case kAudioUnitType_Output:
- info->category = _("AudioUnit Output");
+ info->category = _("Output");
break;
case kAudioUnitType_MusicDevice:
info->category = _("Instrument");
has_midi_in = true;
break;
case kAudioUnitType_MusicEffect:
- info->category = _("Music Effect");
+ info->category = _("Effect");
has_midi_in = true;
break;
case kAudioUnitType_Effect:
info->category = _("Generator");
break;
default:
- info->category = _("AudioUnit (Unknown)");
+ info->category = _("(Unknown)");
break;
}
return descriptor->IsMusicDevice();
}
+bool
+AUPluginInfo::is_utility () const
+{
+ return (descriptor->IsGenerator() || descriptor->componentType == 'aumi');
+ // kAudioUnitType_MidiProcessor ..looks like we aren't even scanning for these yet?
+}
+
void
AUPlugin::set_info (PluginInfoPtr info)
{