SPAOP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VisualStreamReceiver.h
Go to the documentation of this file.
1 /*
2  * Copyright 2014 Martin Hansen
3  *
4  * This file is part of SPAOP (Spatial Audio Object Positioner).
5  *
6  * SPAOP is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * SPAOP is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with SPAOP. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef VISUALSTREAMRECEIVER_H_INCLUDED
21 #define VISUALSTREAMRECEIVER_H_INCLUDED
22 
23 #include <iostream>
24 #include "OscSender.h"
25 #include "OscSenderThread.h"
26 #include "Room.h"
27 
28 namespace wonder {
29 
37 {
38 public:
39 
42 
54  virtual OscSender* createSender(const std::string &host,
55  const std::string &port) = 0;
56 
57  virtual OscSenderThread* createSenderThread(const std::string &host,
58  const std::string &port) = 0;
59 
64  class Listener
65  {
66  public:
67  virtual ~Listener(){}
68 
76  virtual int onSourceActivate(int sourceID) = 0;
77 
85  virtual int onSourceDeactivate(int sourceID) = 0;
86 
95  virtual int onSourcePosition(int sourceID, float xPos, float yPos) = 0;
96 
104  virtual int onSourceAngle(int sourceID, float angle) = 0;
105 
112  virtual int onSourceType(int sourceID, int type) = 0;
113 
120  virtual int onSourceName(int sourceID, const std::string& sourceName) = 0;
121 
130  virtual int onSourceColor(int sourceID, int r, int g, int b) = 0;
131 
138  virtual int onSourceGroupId(int sourceID, int groupID) = 0;
139 
146  virtual int onSourceRotatingDirection(int sourceID, int inverted) = 0;
147 
154  virtual int onSourceScalingDirection(int sourceID, int inverted) = 0;
155 
162  virtual int onSourceDopplerEffect(int sourceID, int on) = 0;
163 
164 
174  virtual int onListenerPosition(int listenerID, float x, float y) = 0;
175 
181  virtual int onGlobalMaxNoSources(int maxSources) = 0;
182 
190  virtual int onGlobalRenderpolygon(Room& room) = 0;
191 
200  virtual int onProjectXmlDump(int err, const std::string& xmlDump) = 0;
201 
207  virtual int onStreamVisualPong(int pingCount) = 0;
208 
220  virtual int onStreamVisualConnect(OscSender* replyTo)
221  { return 0; }
222 
225  { return 0; }
226 
238  virtual int onReply(std::string replyToMsg, int state, std::string msg) = 0;
239 
250  virtual int onPluginStandalone(bool standAloneOn) = 0;
251  };
252 
259  {
260  public:
261  virtual ~PingHandler(){}
262 
281  virtual int onStreamVisualPing(int pingCount, OscSender* replyTo) = 0;
282  };
283 
285  virtual void start() = 0;
286 
288  virtual void stop() = 0;
289 
291  virtual void join() = 0;
292 
297  virtual void setListener(Listener* listener) = 0;
298 
305  virtual void setPingHandler(PingHandler* pingHandler) = 0;
306 
308  virtual int port() = 0;
309 
318  class Factory
319  {
320  public:
322  virtual ~Factory(){}
323 
329 
338  virtual VisualStreamReceiver* createVisualStreamReceiver(const std::string& port) = 0;
339 
351  virtual VisualStreamReceiver* createVisualStreamMulticastReceiver(const std::string& group,
352  const std::string& port,
353  const std::string& iface) = 0;
354  };
355 };
356 
357 }
358 
359 #endif // VISUALSTREAMRECEIVER_H_INCLUDED
virtual int onListenerPosition(int listenerID, float x, float y)=0
Called when the /WONDER/listener/position message is received.
An abstract class describing the interface for a class that sends out the WONDER-specific OSC-message...
Definition: OscSender.h:43
virtual void setPingHandler(PingHandler *pingHandler)=0
Sets the PingHandler to be called on incoming /WONDER/stream/visual/ping messages.
virtual int onGlobalRenderpolygon(Room &room)=0
On receiving the /WONDER/global/renderpolygon message, the VisualStreamReceiver must create a Room ob...
virtual int onStreamVisualConnect(OscSender *replyTo)
Called when any /WONDER/stream/visual/connect message is recieved.
Definition: VisualStreamReceiver.h:220
virtual OscSender * createSender(const std::string &host, const std::string &port)=0
Returns a OscSender that sends from the port of this server thread to the specified destination...
virtual int onSourceDeactivate(int sourceID)=0
Called when the /WONDER/source/deactivate message is recieved.
virtual ~PingHandler()
Definition: VisualStreamReceiver.h:261
virtual int onSourceScalingDirection(int sourceID, int inverted)=0
Called when the /WONDER/source/scalingDirection message is recieved.
Another listener interface especially for incoming ping messages.
Definition: VisualStreamReceiver.h:258
An interface defining an OSC server thread that receives and handles the messages sent via WONDER's "...
Definition: VisualStreamReceiver.h:36
A factory class that creates VisualStreamReceiver instances.
Definition: VisualStreamReceiver.h:318
A listener interface that can be registered with the VisualStreamReceiver.
Definition: VisualStreamReceiver.h:64
virtual int onPluginStandalone(bool standAloneOn)=0
Called when the /WONDER/plugin/standalone message is recieved.
virtual VisualStreamReceiver * createVisualStreamMulticastReceiver(const std::string &group, const std::string &port, const std::string &iface)=0
Creates a new VisualStreamReciever that listens to a mutlicast group.
virtual int onSourceRotatingDirection(int sourceID, int inverted)=0
Called when the /WONDER/source/rotationDirection message is recieved.
virtual int onGlobalMaxNoSources(int maxSources)=0
Called when the /WONDER/global/maxNoSources message is recieved.
virtual ~Listener()
Definition: VisualStreamReceiver.h:67
virtual void stop()=0
Stops this server thread.
virtual OscSenderThread * createSenderThread(const std::string &host, const std::string &port)=0
virtual ~VisualStreamReceiver()
Destructor.
Definition: VisualStreamReceiver.h:41
virtual ~Factory()
Destructor.
Definition: VisualStreamReceiver.h:322
An interface for a thread implementing the OscSender interface.
Definition: OscSenderThread.h:38
virtual int onSourcePosition(int sourceID, float xPos, float yPos)=0
Called when the /WONDER/source/position message is recieved with one integer and two float parameters...
virtual int onStreamVisualPong(int pingCount)=0
Called when a /WONDER/stream/visual/ping is received.
virtual int port()=0
Returns the port this server-thread is listening on.
virtual int onSourceName(int sourceID, const std::string &sourceName)=0
Called when the /WONDER/source/name message is recieved.
virtual void setListener(Listener *listener)=0
Sets the Listener to be called on incoming OSC messages.
virtual int onReply(std::string replyToMsg, int state, std::string msg)=0
Called when the /WONDER/project/xmlDump message is recieved.
virtual int onSourceType(int sourceID, int type)=0
Called when the /WONDER/source/type message is recieved.
A class containing the wonder-specific information about a room (name and vertices).
Definition: Room.h:35
virtual int onSourceActivate(int sourceID)=0
Called when the /WONDER/source/activate message is recieved.
virtual int onSourceDopplerEffect(int sourceID, int on)=0
Called when the /WONDER/source/dopplerEffect message is recieved.
virtual int onSourceColor(int sourceID, int r, int g, int b)=0
Called when the /WONDER/source/color message is recieved.
virtual int onProjectXmlDump(int err, const std::string &xmlDump)=0
Called when the /WONDER/project/xmlDump message is recieved.
virtual int onSourceGroupId(int sourceID, int groupID)=0
Called when the /WONDER/source/groupID message is recieved.
virtual int onStreamVisualPing(int pingCount, OscSender *replyTo)=0
On receiving the /WONDER/stream/visual/ping message, the VisualStreamReceiver must call this method...
virtual VisualStreamReceiver * createVisualStreamReceiver()=0
Creates a new VisualStreamReciever.
virtual void start()=0
Starts this server thread.
virtual void join()=0
Joins this server thread.
virtual int onStreamVisualDisconnect()
Called when any /WONDER/stream/visual/disconnect message is recieved.
Definition: VisualStreamReceiver.h:224
virtual int onSourceAngle(int sourceID, float angle)=0
Called when the /WONDER/source/angle message is recieved with one integer and oe float parameter...