00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef M_CONTROL_OUTPUT_PORT_H
00024 #define M_CONTROL_OUTPUT_PORT_H
00025
00026 using namespace std;
00027
00028 #include "MPort.h"
00029
00030 #include <vector>
00031
00032 class MControlInputPort;
00033
00038 class MControlOutputPort : public MPort
00039 {
00040
00041 Q_OBJECT
00042
00043 public :
00044
00045
00046
00047 virtual ~ MControlOutputPort ( ) { }
00048
00049
00050
00056 virtual bool IsAudio ( ) const
00057 {
00058 return false;
00059 }
00060
00066 virtual bool IsControl ( ) const
00067 {
00068 return true;
00069 }
00070
00076 virtual bool IsInput ( ) const
00077 {
00078 return false;
00079 }
00080
00086 virtual bool IsOutput ( ) const
00087 {
00088 return true;
00089 }
00090
00091 virtual bool IsConnectedTo ( const MPort * port ) const;
00092
00093 virtual unsigned int NumberOfConnections ( ) const;
00094
00095 virtual MPort * Connection ( const unsigned int n ) const;
00096
00097
00098
00099 public slots :
00100
00110 virtual bool Connect ( MControlInputPort * port ) = 0;
00111
00121 virtual bool Disconnect ( MControlInputPort * port ) = 0;
00122
00123 protected :
00124
00125
00126
00131 MControlOutputPort ( string name, MModule * module )
00132 : MPort ( name, module ) { }
00133
00134
00135
00137 vector < MControlInputPort * > _connection;
00138
00139 };
00140
00141 #endif // M_CONTROL_OUTPUT_PORT_H