00001 /* 00002 00003 This file is part of la Marmite. 00004 Copyright (C) 2005 Nicolas Falquet. 00005 00006 La Marmite is free software ; you can redistribute it and/or 00007 modify it under the terms of the GNU General Public License as 00008 published by the Free Software Foundation ; either version 2 of 00009 the License, or (at your option) any later version. 00010 00011 La Marmite is distributed in the hope that it will be useful, but 00012 WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with la Marmite ; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 00019 02111-1307 USA 00020 00021 */ 00022 00023 #ifndef M_CLIENT_AUDIO_INPUT_PORT_H 00024 #define M_CLIENT_AUDIO_INPUT_PORT_H 00025 00026 #include "MClientPort.h" 00027 #include "MAudioInputPort.h" 00028 00029 #include "MClient.h" 00030 #include "MPluginAudioOutputPort.h" 00031 00036 class MClientAudioInputPort : public MAudioInputPort, public MClientPort 00037 { 00038 00039 Q_OBJECT 00040 00041 public : 00042 00043 // functions 00044 00045 virtual MClient * Client ( ) const; 00046 00057 virtual float * Buffer ( ); 00058 00062 virtual bool IsCalculated ( ); 00063 00067 virtual unsigned int NumberOfPluginConnections ( ); 00068 00069 // methods 00070 00081 void CalculateBuffer ( ); 00082 00088 void SetNotCalculated ( ); 00089 00090 public slots : 00091 00101 virtual bool Connect ( MAudioOutputPort * port ); 00102 00106 virtual bool Disconnect ( MAudioOutputPort * port ); 00107 00108 protected : 00109 00110 // protected constructor 00111 00116 MClientAudioInputPort ( jack_port_t * jack_port, MClient * client ); 00117 00118 friend MClientAudioInputPort * MClient::addAudioInput ( jack_port_t * jackPort ); 00119 00120 // attributes 00121 00123 bool _calculated; 00124 00126 vector < MPluginAudioOutputPort * > _pluginConnection; 00127 00128 }; 00129 00130 #endif // M_CLIENT_AUDIO_INPUT_PORT_H