Added missing patch port files
git-svn-id: http://svn.drobilla.net/lad@67 a436a847-0d15-0410-975c-d299462d15a1
This commit is contained in:
parent
7c36abc4bf
commit
3de862bd8b
|
@ -0,0 +1,57 @@
|
|||
/* This file is part of Om. Copyright (C) 2006 Dave Robillard.
|
||||
*
|
||||
* Om is free software; you can redistribute it and/or modify it under the
|
||||
* terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* Om is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "OmPatchPort.h"
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include "PortModel.h"
|
||||
#include "OmPortModule.h"
|
||||
#include "ControlModel.h"
|
||||
#include "Configuration.h"
|
||||
#include "App.h"
|
||||
using std::cerr; using std::endl;
|
||||
|
||||
using namespace LibOmClient;
|
||||
|
||||
namespace OmGtk {
|
||||
|
||||
OmPatchPort::OmPatchPort(OmPortModule* module, CountedPtr<PortModel> pm)
|
||||
: Port(module, pm->name(), !pm->is_input(), App::instance().configuration()->get_port_color(pm.get())),
|
||||
m_port_model(pm)
|
||||
{
|
||||
assert(module);
|
||||
assert(m_port_model);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void
|
||||
OmPatchPort::set_name(const string& n)
|
||||
{
|
||||
cerr << "********** OmPatchPort::set_name broken **********************" << endl;
|
||||
|
||||
/* FIXME: move to PortController
|
||||
string new_path = OmPath::parent(m_port_model->path()) +"/"+ n;
|
||||
|
||||
for (list<ControlPanel*>::iterator i = m_control_panels.begin(); i != m_control_panels.end(); ++i)
|
||||
(*i)->rename_port(m_port_model->path(), new_path);
|
||||
|
||||
Port::set_name(n);
|
||||
m_port_model->path(new_path);
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace OmGtk
|
|
@ -0,0 +1,60 @@
|
|||
/* This file is part of Om. Copyright (C) 2006 Dave Robillard.
|
||||
*
|
||||
* Om is free software; you can redistribute it and/or modify it under the
|
||||
* terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* Om is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef OMPATCHPORT_H
|
||||
#define OMPATCHPORT_H
|
||||
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
#include <flowcanvas/Port.h>
|
||||
#include "util/CountedPtr.h"
|
||||
|
||||
namespace LibOmClient { class PortModel; }
|
||||
using namespace LibOmClient;
|
||||
using namespace LibFlowCanvas;
|
||||
using std::string; using std::list;
|
||||
|
||||
namespace OmGtk {
|
||||
|
||||
class FlowCanvas;
|
||||
class PatchController;
|
||||
class PatchWindow;
|
||||
class OmPortModule;
|
||||
|
||||
|
||||
/** A Port (on a pseudo node) in a patch canvas, to represent a port on that patch.
|
||||
*
|
||||
* \ingroup OmGtk
|
||||
*/
|
||||
class OmPatchPort : public LibFlowCanvas::Port
|
||||
{
|
||||
public:
|
||||
OmPatchPort(OmPortModule* module, CountedPtr<PortModel> pm);
|
||||
|
||||
virtual ~OmPatchPort() {}
|
||||
|
||||
//void set_name(const string& n);
|
||||
|
||||
CountedPtr<PortModel> model() const { return m_port_model; }
|
||||
|
||||
private:
|
||||
CountedPtr<PortModel> m_port_model;
|
||||
};
|
||||
|
||||
|
||||
} // namespace OmGtk
|
||||
|
||||
#endif // OMPATCHPORT_H
|
|
@ -0,0 +1,71 @@
|
|||
/* This file is part of Om. Copyright (C) 2006 Dave Robillard.
|
||||
*
|
||||
* Om is free software; you can redistribute it and/or modify it under the
|
||||
* terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* Om is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "OmPortModule.h"
|
||||
#include <cassert>
|
||||
#include "Controller.h"
|
||||
#include "OmFlowCanvas.h"
|
||||
#include "PatchModel.h"
|
||||
#include "NodeModel.h"
|
||||
#include "OmPort.h"
|
||||
#include "GladeFactory.h"
|
||||
#include "RenameWindow.h"
|
||||
#include "PatchController.h"
|
||||
#include "PatchWindow.h"
|
||||
|
||||
namespace OmGtk {
|
||||
|
||||
|
||||
OmPortModule::OmPortModule(OmFlowCanvas* canvas, PortController* port, double x, double y)
|
||||
: LibFlowCanvas::Module(canvas, "", x, y),
|
||||
m_port(port)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
||||
/*if (port_model()->polyphonic() && port_model()->parent() != NULL
|
||||
&& port_model()->parent_patch()->poly() > 1) {
|
||||
border_width(2.0);
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OmPortModule::store_location()
|
||||
{
|
||||
char temp_buf[16];
|
||||
|
||||
//m_port->port_model()->x(property_x());
|
||||
snprintf(temp_buf, 16, "%f", property_x().get_value());
|
||||
//m_port->port_model()->set_metadata("module-x", temp_buf); // just in case?
|
||||
Controller::instance().set_metadata(m_port->port_model()->path(), "module-x", temp_buf);
|
||||
|
||||
//m_port->port_model()->y(property_y());
|
||||
snprintf(temp_buf, 16, "%f", property_y().get_value());
|
||||
//m_port->port_model()->set_metadata("module-y", temp_buf); // just in case?
|
||||
Controller::instance().set_metadata(m_port->port_model()->path(), "module-y", temp_buf);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OmPortModule::move_to(double x, double y)
|
||||
{
|
||||
Module::move_to(x, y);
|
||||
//m_port->port_model()->x(x);
|
||||
//m_port->port_model()->y(y);
|
||||
//store_location();
|
||||
}
|
||||
|
||||
} // namespace OmGtk
|
|
@ -0,0 +1,76 @@
|
|||
/* This file is part of Om. Copyright (C) 2006 Dave Robillard.
|
||||
*
|
||||
* Om is free software; you can redistribute it and/or modify it under the
|
||||
* terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* Om is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OMPORTMODULE_H
|
||||
#define OMPORTMODULE_H
|
||||
|
||||
#include <string>
|
||||
#include <libgnomecanvasmm.h>
|
||||
#include <flowcanvas/Module.h>
|
||||
#include "PortController.h"
|
||||
using std::string;
|
||||
|
||||
namespace LibOmClient {
|
||||
class PortModel;
|
||||
class NodeModel;
|
||||
class ControlModel;
|
||||
}
|
||||
using namespace LibOmClient;
|
||||
|
||||
namespace OmGtk {
|
||||
|
||||
class PatchController;
|
||||
class PortController;
|
||||
class OmFlowCanvas;
|
||||
class OmPort;
|
||||
|
||||
|
||||
/** A module in a patch.
|
||||
*
|
||||
* This base class is extended for various types of modules - SubpatchModule,
|
||||
* DSSIModule, etc.
|
||||
*
|
||||
* \ingroup OmGtk
|
||||
*/
|
||||
class OmPortModule : public LibFlowCanvas::Module
|
||||
{
|
||||
public:
|
||||
OmPortModule(OmFlowCanvas* canvas, PortController* port, double x, double y);
|
||||
virtual ~OmPortModule() {}
|
||||
|
||||
//virtual OmPort* port(const string& port_name) {
|
||||
// return (OmPort*)Module::port(port_name);
|
||||
//}
|
||||
|
||||
virtual void store_location();
|
||||
void move_to(double x, double y);
|
||||
|
||||
//void on_right_click(GdkEventButton* event) { m_port->show_menu(event); }
|
||||
|
||||
PortController* port() const { return m_port; }
|
||||
|
||||
protected:
|
||||
//virtual void on_double_click(GdkEventButton* ev) { show_control_window(); }
|
||||
//virtual void on_middle_click(GdkEventButton* ev) { show_control_window(); }
|
||||
|
||||
PortController* m_port;
|
||||
};
|
||||
|
||||
|
||||
} // namespace OmGtk
|
||||
|
||||
#endif // OMPORTMODULE_H
|
Loading…
Reference in New Issue