*
*/
-#include <iostream>
-#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <cerrno>
#include <unistd.h>
#include <fcntl.h>
-#include <glib/gstdio.h>
+#include "pbd/gstdio_compat.h"
#include <glibmm/miscutils.h>
#include <pbd/convert.h>
std::string url_file;
if (find_file (ardour_config_search_path(), "osc_url", url_file)) {
-
_osc_url_file = url_file;
- ofstream urlfile;
- urlfile.open(_osc_url_file.c_str(), ios::trunc);
-
- if (urlfile) {
- urlfile << get_server_url () << endl;
- urlfile.close();
- } else {
+ if (g_file_set_contents (_osc_url_file.c_str(), get_server_url().c_str(), -1, NULL)) {
cerr << "Couldn't write '" << _osc_url_file << "'" <<endl;
}
}
BaseUI::quit ();
if (_osc_server) {
- int fd = lo_server_get_socket_fd(_osc_server);
- if (fd >=0) {
- close(fd);
- }
lo_server_free (_osc_server);
_osc_server = 0;
}
if (_osc_unix_server) {
- int fd = lo_server_get_socket_fd(_osc_unix_server);
- if (fd >=0) {
- close(fd);
- }
lo_server_free (_osc_unix_server);
_osc_unix_server = 0;
}
REGISTER_CALLBACK (serv, "/ardour/routes/recenable", "ii", route_recenable);
REGISTER_CALLBACK (serv, "/ardour/routes/gainabs", "if", route_set_gain_abs);
REGISTER_CALLBACK (serv, "/ardour/routes/gaindB", "if", route_set_gain_dB);
+ REGISTER_CALLBACK (serv, "/ardour/routes/trimabs", "if", route_set_trim_abs);
+ REGISTER_CALLBACK (serv, "/ardour/routes/trimdB", "if", route_set_trim_dB);
REGISTER_CALLBACK (serv, "/ardour/routes/pan_stereo_position", "if", route_set_pan_stereo_position);
REGISTER_CALLBACK (serv, "/ardour/routes/pan_stereo_width", "if", route_set_pan_stereo_width);
REGISTER_CALLBACK (serv, "/ardour/routes/plugin/parameter", "iiif", route_plugin_parameter);
boost::shared_ptr<Route> r = session->route_by_remote_id (rid);
if (r) {
- r->set_solo (yn, this);
+ boost::shared_ptr<RouteList> rl (new RouteList);
+ rl->push_back (r);
+ session->set_solo (rl, yn);
}
return 0;
int
OSC::route_set_gain_dB (int rid, float dB)
+{
+ return route_set_gain_abs (rid, dB_to_coefficient (dB));
+}
+
+
+int
+OSC::route_set_trim_abs (int rid, float level)
{
if (!session) return -1;
boost::shared_ptr<Route> r = session->route_by_remote_id (rid);
if (r) {
- r->set_gain (dB_to_coefficient (dB), this);
+ r->set_trim (level, this);
}
return 0;
}
+int
+OSC::route_set_trim_dB (int rid, float dB)
+{
+ return route_set_trim_abs(rid, dB_to_coefficient (dB));
+}
+
+
int
OSC::route_set_pan_stereo_position (int rid, float pos)
{
XMLNode&
OSC::get_state ()
{
- XMLNode& node (ControlProtocol::get_state());
-
- node.add_property (X_("feedback"), _send_route_changes ? "1" : "0");
- return node;
+ return ControlProtocol::get_state();
}
int
-OSC::set_state (const XMLNode& node, int /*version*/)
+OSC::set_state (const XMLNode& node, int version)
{
- const XMLProperty* prop = node.property (X_("feedback"));
-
- if (prop) {
- if (PBD::string_is_affirmative (prop->value())) {
- _send_route_changes = true;
- } else {
- _send_route_changes = false;
- }
- } else {
- /* leave it alone */
+ if (ControlProtocol::set_state (node, version)) {
+ return -1;
}
return 0;