Home Information Classes Download Usage Mail List Requirements Tutorial
00001 /***************************************************/ 00027 /***************************************************/ 00028 00029 #if !defined(__TCPWVIN_H) 00030 #define __TCPWVIN_H 00031 00032 #include "WvIn.h" 00033 #include "Socket.h" 00034 #include "Thread.h" 00035 00036 typedef struct { 00037 bool finished; 00038 void *object; 00039 } thread_info; 00040 00041 class TcpWvIn : protected WvIn 00042 { 00043 public: 00045 00048 TcpWvIn( int port = 2006 ); 00049 00051 ~TcpWvIn(); 00052 00054 00057 void listen(unsigned int nChannels = 1, Stk::STK_FORMAT format = STK_SINT16); 00058 00060 00064 bool isConnected(void); 00065 00067 MY_FLOAT lastOut(void) const; 00068 00070 MY_FLOAT tick(void); 00071 00073 MY_FLOAT *tick(MY_FLOAT *vector, unsigned int vectorSize); 00074 00076 const MY_FLOAT *lastFrame(void) const; 00077 00079 const MY_FLOAT *tickFrame(void); 00080 00082 MY_FLOAT *tickFrame(MY_FLOAT *frameVector, unsigned int frames); 00083 00084 // Called by the thread routine to receive data via the socket connection 00085 // and fill the socket buffer. This is not intended for general use but 00086 // had to be made public for access from the thread. 00087 void receive(void); 00088 00089 protected: 00090 00091 // Initialize class variables. 00092 void init( int port ); 00093 00094 // Read buffered socket data into the data buffer ... will block if none available. 00095 int readData( void ); 00096 00097 Socket *soket; 00098 Thread *thread; 00099 Mutex mutex; 00100 char *buffer; 00101 long bufferBytes; 00102 long bytesFilled; 00103 long writePoint; 00104 long readPoint; 00105 long counter; 00106 int dataSize; 00107 bool connected; 00108 int fd; 00109 thread_info threadInfo; 00110 00111 }; 00112 00113 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |