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_PORT_H 00024 #define M_CLIENT_PORT_H 00025 00026 using namespace std; 00027 00028 #include <jack/jack.h> 00029 00030 class MClient; 00031 00036 class MClientPort /* abstract */ 00037 { 00038 00039 public : 00040 00041 // destructor 00042 00043 virtual ~ MClientPort ( ) { } 00044 00045 // functions 00046 00050 virtual float * Buffer ( ); 00051 00055 virtual MClient * Client ( ) const = 0; 00056 00060 virtual jack_port_t * JACKHandle ( ) const; 00061 00062 protected : 00063 00064 // protected constructor 00065 00069 MClientPort ( jack_port_t * jack_port ) 00070 : _jack_port ( jack_port ) { } 00071 00072 // attributes 00073 00075 jack_port_t * _jack_port; 00076 00077 }; 00078 00079 #endif // M_CLIENT_PORT_H