You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
(8) |
Jul
(1) |
Aug
|
Sep
(13) |
Oct
|
Nov
(47) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(51) |
Feb
|
Mar
|
Apr
|
May
(20) |
Jun
(6) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <res...@li...> - 2007-06-04 14:07:08
|
Revision: 27 http://resound.svn.sourceforge.net/resound/?rev=27&view=rev Author: drm004e Date: 2007-06-04 07:07:06 -0700 (Mon, 04 Jun 2007) Log Message: ----------- modifed to 8*8 matrix... note that the line that does this is in resound_gui/base.cpp line 89 Modified Paths: -------------- trunk/src/resound_gui/base.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-06-03 19:34:43
|
Revision: 26 http://resound.svn.sourceforge.net/resound/?rev=26&view=rev Author: drm004e Date: 2007-06-03 12:34:26 -0700 (Sun, 03 Jun 2007) Log Message: ----------- progress made with serialization, after much nastyness with polymorphic types.. solved by making Parameter abstract through pure virtual dummy() function. added a BasicParameter which should be used when you want a standard parameter. modified basic behaviours to use these. Save and load now will successfully write and read an xml file... Ie its reading and writing everything I asked it to ok, but it needs to save much more data before it will successfully store and retrieve a complete performance. However, this should be trivial (famous last words) now that the polymorphic bit is ok. Modified Paths: -------------- trunk/src/resound_gui/CMakeLists.txt trunk/src/resound_gui/amclient.cpp trunk/src/resound_gui/amclient.h trunk/src/resound_gui/basebehaviour.cpp trunk/src/resound_gui/performance.cpp trunk/src/resound_gui/pvar.cpp trunk/src/resound_gui/pvar.h trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_gui/vumeterwidget.cpp trunk/src/resound_gui/vumeterwidget.h Added Paths: ----------- trunk/src/resound_gui/amclient_widgets.cpp trunk/src/resound_gui/amclient_widgets.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-05-31 22:55:15
|
Revision: 24 http://resound.svn.sourceforge.net/resound/?rev=24&view=rev Author: drm004e Date: 2007-05-31 15:55:07 -0700 (Thu, 31 May 2007) Log Message: ----------- changes to backend, osc output works as does behaviours... change ParameterLinks to use smart pointers instead of address lookup which should increase speed seriously. still some problems but in terms of functionality its pretty much back what we had before. Modified Paths: -------------- trunk/src/resound_gui/amclient.cpp trunk/src/resound_gui/amclient.h trunk/src/resound_gui/base.cpp trunk/src/resound_gui/base.h trunk/src/resound_gui/basebehaviour.cpp trunk/src/resound_gui/basebehaviour.h trunk/src/resound_gui/behaviour.cpp trunk/src/resound_gui/behaviour.h trunk/src/resound_gui/behaviourview.cpp trunk/src/resound_gui/masterfader.cpp trunk/src/resound_gui/pvar.cpp trunk/src/resound_gui/pvar.h trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_gui/pvarwidgets.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-05-31 09:32:16
|
Revision: 23 http://resound.svn.sourceforge.net/resound/?rev=23&view=rev Author: drm004e Date: 2007-05-31 02:32:01 -0700 (Thu, 31 May 2007) Log Message: ----------- many more changes related to the backend... also lots of renaming of namespaces methods and member variables to make a bit more sense. I have started a coherency.h and cpp which has lots of the classes needed to perform automatic CASS to CLS mapping. compiles and runs but still missing some aspects of the old functionality, behaviour parameters need some work Modified Paths: -------------- trunk/src/resound_common/CMakeLists.txt trunk/src/resound_common/exception.h trunk/src/resound_gui/CMakeLists.txt trunk/src/resound_gui/amclient.cpp trunk/src/resound_gui/amclient.h trunk/src/resound_gui/app.cpp trunk/src/resound_gui/app.h trunk/src/resound_gui/automation.cpp trunk/src/resound_gui/automation.h trunk/src/resound_gui/base.cpp trunk/src/resound_gui/base.h trunk/src/resound_gui/basebehaviour.cpp trunk/src/resound_gui/basebehaviour.h trunk/src/resound_gui/behaviour.cpp trunk/src/resound_gui/behaviour.h trunk/src/resound_gui/behaviourview.cpp trunk/src/resound_gui/behaviourview.h trunk/src/resound_gui/faderwidget.cpp trunk/src/resound_gui/faderwidget.h trunk/src/resound_gui/masterfader.cpp trunk/src/resound_gui/masterfader.h trunk/src/resound_gui/mmanagerwin32.cpp trunk/src/resound_gui/monitorframe.cpp trunk/src/resound_gui/monitorframe.h trunk/src/resound_gui/monitornodewidget.cpp trunk/src/resound_gui/monitornodewidget.h trunk/src/resound_gui/monitorview.cpp trunk/src/resound_gui/monitorview.h trunk/src/resound_gui/pch.h trunk/src/resound_gui/performance.cpp trunk/src/resound_gui/performance.h trunk/src/resound_gui/performanceview.cpp trunk/src/resound_gui/performanceview.h trunk/src/resound_gui/pvar.cpp trunk/src/resound_gui/pvar.h trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_gui/pvarwidgets.h trunk/src/resound_gui/util.h trunk/src/resound_gui/vumeterwidget.cpp trunk/src/resound_gui/vumeterwidget.h Added Paths: ----------- trunk/src/resound_gui/coherency.cpp trunk/src/resound_gui/coherency.h Removed Paths: ------------- trunk/src/resound_common/systemlog.cpp trunk/src/resound_common/systemlog.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-05-28 19:31:53
|
Revision: 21 http://resound.svn.sourceforge.net/resound/?rev=21&view=rev Author: drm004e Date: 2007-05-28 12:31:37 -0700 (Mon, 28 May 2007) Log Message: ----------- this is the first commit in a series of changes to the way in which parameter addressing is handled... this code compiles and runs but has VERY LIMITED functionality compared to previous revisions. changes include: renaming of PVar to Parameter and all related classes change from PVarAddress in format a,b,c,d to osc/url based ParameterAddress in the form /namespace/param/.../... seperation of gui related code from backend code pvar.h and .cpp removal of old wxWidgets serialization code ready for XML based method using boost::serialization complete removal of wxString from backend.. replacing with std::string Modified Paths: -------------- trunk/src/resound_gui/amclient.cpp trunk/src/resound_gui/amclient.h trunk/src/resound_gui/base.cpp trunk/src/resound_gui/base.h trunk/src/resound_gui/basebehaviour.cpp trunk/src/resound_gui/basebehaviour.h trunk/src/resound_gui/behaviour.cpp trunk/src/resound_gui/behaviour.h trunk/src/resound_gui/behaviourview.cpp trunk/src/resound_gui/masterfader.cpp trunk/src/resound_gui/masterfader.h trunk/src/resound_gui/monitornodewidget.cpp trunk/src/resound_gui/monitornodewidget.h trunk/src/resound_gui/monitorview.cpp trunk/src/resound_gui/performance.cpp trunk/src/resound_gui/performance.h trunk/src/resound_gui/performanceview.cpp trunk/src/resound_gui/performanceview.h trunk/src/resound_gui/pvar.cpp trunk/src/resound_gui/pvar.h trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_gui/pvarwidgets.h trunk/src/resound_gui/vumeterwidget.cpp trunk/src/resound_gui/vumeterwidget.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-05-24 20:01:26
|
Revision: 20 http://resound.svn.sourceforge.net/resound/?rev=20&view=rev Author: drm004e Date: 2007-05-24 13:01:13 -0700 (Thu, 24 May 2007) Log Message: ----------- osc output from resound_gui is now patched (crudely) to resound_server... ie you can now control the matrix attenuations from the gui. the global, input, output, and node attenuators apear to be working as expected (tested with ardour meters). Modified Paths: -------------- trunk/src/resound_common/osc_manager.cpp trunk/src/resound_common/osc_manager.h trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_server/dsp.h trunk/src/resound_server/dsp_manager.cpp trunk/src/resound_server/dsp_manager.h trunk/src/resound_server/resound_server.cpp Modified: trunk/src/resound_common/osc_manager.cpp =================================================================== --- trunk/src/resound_common/osc_manager.cpp 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_common/osc_manager.cpp 2007-05-24 20:01:13 UTC (rev 20) @@ -108,4 +108,8 @@ } } +} + +void Resound::OSCManager::add_method(std::string path, std::string typeSpec, lo_method_handler handler, void* userData){ + lo_server_thread_add_method(m_loServerThread, path.c_str(), typeSpec.c_str(), handler, userData); } \ No newline at end of file Modified: trunk/src/resound_common/osc_manager.h =================================================================== --- trunk/src/resound_common/osc_manager.h 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_common/osc_manager.h 2007-05-24 20:01:13 UTC (rev 20) @@ -49,6 +49,11 @@ /// overriders should call the base class first virtual void recv_syn(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); virtual void recv_ack(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); + + /// register a handler function for an osc address + /// simply a wrapper over the liblo version + /// lo_server_thread_add_method(...); + void add_method(std::string path, std::string typeSpec, lo_method_handler handler, void* userData); private: // OSC lo_server_thread m_loServerThread; ///< the liblo server thread Modified: trunk/src/resound_gui/pvarwidgets.cpp =================================================================== --- trunk/src/resound_gui/pvarwidgets.cpp 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_gui/pvarwidgets.cpp 2007-05-24 20:01:13 UTC (rev 20) @@ -61,16 +61,18 @@ // add the build collective button - topSizer->Add(new wxButton(this,PVLW_ASSIGN,_T("Assign"), wxPoint(0,0),wxSize(50,20),wxBU_EXACTFIT),wxSizerFlags(0).Align(0).Border(wxALL,0)); + topSizer->Add(new wxButton(this,PVLW_ASSIGN,_T("Assign"), wxPoint(0,0),wxSize(55,30),wxBU_EXACTFIT),wxSizerFlags(0).Align(0).Border(wxALL,0)); // add the meter bridge sizer meterSizer = new wxBoxSizer(wxHORIZONTAL); topSizer->Add(meterSizer); + + // add the assigned collective name label // NOT USING THIS FOR NOW //targetLabel = new wxStaticText(this,PVLW_TARGET,collective->GetName(), wxPoint(0,0),wxSize(50,20),wxALIGN_CENTRE); //topSizer->Add(targetLabel,wxSizerFlags(0).Align(0).Border(wxALL,0)); - + // layout SetSizer(topSizer); topSizer->SetSizeHints(this); // set size hints to honour minimum size Modified: trunk/src/resound_server/dsp.h =================================================================== --- trunk/src/resound_server/dsp.h 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_server/dsp.h 2007-05-24 20:01:13 UTC (rev 20) @@ -12,7 +12,7 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software +// aint with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, // MA 02111-1307 USA // @@ -30,7 +30,7 @@ } // Take an input buffer and sum it to and output buffer using the gain value specified -inline void DSPSumToBuss(AudioBuffer* bufferIn, AudioBuffer* bufferOut, float factor, long bufferSize) +inline void DSPSumToBuss(AudioBuffer* bufferIn, AudioBuffer* bufferOut, float factor, int bufferSize) { float* in = bufferIn->get_data_ptr(); float* out = bufferOut->get_data_ptr(); @@ -65,7 +65,7 @@ }; // clear a buffer of its contents -inline void MemsetBuffer(AudioBuffer* bufferIn, float value, long bufferSize) +inline void MemsetBuffer(AudioBuffer* bufferIn, float value, int bufferSize) { float* buffer = bufferIn->get_data_ptr(); while(--bufferSize >= 0) { @@ -74,5 +74,18 @@ } } +inline void compute_vu_meters(AudioBuffer* bufferIn, int bufferSize, float& rms, float& peak){ + rms = peak = 0.0f; + float* buffer = bufferIn->get_data_ptr(); + int b = bufferSize; + while(--b >= 0) { + float t = fabs(*buffer); + rms += t; + peak = (t > peak) ? t : peak; + ++buffer; + } + rms = rms / (float)bufferSize; +} + } // namespace resound #endif Modified: trunk/src/resound_server/dsp_manager.cpp =================================================================== --- trunk/src/resound_server/dsp_manager.cpp 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_server/dsp_manager.cpp 2007-05-24 20:01:13 UTC (rev 20) @@ -32,11 +32,10 @@ m_name(name), m_numInputs(inputs), m_numOutputs(outputs), -m_audioMatrix(new AudioMatrix(m_numInputs, m_numOutputs)), +m_audioMatrix(new AudioMatrix(inputs, outputs)), + OSCManager(port) { - - std::cout << "Initialising I/O matrix... \n"; m_nAttMatrix.Create(m_numInputs+1, m_numOutputs+1); m_iAttMatrix.Create(m_numInputs+1, m_numOutputs+1); @@ -61,34 +60,28 @@ // register callbacks std::cout << "Registering callbacks... \n"; jack_set_process_callback(m_jc,Resound::DSPManager::jack_process_callback,this); + for(int r = 0; r < m_numInputs+1; r++){ + for(int c = 0; c < m_numOutputs+1; c++){ + std::stringstream s; + s << "/matrix/att/" << r << "/" << c; + add_method(s.str(),"f",Resound::DSPManager::lo_cb_att, (void*)&m_nAttMatrix.Index(r,c)); + } + } + + // get some info from jackd about current SR and bufferSize; m_bufferSize = jack_get_buffer_size(m_jc); m_sampleRate = jack_get_sample_rate(m_jc); - // set some default attenuations + // set some default attenuations, usefull for stress test - - // G Node - m_nAttMatrix.Index(0,0) = 0.5f; - m_iAttMatrix.Index(0,0) = 0.5f; - // I nodes - for(int n=1; n<m_numInputs+1;n++){ - m_nAttMatrix.Index(n,0) = 1.0f; - m_iAttMatrix.Index(n,0) = 1.0f; + for(int r=0; r < m_numInputs;r++){ + for(int c=0; c < m_numOutputs;c++){ + m_nAttMatrix.Index(r,c) = 0.5f; + m_iAttMatrix.Index(r,c) = 0.5f; + } } - // this is the I->O nodes - int minIO = m_numInputs; - if(minIO > m_numOutputs) minIO = m_numOutputs; - for(int n=1; n < minIO+1; n++){ - m_nAttMatrix.Index(n,n) = 1.0f; - m_iAttMatrix.Index(n,n) = 1.0f; - } - // O nodes - for(int n=1; n<m_numOutputs+1;n++){ - m_nAttMatrix.Index(0,n) = 1.0f; - m_iAttMatrix.Index(0,n) = 1.0f; - } // now activate the callback std::cout << "Activating DSP... \n"; @@ -154,15 +147,38 @@ finalAtt = globalAtt * outAtt * inAtt * matAtt; // factor gains together DSPSumToBuss(inputBuffer, outputBuffer, finalAtt ,nframes); // sum onto the buss } // nodes + delete inputBuffer; } - delete inputBuffer; }// inputs } + delete outputBuffer; + } // outputs }//*/ + + // compute vu's + float rms,peak; + AudioBuffer* b; + for(int n = 0; n < m_inputs.size(); n++){ + b = new AudioBuffer((AudioSample*)jack_port_get_buffer(m_inputs[n],nframes),nframes); // we get this one encapsulating the jack port + compute_vu_meters(b,nframes,rms,peak); + delete b; + } + for(int n = 0; n < m_outputs.size(); n++){ + AudioBuffer* b = new AudioBuffer((AudioSample*)jack_port_get_buffer(m_outputs[n],nframes),nframes); // we get this one encapsulating the jack port + compute_vu_meters(b,nframes,rms,peak); + delete b; + } return 0; } +int Resound::DSPManager::lo_cb_att(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ + float* f = (float*)user_data; // the user data should be a pointer to the newattmatrix element + *f = argv[0]->f; // the argument should be a float + return 1; +} + + Modified: trunk/src/resound_server/dsp_manager.h =================================================================== --- trunk/src/resound_server/dsp_manager.h 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_server/dsp_manager.h 2007-05-24 20:01:13 UTC (rev 20) @@ -76,12 +76,13 @@ jack_nframes_t m_bufferSize; ///< the current bufferSize jack_nframes_t m_sampleRate; ///< the current sample rate - - public: // callbacks /// static dsp process callback static int jack_process_callback(jack_nframes_t nframes, void *arg); + /// callback from osc att methods + static int lo_cb_att(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); + }; } Modified: trunk/src/resound_server/resound_server.cpp =================================================================== --- trunk/src/resound_server/resound_server.cpp 2007-05-20 13:08:37 UTC (rev 19) +++ trunk/src/resound_server/resound_server.cpp 2007-05-24 20:01:13 UTC (rev 20) @@ -29,9 +29,9 @@ Resound::DSPManager* s_dsp = 0; -int inputs = 2; -int outputs = 2; -std::string port("4567"); +int inputs = 5; +int outputs = 5; +std::string port("5678"); /// command line options bool parse(int argc, char** argv){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <res...@li...> - 2007-05-20 16:59:37
|
Naah then, Dave As you can see, I have confirmed subscription to the Resound list. Is = that what you were phoning about... Sorry I didn't answer: I was in the middle of configuring my wireless = PCI card to work with Ubuntu. Moderate nightmare, but got there in the = end... It turned out that the config file actually DIDN'T work, and one = had to set the wireless access parameters (SSID, encryption type etc) = manually using iwpriv. Obviously. Obviously it was naive of me to assume = that the values in a config file would preclude the need to do this ;) Anyway it's working now, so the next (no doubt massive) hurdle will be = to get MythTV on there! Speak soon James PS: I am assuming that there's no-one else subscribed to this list = yet... If there is, and you've no idea who I am, sorry! |
From: <res...@li...> - 2007-05-20 12:18:33
|
Revision: 18 http://resound.svn.sourceforge.net/resound/?rev=18&view=rev Author: drm004e Date: 2007-05-20 05:18:19 -0700 (Sun, 20 May 2007) Log Message: ----------- resound_gui now sends osc to itself fixed display bugs moved images to the gui folder for easy working removed old comms system and replaced with beginnings of osc system moved console from frontpage to tab pane Modified Paths: -------------- trunk/src/resound_common/CMakeLists.txt trunk/src/resound_common/audio_math.h trunk/src/resound_common/osc_manager.cpp trunk/src/resound_common/osc_manager.h trunk/src/resound_gui/amclient.cpp trunk/src/resound_gui/amclient.h trunk/src/resound_gui/app.cpp trunk/src/resound_gui/base.cpp trunk/src/resound_gui/behaviourview.cpp trunk/src/resound_gui/masterfader.cpp trunk/src/resound_gui/monitorframe.cpp trunk/src/resound_gui/monitorview.cpp trunk/src/resound_gui/pvar.cpp trunk/src/resound_gui/pvarwidgets.cpp trunk/src/resound_gui/vumeterwidget.h trunk/src/resound_server/resound_server.cpp Added Paths: ----------- trunk/src/resound_gui/image/ Removed Paths: ------------- trunk/bin/image/ trunk/src/resound_common/comms.cpp trunk/src/resound_common/comms.h Modified: trunk/src/resound_common/CMakeLists.txt =================================================================== --- trunk/src/resound_common/CMakeLists.txt 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/CMakeLists.txt 2007-05-20 12:18:19 UTC (rev 18) @@ -29,7 +29,6 @@ # build the excecutable add_library (resound_common -comms.cpp systemlog.cpp osc_manager.cpp ) Modified: trunk/src/resound_common/audio_math.h =================================================================== --- trunk/src/resound_common/audio_math.h 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/audio_math.h 2007-05-20 12:18:19 UTC (rev 18) @@ -47,7 +47,7 @@ // infinity 8 on side = 165 ?? /// return a string containing a formated dB value such as -60.00 dB dp specifies decimal places -/// out of range errors return -infinity character char +/// out of range errors return -inf dB inline std::string float_to_dB_string(const float& v, int dp){ std::stringstream s; s << std::setprecision(dp) << std::fixed << float_to_dB(v) << " dB"; Deleted: trunk/src/resound_common/comms.cpp =================================================================== --- trunk/src/resound_common/comms.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/comms.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -1,81 +0,0 @@ -// -// Copyright (c) 2007 David Moore, James Mooney, All Rights Reserved. -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, -// MA 02111-1307 USA -// -// cant have precompiled header becuase of shared nature between projects -#include "comms.h" - -// ---------------------- Packets ----------------------------- -void SA::SendPacket(wxSocketBase* socket, Packet* packet) -{ - // packet should contain everything so - // cast packet into void* - // use size as data transmit size - - int size = packet->size; - socket->Write(packet, size); - - if(socket->LastCount() != size) { - // packet send did not complete - throw(AMCommsError()); - } -} -SA::Packet SA::PeekPacket(wxSocketBase* socket) -{ - // peek a Packet from the input buffer - // return it so users can construct correct type - - Packet p; - socket->Peek(&p,sizeof(Packet)); - return p; -} -void SA::RecvPacket(wxSocketBase* socket, Packet* packet) -{ - // Packet type should be correct - // read directly into the object - - socket->Read(packet,packet->size); - if(socket->LastCount() != packet->size) { - throw(AMCommsError()); - } -} - -// ------------------------------------ AudioMatrix --------------------- - -SA::AudioMatrix::AudioMatrix(int _numInputs, int _numOutputs) -{ - numInputs = _numInputs; - numOutputs = _numOutputs; - matrix.Create(numInputs+1, numOutputs+1); -} - -SA::AMNode& SA::AudioMatrix::GetNode(const AMNodeAddr& addr) -{ - // check address is valid - - if( addr.row >= 0 && - addr.row <= numInputs && - addr.col >= 0 && - addr.col <= numOutputs) { - return matrix.Index(addr.row, addr.col); - } else { - // throw exception here i think? - throw(AMCommsError()); - return nullNode; // null node - } -} - Deleted: trunk/src/resound_common/comms.h =================================================================== --- trunk/src/resound_common/comms.h 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/comms.h 2007-05-20 12:18:19 UTC (rev 18) @@ -1,168 +0,0 @@ -// -// Copyright (c) 2007 David Moore, James Mooney, All Rights Reserved. -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, -// MA 02111-1307 USA -// -#ifndef __SA_COMMS__ -#define __SA_COMMS__ - -// cant use precompiled headers here because the file crosses over client and server -// ----------------- -#ifndef _WX_SOCKET_H_ // redundant include guard // improves compile time -#include <wx/socket.h> -#endif - -#ifndef __ARRAY2__ // redundant include guard // improves compile time -#include "array2.h" -#endif -// ----------------- - -namespace SA -{ -class AMCommsError - {} -; // exception class for throwing errors -//-------------------------------------------------------------- -// node address descriptor for the matrix - -// note: prams in rows and columns are formated thus: -// row 0 column 0 = global params -// row 0 column 1-n = input params -// row 1-n column 0 = output params -// row 1-n column 1-n = matrix params - -// type always specifies the sub parameter -//-------------------------------------------------------------- - -enum AMNODEADDR_TYPE -{ - // id ( data type, description ) - NAT_NULL = -1, // ( null type invalid default) - NAT_MATRIX_NAME = 0, // ( string, matrix node name) - NAT_MATRIX_AMP, // ( float, matrix node amplification) - NAT_WHOLE_NODE // special case in node dump, type is irrelevent - whole node is copied - -}; -struct AMNodeAddr -{ - AMNODEADDR_TYPE type; // type see above - int row; // row address - depends on type - int col; // column address - depends on type - - // constructors - AMNodeAddr() - { - type = NAT_NULL; - row = col = 0; - }; - AMNodeAddr(AMNODEADDR_TYPE _type, int _row, int _col) - { - type = _type; - row = _row; - col = _col; - }; - -}; - -// a single audio matrix parameter node block -class AMNode -{ -public: - AMNode() - { - value = 0.0f; - }; - float value; // value of this node -}; - -// a class that manages the audio matrix parameters -class AudioMatrix -{ -public: - // construct - AudioMatrix(int numInputs, int numOutputs); - - // get a node specified by address - AMNode& GetNode(const AMNodeAddr& addr); -private: - int numInputs; - int numOutputs; - Array2<AMNode> matrix; - AMNode nullNode; // BETTER USING EXCEPTION!!! -}; - -// network packet types -enum PACKET_TYPES -{ - PT_RAW = 0, - PT_AMNODE, - PT_SERVER_HANDSHAKE -}; - -// raw packet base class -struct Packet -{ - int type; // type of message - int size; // size of packet - - Packet() - { - type = PT_RAW; - size = sizeof(*this); - } - ; // CHECK *this VIRTUAL VALID IN CONSTRUCTOR! -}; - -// Matrix node packets can be sent in both directions -// clients can set values on the server and vice versa -// in this way parameters are easily added to the matrix -// the matrix is always maintained at both ends - -// node integer parameter packet -struct AMNodePacket : public Packet -{ - AMNodeAddr addr; - AMNode node; - AMNodePacket() - { - type = PT_AMNODE; - size = sizeof(*this); - }; -} -; -; - -// server handshake is sent by the server upon accepting a client -struct AMServerHandshakePacket : public Packet -{ - int numInputs; - int numOutputs; - AMServerHandshakePacket() - { - type = PT_SERVER_HANDSHAKE; - size = sizeof(*this); - }; -}; - -// send and recieve packets----- -// send packet takes any packet derived object -// recv packet takes the approritae packet see peekpacket() -void SendPacket(wxSocketBase* socket, Packet* packet); -Packet PeekPacket(wxSocketBase* socket); // peeks the next packet so that callers can create the right packet for RecvPacket -void RecvPacket(wxSocketBase* socket, Packet* packet); - -} -#endif Modified: trunk/src/resound_common/osc_manager.cpp =================================================================== --- trunk/src/resound_common/osc_manager.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/osc_manager.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -32,7 +32,8 @@ // add the generic handler std::cout << "Adding OSC methods... \n"; lo_server_thread_add_method(m_loServerThread, NULL, NULL, lo_cb_generic, this); - lo_server_thread_add_method(m_loServerThread, "/ping", NULL, lo_cb_ping, this); + lo_server_thread_add_method(m_loServerThread, "/syn", NULL, lo_cb_syn, this); + lo_server_thread_add_method(m_loServerThread, "/ack", NULL, lo_cb_ack, this); // start lo_server_thread_start(m_loServerThread); @@ -40,7 +41,7 @@ // send myself a test message std::cout << "Sending self-test OSC messages... \n"; lo_address t = lo_address_new(NULL, port); - lo_send(t, "/*", "s", "OSC server loopback test message"); + lo_send(t, "/syn", "s", "resound_server selftest syn/ack"); } Resound::OSCManager::~OSCManager(){ if(m_loServerThread) {lo_server_thread_free(m_loServerThread);} @@ -53,46 +54,45 @@ } int Resound::OSCManager::lo_cb_generic(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ int i; + std::cout<< "OSC recvfrom " << lo_address_get_url(lo_message_get_source(data)) + << " to " << path << " Args("; - std::printf("OSC recvfrom %s%s(", lo_address_get_url(lo_message_get_source(data)),path); for (i=0; i<argc; i++) { - std::printf("[%d: %c ", i, types[i]); + std::cout << "["; lo_arg_pp((lo_type)types[i], argv[i]); - std::printf("]"); + std::cout << "] "; } - std::printf(")\n"); - std::fflush(stdout); + std::cout << ")\n"; return 1; } - -int Resound::OSCManager::lo_cb_ping(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ - int i; - std::string url(lo_address_get_url(lo_message_get_source(data))); - std::printf("OSC recvfrom %s%s(", url.c_str(),path); - for (i=0; i<argc; i++) { - std::printf("[%d: %c ", i, types[i]); - lo_arg_pp((lo_type)types[i], argv[i]); - std::printf("]"); - } - std::printf(")\n"); - std::fflush(stdout); - - ((OSCManager*)user_data)->recv_ping(url); - +int Resound::OSCManager::lo_cb_syn(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ + ((OSCManager*)user_data)->recv_syn(path,types,argv,argc,data,user_data); return 1; } +int Resound::OSCManager::lo_cb_ack(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ + ((OSCManager*)user_data)->recv_ack(path,types,argv,argc,data,user_data); + return 1; +} -void Resound::OSCManager::recv_ping(const std::string& url){ +void Resound::OSCManager::recv_syn(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ + std::string url(lo_address_get_url(lo_message_get_source(data))); ActiveClientMap::iterator it = m_clients.find(url); if(it == m_clients.end()){ // this is a new client tel the world std::cout << "OSC new client detected at " << url << "\n"; } m_clients[url] = 3; // three strikes and your out! + + // send back an ack + lo_send(lo_message_get_source(data), "/ack", "s", "resound_server build 1.0"); } + +void Resound::OSCManager::recv_ack(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data){ + std::cout << "recv_ack" << "\n"; +} + void Resound::OSCManager::update_clients(){ - std::cout << "OSC update_client\n"; ActiveClientMap::iterator it; for(it=m_clients.begin(); it != m_clients.end(); /*no increment because of removal see later*/){ --it->second; Modified: trunk/src/resound_common/osc_manager.h =================================================================== --- trunk/src/resound_common/osc_manager.h 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_common/osc_manager.h 2007-05-20 12:18:19 UTC (rev 18) @@ -39,15 +39,16 @@ /// liblo error callback static void lo_cb_error(int num, const char *msg, const char *path); static int lo_cb_generic(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); - static int lo_cb_ping(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); - + static int lo_cb_syn(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); + static int lo_cb_ack(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); /// call this to every second or so to update the client list /// any clients that have failed to send a ping recently will be removed void update_clients(); /// have received a ping from the osc url specified /// overriders should call the base class first - virtual void recv_ping(const std::string& url); + virtual void recv_syn(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); + virtual void recv_ack(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data); private: // OSC lo_server_thread m_loServerThread; ///< the liblo server thread Modified: trunk/src/resound_gui/amclient.cpp =================================================================== --- trunk/src/resound_gui/amclient.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/amclient.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -20,7 +20,6 @@ */ #include "pch.h" // precompiler header -#include <resound_common/comms.h> #include "automation.h" #include "pvar.h" #include "vumeterwidget.h" @@ -30,21 +29,15 @@ #include "app.h" #include "amclient.h" // classes header - +#include <sstream> // AMPVar ------------------------------------------------------------------------------------- SA::AMPVar::AMPVar() { - node = 0; needsUpdate = false; } -SA::AMPVar::AMPVar(AMNode* _node) -{ - node = _node; - needsUpdate = false; -} + SA::AMPVar::~AMPVar() { - node = 0; } void SA::AMPVar::OnValueChanged() @@ -53,157 +46,53 @@ needsUpdate = true; } -void SA::AMPVar::SetNode(AMNode* _node) -{ - node = _node; - needsUpdate = false; -} + bool SA::AMPVar::NodeNeedsUpdate() { return needsUpdate; } // called by amclient when updates should be done -void SA::AMPVar::UpdateTargetNode() +void SA::AMPVar::UpdateTarget() { // update the target value - if(node) { - node->value = CLAMPF((float)GetValue() * (1.0f/128.0f), 0.0f, 1.0f); // set the value of the node and clamp it - } + float v = CLAMPF((float)GetValue() * (1.0f/128.0f), 0.0f, 1.0f); // set the value of the node and clamp it + lo_send(m_hostAddress, m_oscAddress.c_str(), "f", v); needsUpdate = false; } +void SA::AMPVar::set_target(lo_address host, std::string path){ + m_hostAddress = host; + m_oscAddress = path; +} + // AM Client ------------------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(SA::AMClient, wxEvtHandler) -EVT_SOCKET(AM_CLIENT_SOCKET_ID, SA::AMClient::OnSocketEvent) -END_EVENT_TABLE() -SA::AMClient::AMClient(wxTextCtrl* _log) +SA::AMClient::AMClient(wxTextCtrl* _log) : +Resound::OSCManager("5678") { SetName(_("Audio Matrix")); log = _log; - socket = new wxSocketClient(); - // Setup the event handler and subscribe to events - socket->SetFlags(wxSOCKET_WAITALL); - socket->SetEventHandler(*this, AM_CLIENT_SOCKET_ID); - socket->SetNotify(wxSOCKET_CONNECTION_FLAG | - wxSOCKET_INPUT_FLAG | - wxSOCKET_LOST_FLAG); - socket->Notify(true); - // null the matrix - audioMatrix = 0; - BuildAudioMatrix(10,10); // fake matrix } SA::AMClient::~AMClient() { - if(socket) - delete socket; -} -// operations -void SA::AMClient::Connect(wxString hostname, int port) -{ - - if(address.Hostname(hostname) && address.Service(port)) { - socket->Connect(address,false); - } else { - wxMessageBox(_("Badly formatted host address!")); - } } -void SA::AMClient::Disconnect() -{} -// socket events -void SA::AMClient::OnSocketEvent(wxSocketEvent &event) -{ - SA::Packet t; - - switch(event.GetSocketEvent()) { - case wxSOCKET_INPUT: - - // see whats in the buffer - t = SA::PeekPacket(socket); - //log->AppendText(wxString::Format(_("PeekPacket() - Type: %d Size: %d\n"),t.type,t.size)); - - switch(t.type) { - // known types - case SA::PT_SERVER_HANDSHAKE: - RecvServerHandshake(); - break; - case SA::PT_AMNODE: - RecvAMNode(); - break; - - // unknown or fault - default: - log->AppendText(_("Unknown packet type or malformed!\n")); - break; - } - // p should now contain a valid pointer or null; - - - break; - case wxSOCKET_LOST: - log->AppendText(_("Disconnect\n")); - break; - case wxSOCKET_CONNECTION: - log->AppendText(_("Connect\n")); - break; - default: - log->AppendText(_("Other message\n")); - break; - } - -} - -//called by event system for a server handshake event -void SA::AMClient::RecvServerHandshake() -{ - // validate message - SA::AMServerHandshakePacket p; - SA::RecvPacket(socket,&p); - log->AppendText(wxString::Format(_("Server handshake... I/O: %d / %d \n"),p.numInputs,p.numOutputs)); - - BuildAudioMatrix(p.numInputs,p.numOutputs); - - wxGetApp().RebuildGUI(); // cause the whole gui to be rebuilt - to reflect the change of server -} - -//called by event system when data is available -void SA::AMClient::RecvAMNode() -{ - // node data received - // decode and update matrix - SA::AMNodePacket p; - SA::RecvPacket(socket,&p); - log->AppendText(wxString::Format(_("AMNodePacket Address: (%d, %d) Type: &d \n"),p.addr.row,p.addr.col,p.addr.type)); - - //update matrix - if(audioMatrix) // check ptr - { - audioMatrix->GetNode(p.addr) = p.node; // ref so should update as left side of assign - } -} - // build the audio matrix and associated PVars void SA::AMClient::BuildAudioMatrix(int _numInputs, int _numOutputs) { - // clear old matrix - // construct new client side matrix - if(audioMatrix) - delete audioMatrix; + // make pvar matrix + pVarMatrix.Create(_numInputs+1,_numOutputs+1); numInputs = _numInputs; numOutputs = _numOutputs; - audioMatrix = new AudioMatrix(numInputs,numOutputs); + lo_address host = lo_address_new(NULL, "5678"); - // make pvar matrix - pVarMatrix.Create(numInputs+1,numOutputs+1); - // fill in pvar details int r,c; for(r = 0; r < pVarMatrix.SizeX(); r++) { @@ -222,9 +111,10 @@ { name = wxString::Format(_("M %d/%d Lvl"),r,c); } - pVarMatrix.Index(r,c).SetName(name); - AMNode* node = &audioMatrix->GetNode(AMNodeAddr(NAT_MATRIX_AMP,r,c)); - pVarMatrix.Index(r,c).SetNode(node); + pVarMatrix.Index(r,c).SetName(name); + std::stringstream s; + s << "/matrix/att/" << r << "/" << c; + pVarMatrix.Index(r,c).set_target(host, s.str()); } } } @@ -267,7 +157,6 @@ { // check pvars against matrix parameters transmit if required // maintain server and client copies - if(socket->IsConnected()) { int r,c; for(r = 0; r < pVarMatrix.SizeX(); r++) { for(c = 0; c < pVarMatrix.SizeY(); c++) { @@ -275,18 +164,10 @@ if(t.NodeNeedsUpdate()) // updates the node if required { log->AppendText(wxString::Format(_("Node %d, %d\n"),r,c)); - t.UpdateTargetNode(); - - // updated the node - now post it to server - - AMNodePacket packet; - packet.addr = AMNodeAddr(NAT_MATRIX_AMP,r,c); - packet.node = audioMatrix->GetNode(packet.addr); - SendPacket(socket,&packet); + t.UpdateTarget(); // this will cause the OSC message to get sent } } } - } } Modified: trunk/src/resound_gui/amclient.h =================================================================== --- trunk/src/resound_gui/amclient.h 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/amclient.h 2007-05-20 12:18:19 UTC (rev 18) @@ -23,9 +23,7 @@ // include for transmited data format // and helper classes -enum ENUM_AM_CLIENT_SOCKET_IDS{ - AM_CLIENT_SOCKET_ID = 1 -}; +#include <resound_common/osc_manager.h> namespace SA { @@ -35,36 +33,34 @@ class AMPVar : public PVar { private: - AMNode* node; // target - bool needsUpdate; // target needs an update - + bool needsUpdate; // resound_server needs update + lo_address m_hostAddress; ///< the host address for this server + std::string m_oscAddress; ///< the osc path for this node public: /// Default constructor AMPVar(); - /// Construct and set target AMNode - /// @param _node : an AMNode* to desired target node - AMPVar(AMNode* _node); + /// Destructor virtual ~AMPVar(); /// Called automatically by PVar on actual change of value. virtual void OnValueChanged(); - /// Set the target AMNode - /// @param _node AMNode* to desired target node - void SetNode(AMNode* _node); - /// Check if the node needs update bool NodeNeedsUpdate(); /// Update the targeted node. /// Applies CLAMPF and converts from 0..128i to 0..1f - void UpdateTargetNode(); + void UpdateTarget(); + + /// set the OSC target of this node + void set_target(lo_address host, std::string path); + }; /// The client side Audio Matrix Server. /// This class deals with the socket event handling for network communication -class AMClient : public wxEvtHandler, public PVarSubSystem, public AutomatedObject +class AMClient : public Resound::OSCManager, public PVarSubSystem, public AutomatedObject { public: /// Constructor @@ -72,14 +68,7 @@ AMClient(wxTextCtrl* _log); ~AMClient(); ///< Destructor - /// Attempt connection to remote AMServer - /// @param hostname : a string with a host name "localhost" for server on same machine - /// @param port : integer port id number of service - void Connect(wxString hostname, int port); - void Disconnect(); ///< Disconnect from remote host - // implement the PVarSubSystem interface - virtual PVSSettingsPanel* SettingsPanel(wxWindow* parent); ///< Creates a sub system settings dialog virtual PVSSelectPanel* SelectPanel(wxWindow* parent); ///< create an appropriate dialog for PVar selection return the address or null address virtual PVar& GetPVar(const PVarAddress &addr); ///< get a pvar at an address - may return a fake pvar @@ -113,33 +102,13 @@ void BuildAudioMatrix(int _numInputs, int _numOutputs); Array2<AMPVar> pVarMatrix; ///< AMPVars controlled by user - AudioMatrix *audioMatrix; ///< Client side AudioMatrix pair with server version wxTextCtrl* log; ///< text control for login purposes passed in constructor - // network - wxSocketClient *socket; ///< The server connection socket - wxIPV4address address; ///< Server address for connection, set by connect - /// Socket event handler. - /// Socket events are pre processed here, specific messages are handled elsewhere - /// @see RecvServerHandshake() - /// @see RecvAMNode() - void OnSocketEvent(wxSocketEvent &event); - - // received data types - - /// Process server handshake - void RecvServerHandshake(); - - /// Process AMNodePacket from server - void RecvAMNode(); - /// Null pVar for use when an invalid address is specified PVar nullPVar; - DECLARE_EVENT_TABLE() - }; /// An interface panel visible in the collective builder dialog. Modified: trunk/src/resound_gui/app.cpp =================================================================== --- trunk/src/resound_gui/app.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/app.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -32,7 +32,6 @@ #include "masterfader.h" #include "performanceview.h" -#include <resound_common/comms.h> #include "amclient.h" #include "monitorview.h" @@ -50,6 +49,7 @@ try { DEBUG_TRACE(_T("ResoundClientApp::OnInit")); MainFrame *win = new MainFrame(_T("Resound Client"), wxPoint (100, 100),wxSize(0, 0)); + win->Show(TRUE); SetTopWindow(win); Modified: trunk/src/resound_gui/base.cpp =================================================================== --- trunk/src/resound_gui/base.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/base.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -32,7 +32,6 @@ #include "masterfader.h" #include "performanceview.h" -#include <resound_common/comms.h> #include "amclient.h" #include "monitorview.h" #include "behaviourview.h" @@ -74,21 +73,18 @@ // create the notebook pane left side wxNotebook* leftBook = new wxNotebook(this,-1); - wxNotebook* rightBook = new wxNotebook(this,-1); - wxTextCtrl *netLog = new wxTextCtrl(rightBook, wxID_ANY, + wxTextCtrl *netLog = new wxTextCtrl(leftBook, wxID_ANY, _T("Netlog...\n"), wxPoint(0,0), wxSize(300,100), wxTE_MULTILINE | wxTE_READONLY); - rightBook->AddPage(netLog,_T("Network Console"),true); + //wxMessageBox(_T("ok")); // make the network client amClient = new SA::AMClient(netLog); - PushEventHandler(amClient); - amClient->Connect(_T("localhost"),12345); // make the behaviour sub system theBehaviourManager = new SA::BehaviourManager(); @@ -124,11 +120,10 @@ leftBook->AddPage(perfView,_T("Master"),true); leftBook->AddPage(monitorView,_T("Matrix"),false); leftBook->AddPage(behaviourView,_T("Behaviour"),false); - + leftBook->AddPage(netLog,_T("Console"),false); // create top sizer and fill with stuff wxBoxSizer *topSizer = new wxBoxSizer( wxHORIZONTAL ); topSizer->Add(leftBook,wxSizerFlags(1).Center().Border(wxALL,1)); - topSizer->Add(rightBook,wxSizerFlags(1).Center().Border(wxALL,1)); // neaten up sizer SetSizer(topSizer); @@ -177,7 +172,7 @@ void MainFrame::OnAbout(wxCommandEvent& event) { - wxMessageBox(_T("implement me properly"), _T("About Resound")); + wxMessageBox(_T("Resound\n Licensed under the terms of the GNU Public Licence Version 2.0\n"), _T("About Resound")); } void MainFrame::Save(wxDataOutputStream& stream) Modified: trunk/src/resound_gui/behaviourview.cpp =================================================================== --- trunk/src/resound_gui/behaviourview.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/behaviourview.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -22,8 +22,8 @@ #include "automation.h" #include "pvar.h" // class's header file -#include <resound_common/comms.h> + #include "behaviour.h" #include "amclient.h" #include "vumeterwidget.h" Copied: trunk/src/resound_gui/image (from rev 14, trunk/bin/image) Modified: trunk/src/resound_gui/masterfader.cpp =================================================================== --- trunk/src/resound_gui/masterfader.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/masterfader.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -35,7 +35,7 @@ SA::MasterFader::MasterFader(wxWindow* parent, int id) : wxPanel(parent,id) { - SetWindowStyle(wxSIMPLE_BORDER | wxCLIP_CHILDREN); + SetWindowStyle(wxSIMPLE_BORDER ); // construct the sub objects and sizer wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer *topTierSizer = new wxBoxSizer( wxHORIZONTAL ); Modified: trunk/src/resound_gui/monitorframe.cpp =================================================================== --- trunk/src/resound_gui/monitorframe.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/monitorframe.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -18,7 +18,6 @@ // // Class automatically generated by Dev-C++ New Class wizard #include "pch.h" // precompiler header -#include <resound_common/comms.h> #include "automation.h" #include "pvar.h" #include "vumeterwidget.h" Modified: trunk/src/resound_gui/monitorview.cpp =================================================================== --- trunk/src/resound_gui/monitorview.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/monitorview.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -19,7 +19,6 @@ // Class automatically generated by Dev-C++ New Class wizard #include "pch.h" // precompiler header -#include <resound_common/comms.h> #include "automation.h" #include "pvar.h" #include "vumeterwidget.h" Modified: trunk/src/resound_gui/pvar.cpp =================================================================== --- trunk/src/resound_gui/pvar.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/pvar.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -21,7 +21,7 @@ #include "automation.h" #include "pvar.h" // class's header file -#include <resound_common/comms.h> + #include "amclient.h" // possible circular dep here requires pvar and comms #include "vumeterwidget.h" // -------------------------------- PVar -------------------------------- Modified: trunk/src/resound_gui/pvarwidgets.cpp =================================================================== --- trunk/src/resound_gui/pvarwidgets.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/pvarwidgets.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -21,7 +21,7 @@ #include "automation.h" #include "pvar.h" -#include <resound_common/comms.h> + #include "amclient.h" // possible circular dep here requires pvar and comms #include "vumeterwidget.h" Modified: trunk/src/resound_gui/vumeterwidget.h =================================================================== --- trunk/src/resound_gui/vumeterwidget.h 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_gui/vumeterwidget.h 2007-05-20 12:18:19 UTC (rev 18) @@ -69,8 +69,8 @@ public: // class constructor VUMeterWidget(wxWindow *parent,int id,int _val, int _min, int _max, - wxString offFilename = _("image/meterOff.bmp"), - wxString onFilename = _("image/meterOn.bmp")); + wxString offFilename = _("image/meterOff.png"), + wxString onFilename = _("image/meterOn.png")); void Tick(float dT); // time elapsed function for decay }; @@ -80,8 +80,8 @@ public: // class constructor PVarVUMeterWidget(wxWindow *parent,int id,int _val, int _min, int _max, - wxString offFilename = _("image/meterOff.bmp"), - wxString onFilename = _("image/meterOn.bmp")); + wxString offFilename = _("image/meterOff.png"), + wxString onFilename = _("image/meterOn.png")); void Tick(float dT); // time elapsed function for decay void SetTarget(PVarAddress addr); private: Modified: trunk/src/resound_server/resound_server.cpp =================================================================== --- trunk/src/resound_server/resound_server.cpp 2007-05-19 20:02:49 UTC (rev 17) +++ trunk/src/resound_server/resound_server.cpp 2007-05-20 12:18:19 UTC (rev 18) @@ -77,6 +77,7 @@ { usleep(1000000); // one second s_dsp->update_clients(); // cause the client list to be updated + std::cout.flush(); //flush the output stream so we get updated display in KDevelop } return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |