Merge branch 'ardour'
This commit is contained in:
commit
84868b42df
@ -696,11 +696,13 @@ SoundFileBrowser::SoundFileBrowser (string title, ARDOUR::Session* s, bool persi
|
||||
|
||||
chooser.set_border_width (12);
|
||||
|
||||
audio_and_midi_filter.add_custom (FILE_FILTER_FILENAME, sigc::mem_fun (*this, &SoundFileBrowser::on_audio_and_midi_filter));
|
||||
audio_and_midi_filter.set_name (_("Audio and MIDI files"));
|
||||
|
||||
audio_filter.add_custom (FILE_FILTER_FILENAME, sigc::mem_fun(*this, &SoundFileBrowser::on_audio_filter));
|
||||
audio_filter.set_name (_("Audio files"));
|
||||
chooser.add_filter (audio_filter);
|
||||
|
||||
#ifndef LIVETRAX
|
||||
audio_and_midi_filter.add_custom (FILE_FILTER_FILENAME, sigc::mem_fun (*this, &SoundFileBrowser::on_audio_and_midi_filter));
|
||||
audio_and_midi_filter.set_name (_("Audio and MIDI files"));
|
||||
|
||||
midi_filter.add_custom (FILE_FILTER_FILENAME, sigc::mem_fun(*this, &SoundFileBrowser::on_midi_filter));
|
||||
midi_filter.set_name (_("MIDI files"));
|
||||
@ -709,9 +711,9 @@ SoundFileBrowser::SoundFileBrowser (string title, ARDOUR::Session* s, bool persi
|
||||
matchall_filter.set_name (_("All files"));
|
||||
|
||||
chooser.add_filter (audio_and_midi_filter);
|
||||
chooser.add_filter (audio_filter);
|
||||
chooser.add_filter (midi_filter);
|
||||
chooser.add_filter (matchall_filter);
|
||||
#endif
|
||||
chooser.set_select_multiple (true);
|
||||
chooser.signal_update_preview().connect(sigc::mem_fun(*this, &SoundFileBrowser::update_preview));
|
||||
chooser.signal_file_activated().connect (sigc::mem_fun (*this, &SoundFileBrowser::chooser_file_activated));
|
||||
@ -736,6 +738,7 @@ SoundFileBrowser::SoundFileBrowser (string title, ARDOUR::Session* s, bool persi
|
||||
|
||||
add (vpacker);
|
||||
|
||||
#ifndef LIVETRAX
|
||||
//add tag search
|
||||
|
||||
VBox* vbox;
|
||||
@ -870,6 +873,7 @@ SoundFileBrowser::SoundFileBrowser (string title, ARDOUR::Session* s, bool persi
|
||||
freesound_more_btn.signal_clicked().connect(sigc::mem_fun(*this, &SoundFileBrowser::freesound_more_clicked));
|
||||
freesound_similar_btn.signal_clicked().connect(sigc::mem_fun(*this, &SoundFileBrowser::freesound_similar_clicked));
|
||||
notebook.append_page (*vbox, _("Search Freesound"));
|
||||
#endif
|
||||
|
||||
notebook.set_size_request (500, -1);
|
||||
notebook.signal_switch_page().connect (sigc::hide_return (sigc::hide (sigc::hide (sigc::mem_fun (*this, &SoundFileBrowser::reset_options)))));
|
||||
@ -1951,6 +1955,7 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||
vspace->set_size_request (16, 2);
|
||||
options.attach (*vspace, 2, 3, 6, 7, SHRINK, SHRINK, 0, 0);
|
||||
|
||||
#ifndef LIVETRAX
|
||||
l = manage (new Label);
|
||||
l->set_markup (_("<b>MIDI Instrument:</b>"));
|
||||
l->set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
|
||||
@ -1962,7 +1967,7 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||
l->set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
|
||||
options.attach (*l, 3, 4, 1, 2, FILL, SHRINK, 4, 0);
|
||||
options.attach (midi_track_name_combo, 4, 5, 1, 2, FILL, SHRINK, 2, 0);
|
||||
|
||||
#endif
|
||||
options.attach (smf_tempo_btn, 4, 5, 2, 3, FILL, SHRINK, 2, 0);
|
||||
options.attach (smf_marker_btn, 4, 5, 3, 4, FILL, SHRINK, 2, 0);
|
||||
|
||||
|
@ -41,7 +41,6 @@ struct _VstMidiEvent;
|
||||
typedef struct _VstMidiEvent VstMidiEvent;
|
||||
#endif
|
||||
|
||||
typedef struct LV2_Evbuf_Impl LV2_Evbuf;
|
||||
|
||||
namespace ARDOUR {
|
||||
|
||||
@ -50,6 +49,8 @@ class AudioBuffer;
|
||||
class MidiBuffer;
|
||||
class PortSet;
|
||||
|
||||
struct LV2_Evbuf;
|
||||
|
||||
/** A set of buffers of various types.
|
||||
*
|
||||
* These are mainly accessed from Session and passed around as scratch buffers
|
||||
|
@ -14,21 +14,16 @@
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef LV2_EVBUF_H
|
||||
#define LV2_EVBUF_H
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#else
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
namespace ARDOUR {
|
||||
|
||||
/**
|
||||
An abstract/opaque LV2 event buffer.
|
||||
*/
|
||||
typedef struct LV2_Evbuf_Impl LV2_Evbuf;
|
||||
struct LV2_Evbuf;
|
||||
|
||||
/**
|
||||
An iterator over an LV2_Evbuf.
|
||||
@ -140,8 +135,4 @@ lv2_evbuf_write(LV2_Evbuf_Iterator* iter,
|
||||
uint32_t size,
|
||||
const uint8_t* data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* LV2_EVBUF_H */
|
@ -46,7 +46,6 @@
|
||||
#define PATH_MAX 1024
|
||||
#endif
|
||||
|
||||
typedef struct LV2_Evbuf_Impl LV2_Evbuf;
|
||||
|
||||
namespace ARDOUR {
|
||||
|
||||
@ -59,6 +58,7 @@ const void* lv2plugin_get_port_value(const char* port_symbol,
|
||||
|
||||
class AudioEngine;
|
||||
class Session;
|
||||
struct LV2_Evbuf;
|
||||
|
||||
class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
|
||||
{
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "ardour/port.h"
|
||||
#include "ardour/port_set.h"
|
||||
#include "ardour/lv2_plugin.h"
|
||||
#include "lv2_evbuf.h"
|
||||
#include "ardour/lv2_evbuf.h"
|
||||
#include "ardour/uri_map.h"
|
||||
#if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT
|
||||
#include "ardour/vestige/vestige.h"
|
||||
|
@ -26,12 +26,16 @@
|
||||
#include <lv2/lv2plug.in/ns/ext/event/event.h>
|
||||
#endif
|
||||
|
||||
#include "lv2_evbuf.h"
|
||||
#include "pbd/malign.h"
|
||||
#include "ardour/lv2_evbuf.h"
|
||||
|
||||
struct LV2_Evbuf_Impl {
|
||||
using namespace ARDOUR;
|
||||
|
||||
struct ARDOUR::LV2_Evbuf {
|
||||
uint32_t capacity;
|
||||
uint32_t atom_Chunk;
|
||||
uint32_t atom_Sequence;
|
||||
uint32_t pad; // for 8byte alignment
|
||||
LV2_Atom_Sequence atom;
|
||||
};
|
||||
|
||||
@ -42,13 +46,20 @@ lv2_evbuf_pad_size(uint32_t size)
|
||||
}
|
||||
|
||||
LV2_Evbuf*
|
||||
lv2_evbuf_new(uint32_t capacity,
|
||||
uint32_t atom_Chunk,
|
||||
uint32_t atom_Sequence)
|
||||
ARDOUR::lv2_evbuf_new (uint32_t capacity,
|
||||
uint32_t atom_Chunk,
|
||||
uint32_t atom_Sequence)
|
||||
{
|
||||
// FIXME: memory must be 64-bit aligned
|
||||
LV2_Evbuf* evbuf = (LV2_Evbuf*)malloc(
|
||||
sizeof(LV2_Evbuf) + sizeof(LV2_Atom_Sequence) + capacity);
|
||||
LV2_Evbuf* evbuf;
|
||||
|
||||
int err = cache_aligned_malloc ((void**) &evbuf, sizeof(LV2_Evbuf) + sizeof(LV2_Atom_Sequence) + capacity);
|
||||
|
||||
if (err) {
|
||||
//fatal << string_compose (_("Memory allocation error: (%1)"), strerror (err)) << endmsg;
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
evbuf->capacity = capacity;
|
||||
evbuf->atom_Chunk = atom_Chunk;
|
||||
evbuf->atom_Sequence = atom_Sequence;
|
||||
@ -57,13 +68,13 @@ lv2_evbuf_new(uint32_t capacity,
|
||||
}
|
||||
|
||||
void
|
||||
lv2_evbuf_free(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_free (LV2_Evbuf* evbuf)
|
||||
{
|
||||
free(evbuf);
|
||||
cache_aligned_free (evbuf);
|
||||
}
|
||||
|
||||
void
|
||||
lv2_evbuf_reset(LV2_Evbuf* evbuf, bool input)
|
||||
ARDOUR::lv2_evbuf_reset (LV2_Evbuf* evbuf, bool input)
|
||||
{
|
||||
if (input) {
|
||||
evbuf->atom.atom.size = sizeof(LV2_Atom_Sequence_Body);
|
||||
@ -75,7 +86,7 @@ lv2_evbuf_reset(LV2_Evbuf* evbuf, bool input)
|
||||
}
|
||||
|
||||
uint32_t
|
||||
lv2_evbuf_get_size(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_get_size (LV2_Evbuf* evbuf)
|
||||
{
|
||||
assert(evbuf->atom.atom.type != evbuf->atom_Sequence
|
||||
|| evbuf->atom.atom.size >= sizeof(LV2_Atom_Sequence_Body));
|
||||
@ -86,26 +97,26 @@ lv2_evbuf_get_size(LV2_Evbuf* evbuf)
|
||||
}
|
||||
|
||||
uint32_t
|
||||
lv2_evbuf_get_capacity(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_get_capacity (LV2_Evbuf* evbuf)
|
||||
{
|
||||
return evbuf->capacity;
|
||||
}
|
||||
|
||||
void*
|
||||
lv2_evbuf_get_buffer(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_get_buffer (LV2_Evbuf* evbuf)
|
||||
{
|
||||
return &evbuf->atom;
|
||||
}
|
||||
|
||||
LV2_Evbuf_Iterator
|
||||
lv2_evbuf_begin(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_begin (LV2_Evbuf* evbuf)
|
||||
{
|
||||
LV2_Evbuf_Iterator iter = { evbuf, 0 };
|
||||
return iter;
|
||||
}
|
||||
|
||||
LV2_Evbuf_Iterator
|
||||
lv2_evbuf_end(LV2_Evbuf* evbuf)
|
||||
ARDOUR::lv2_evbuf_end (LV2_Evbuf* evbuf)
|
||||
{
|
||||
const uint32_t size = lv2_evbuf_get_size(evbuf);
|
||||
const LV2_Evbuf_Iterator iter = { evbuf, lv2_evbuf_pad_size(size) };
|
||||
@ -113,13 +124,13 @@ lv2_evbuf_end(LV2_Evbuf* evbuf)
|
||||
}
|
||||
|
||||
bool
|
||||
lv2_evbuf_is_valid(LV2_Evbuf_Iterator iter)
|
||||
ARDOUR::lv2_evbuf_is_valid(LV2_Evbuf_Iterator iter)
|
||||
{
|
||||
return iter.offset < lv2_evbuf_get_size(iter.evbuf);
|
||||
}
|
||||
|
||||
LV2_Evbuf_Iterator
|
||||
lv2_evbuf_next(LV2_Evbuf_Iterator iter)
|
||||
ARDOUR::lv2_evbuf_next (LV2_Evbuf_Iterator iter)
|
||||
{
|
||||
if (!lv2_evbuf_is_valid(iter)) {
|
||||
return iter;
|
||||
@ -140,12 +151,12 @@ lv2_evbuf_next(LV2_Evbuf_Iterator iter)
|
||||
}
|
||||
|
||||
bool
|
||||
lv2_evbuf_get(LV2_Evbuf_Iterator iter,
|
||||
uint32_t* samples,
|
||||
uint32_t* subframes,
|
||||
uint32_t* type,
|
||||
uint32_t* size,
|
||||
uint8_t** data)
|
||||
ARDOUR::lv2_evbuf_get (LV2_Evbuf_Iterator iter,
|
||||
uint32_t* samples,
|
||||
uint32_t* subframes,
|
||||
uint32_t* type,
|
||||
uint32_t* size,
|
||||
uint8_t** data)
|
||||
{
|
||||
*samples = *subframes = *type = *size = 0;
|
||||
*data = NULL;
|
||||
@ -168,12 +179,12 @@ lv2_evbuf_get(LV2_Evbuf_Iterator iter,
|
||||
}
|
||||
|
||||
bool
|
||||
lv2_evbuf_write(LV2_Evbuf_Iterator* iter,
|
||||
uint32_t samples,
|
||||
uint32_t subframes,
|
||||
uint32_t type,
|
||||
uint32_t size,
|
||||
const uint8_t* data)
|
||||
ARDOUR::lv2_evbuf_write (LV2_Evbuf_Iterator* iter,
|
||||
uint32_t samples,
|
||||
uint32_t subframes,
|
||||
uint32_t type,
|
||||
uint32_t size,
|
||||
const uint8_t* data)
|
||||
{
|
||||
LV2_Atom_Sequence* aseq = (LV2_Atom_Sequence*)&iter->evbuf->atom;
|
||||
|
@ -64,6 +64,7 @@
|
||||
#include "ardour/audioengine.h"
|
||||
#include "ardour/directory_names.h"
|
||||
#include "ardour/debug.h"
|
||||
#include "ardour/lv2_evbuf.h"
|
||||
#include "ardour/lv2_plugin.h"
|
||||
#include "ardour/midi_patch_manager.h"
|
||||
#include "ardour/session.h"
|
||||
@ -116,8 +117,6 @@
|
||||
#include <lv2/lv2plug.in/ns/ext/options/options.h>
|
||||
#endif
|
||||
|
||||
#include "lv2_evbuf.h"
|
||||
|
||||
#ifdef HAVE_SUIL
|
||||
#include <suil/suil.h>
|
||||
#endif
|
||||
|
@ -4979,7 +4979,6 @@ Session::remove_source (std::weak_ptr<Source> src, bool drop_references)
|
||||
|
||||
SourceRemoved (src); /* EMIT SIGNAL */
|
||||
if (drop_references) {
|
||||
printf ("Source->drop_references!\n");
|
||||
source->drop_references ();
|
||||
/* Removing a Source cannot be undone.
|
||||
* We need to clear all undo commands that reference the
|
||||
|
@ -435,7 +435,7 @@ def build(bld):
|
||||
#obj.add_objects = 'default/libs/surfaces/control_protocol/smpte_1.o'
|
||||
|
||||
if bld.is_defined('HAVE_LILV') :
|
||||
obj.source += ['lv2_plugin.cc', 'lv2_evbuf.c', 'uri_map.cc']
|
||||
obj.source += ['lv2_plugin.cc', 'lv2_evbuf.cc', 'uri_map.cc']
|
||||
obj.uselib += ['LILV']
|
||||
if bld.is_defined('HAVE_SUIL'):
|
||||
if bld.is_defined('YTK'):
|
||||
|
@ -7744,7 +7744,7 @@ static void
|
||||
show_filters (GtkFileChooserDefault *impl,
|
||||
gboolean show)
|
||||
{
|
||||
if (show)
|
||||
if (show && impl->filters && g_slist_length (impl->filters) > 1)
|
||||
gtk_widget_show (impl->filter_combo_hbox);
|
||||
else
|
||||
gtk_widget_hide (impl->filter_combo_hbox);
|
||||
|
Loading…
Reference in New Issue
Block a user