diff options
author | David Robillard <d@drobilla.net> | 2007-10-21 19:02:02 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-10-21 19:02:02 +0000 |
commit | 608aeac60ef43243b85c0dcc5894ccc79f35fba5 (patch) | |
tree | b9cbd2f0594602a8d927fa486e7682daf0b92fc3 /src/libs | |
parent | 89a9cdf0ab581a4cff5cf8fd859d714a90bb8998 (diff) | |
download | ingen-608aeac60ef43243b85c0dcc5894ccc79f35fba5.tar.gz ingen-608aeac60ef43243b85c0dcc5894ccc79f35fba5.tar.bz2 ingen-608aeac60ef43243b85c0dcc5894ccc79f35fba5.zip |
Fix crash on OSC connection.
Fix patch filename persistance.
git-svn-id: http://svn.drobilla.net/lad/ingen@894 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/client/OSCClientReceiver.cpp | 2 | ||||
-rw-r--r-- | src/libs/client/PatchModel.hpp | 5 | ||||
-rw-r--r-- | src/libs/engine/OSCBuffer.cpp | 5 | ||||
-rw-r--r-- | src/libs/engine/OSCEngineReceiver.cpp | 2 | ||||
-rw-r--r-- | src/libs/gui/LoadPatchWindow.cpp | 7 | ||||
-rw-r--r-- | src/libs/gui/PatchWindow.cpp | 15 | ||||
-rw-r--r-- | src/libs/gui/ingen_gui.glade | 4 |
7 files changed, 18 insertions, 22 deletions
diff --git a/src/libs/client/OSCClientReceiver.cpp b/src/libs/client/OSCClientReceiver.cpp index 6de38da3..bd0b5db9 100644 --- a/src/libs/client/OSCClientReceiver.cpp +++ b/src/libs/client/OSCClientReceiver.cpp @@ -35,7 +35,7 @@ OSCClientReceiver::OSCClientReceiver(int listen_port) _listen_port(listen_port), _st(NULL) { - start(true); // true = dump, false = shutup + start(false); // true = dump, false = shutup } diff --git a/src/libs/client/PatchModel.hpp b/src/libs/client/PatchModel.hpp index 5d375faf..909b9e9e 100644 --- a/src/libs/client/PatchModel.hpp +++ b/src/libs/client/PatchModel.hpp @@ -48,10 +48,7 @@ public: SharedPtr<ConnectionModel> get_connection(const string& src_port_path, const string& dst_port_path) const; - void set_filename(const string& filename) { _filename = filename; } - size_t poly() const { return _poly; } - const string& filename() const { return _filename; } bool enabled() const { return _enabled; } uint32_t internal_polyphony() const { return _poly; } bool polyphonic() const; @@ -86,7 +83,6 @@ private: { } - void filename(const string& f) { _filename = f; } void poly(size_t p) { _poly = p; signal_polyphony.emit(p); } void enable(); void disable(); @@ -98,7 +94,6 @@ private: void remove_connection(const string& src_port_path, const string& dst_port_path); Connections _connections; - string _filename; bool _enabled; uint32_t _poly; bool _editable; diff --git a/src/libs/engine/OSCBuffer.cpp b/src/libs/engine/OSCBuffer.cpp index f8454a14..f16bcfbf 100644 --- a/src/libs/engine/OSCBuffer.cpp +++ b/src/libs/engine/OSCBuffer.cpp @@ -76,9 +76,8 @@ OSCBuffer::unjoin() void OSCBuffer::prepare_read(SampleCount nframes) { - assert(!_joined_buf || data() == _joined_buf->data()); - rewind(); + _this_nframes = nframes; } @@ -86,8 +85,6 @@ void OSCBuffer::prepare_write(SampleCount nframes) { reset(nframes); - - assert(!_joined_buf || data() == _joined_buf->data()); } diff --git a/src/libs/engine/OSCEngineReceiver.cpp b/src/libs/engine/OSCEngineReceiver.cpp index 4a713dff..66e74e70 100644 --- a/src/libs/engine/OSCEngineReceiver.cpp +++ b/src/libs/engine/OSCEngineReceiver.cpp @@ -65,7 +65,7 @@ OSCEngineReceiver::OSCEngineReceiver(Engine& engine, size_t queue_size, uint16_t } // For debugging, print all incoming OSC messages - lo_server_add_method(_server, NULL, NULL, generic_cb, NULL); + //lo_server_add_method(_server, NULL, NULL, generic_cb, NULL); // Set response address for this message. // It's important this is first and returns nonzero. diff --git a/src/libs/gui/LoadPatchWindow.cpp b/src/libs/gui/LoadPatchWindow.cpp index 66aec5b0..57ae1536 100644 --- a/src/libs/gui/LoadPatchWindow.cpp +++ b/src/libs/gui/LoadPatchWindow.cpp @@ -15,10 +15,10 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "LoadPatchWindow.hpp" #include <sys/types.h> #include <dirent.h> #include <boost/optional/optional.hpp> +#include "LoadPatchWindow.hpp" #include "interface/EngineInterface.hpp" #include "client/PatchModel.hpp" #include "App.hpp" @@ -127,8 +127,11 @@ LoadPatchWindow::ok_clicked() if (_poly_from_user_radio->get_active()) _initial_data.insert(make_pair("ingen:polyphony", _poly_spinbutton->get_value_as_int())); - if (_replace) + if (_replace) { App::instance().engine()->clear_patch(_patch->path()); + App::instance().engine()->set_variable(_patch->path(), "ingen:document", + Atom(get_uri().c_str())); + } if (_patch->path() != "/") parent = _patch->path().parent(); diff --git a/src/libs/gui/PatchWindow.cpp b/src/libs/gui/PatchWindow.cpp index 716d4356..5569c037 100644 --- a/src/libs/gui/PatchWindow.cpp +++ b/src/libs/gui/PatchWindow.cpp @@ -304,10 +304,11 @@ PatchWindow::event_import_location() void PatchWindow::event_save() { - if (_patch->filename() == "") + GraphObject::Variables::const_iterator doc = _patch->variables().find("ingen:document"); + if (doc == _patch->variables().end()) event_save_as(); else - App::instance().loader()->save_patch(_patch, _patch->filename()); + App::instance().loader()->save_patch(_patch, doc->second.get_string()); } @@ -330,9 +331,9 @@ PatchWindow::event_save_as() save_button->property_has_default() = true; // Set current folder to most sensible default - const string& current_filename = _patch->filename(); - if (current_filename.length() > 0) - dialog.set_filename(current_filename); + GraphObject::Variables::const_iterator doc = _patch->variables().find("ingen:document"); + if (doc != _patch->variables().end()) + dialog.set_uri(doc->second.get_string()); else if (App::instance().configuration()->patch_folder().length() > 0) dialog.set_current_folder(App::instance().configuration()->patch_folder()); @@ -365,8 +366,8 @@ PatchWindow::event_save_as() if (confirm) { App::instance().loader()->save_patch(_patch, filename); - _patch->set_filename(filename); - //_patch->set_variable("filename", Atom(filename.c_str())); + App::instance().engine()->set_variable(_patch->path(), "ingen:document", + Atom(Glib::filename_to_uri(filename).c_str())); } } App::instance().configuration()->set_patch_folder(dialog.get_current_folder()); diff --git a/src/libs/gui/ingen_gui.glade b/src/libs/gui/ingen_gui.glade index 18090268..e3f66321 100644 --- a/src/libs/gui/ingen_gui.glade +++ b/src/libs/gui/ingen_gui.glade @@ -404,8 +404,8 @@ <widget class="GtkScrolledWindow" id="patch_win_scrolledwin"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> - <property name="vscrollbar_policy">GTK_POLICY_NEVER</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <child> <widget class="GtkViewport" id="patch_win_viewport"> <property name="visible">True</property> |