Changeset 3952
- Timestamp:
- 03/10/10 10:05:09 (5 months ago)
- Files:
-
- jack2/branches/libjacknet/common/jack/net.h (modified) (1 diff)
- jack2/branches/libjacknet/common/JackAudioAdapterInterface.cpp (modified) (3 diffs)
- jack2/branches/libjacknet/common/JackNetAPI.cpp (modified) (1 diff)
- jack2/branches/libjacknet/common/JackNetInterface.cpp (modified) (3 diffs)
- jack2/branches/libjacknet/common/JackNetTool.cpp (modified) (3 diffs)
- jack2/branches/libjacknet/common/JackNetTool.h (modified) (2 diffs)
- jack2/branches/libjacknet/macosx/coreaudio/TiPhoneCoreAudioRenderer.h (modified) (1 diff)
- jack2/branches/libjacknet/macosx/iphone/main_slave.mm (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
jack2/branches/libjacknet/common/jack/net.h
r3368 r3952 45 45 typedef struct { 46 46 47 int audio_input; 48 int audio_output; 49 int midi_input; 50 int midi_ou put;47 int audio_input; // from master or to slave 48 int audio_output; // to master or from slave 49 int midi_input; // from master or to slave 50 int midi_output; // to master or from slave 51 51 int mtu; 52 52 int time_out; // in millisecond, -1 means in infinite jack2/branches/libjacknet/common/JackAudioAdapterInterface.cpp
r3926 r3952 258 258 259 259 #ifdef JACK_MONITOR 260 if (fCaptureRingBuffer [0] != NULL)260 if (fCaptureRingBuffer && fCaptureRingBuffer[0] != NULL) 261 261 fTable.Write(fCaptureRingBuffer[0]->GetError(), fCaptureRingBuffer[0]->GetError() - delta_frames, ratio, 1/ratio, fCaptureRingBuffer[0]->ReadSpace(), fCaptureRingBuffer[0]->ReadSpace()); 262 262 #endif … … 265 265 for (int i = 0; i < fCaptureChannels; i++) { 266 266 fCaptureRingBuffer[i]->SetRatio(ratio); 267 if (fCaptureRingBuffer[i]->WriteResample(inputBuffer[i], frames) < frames) 268 failure = true; 267 if (inputBuffer[i]) { 268 if (fCaptureRingBuffer[i]->WriteResample(inputBuffer[i], frames) < frames) { 269 failure = true; 270 } 271 } 269 272 } 270 273 271 274 for (int i = 0; i < fPlaybackChannels; i++) { 272 275 fPlaybackRingBuffer[i]->SetRatio(1/ratio); 273 if (fPlaybackRingBuffer[i]->ReadResample(outputBuffer[i], frames) < frames) 274 failure = true; 276 if (outputBuffer[i]) { 277 if (fPlaybackRingBuffer[i]->ReadResample(outputBuffer[i], frames) < frames) { 278 failure = true; 279 } 280 } 275 281 } 276 282 // Reset all ringbuffers in case of failure … … 298 304 // Push/pull from ringbuffer 299 305 for (int i = 0; i < fCaptureChannels; i++) { 300 if (fCaptureRingBuffer[i]->Read(inputBuffer[i], frames) < frames) 301 res = -1; 306 if (inputBuffer[i]) { 307 if (fCaptureRingBuffer[i]->Read(inputBuffer[i], frames) < frames) { 308 res = -1; 309 } 310 } 302 311 } 303 312 304 313 for (int i = 0; i < fPlaybackChannels; i++) { 305 if (fPlaybackRingBuffer[i]->Write(outputBuffer[i], frames) < frames) 306 res = -1; 314 if (outputBuffer[i]) { 315 if (fPlaybackRingBuffer[i]->Write(outputBuffer[i], frames) < frames) { 316 res = -1; 317 } 318 } 307 319 } 308 320 jack2/branches/libjacknet/common/JackNetAPI.cpp
r3950 r3952 749 749 { 750 750 //ringbuffers 751 fCaptureRingBuffer = new JackResampler*[fCaptureChannels]; 752 fPlaybackRingBuffer = new JackResampler*[fPlaybackChannels]; 751 752 if (fCaptureChannels > 0) 753 fCaptureRingBuffer = new JackResampler*[fCaptureChannels]; 754 if (fPlaybackChannels > 0) 755 fPlaybackRingBuffer = new JackResampler*[fPlaybackChannels]; 753 756 754 757 if (fAdaptative) { jack2/branches/libjacknet/common/JackNetInterface.cpp
r3951 r3952 235 235 //audio net buffers 236 236 #ifdef CELT 237 fNetAudioCaptureBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 238 fNetAudioPlaybackBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 237 if (fParams.fSendAudioChannels) 238 fNetAudioCaptureBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 239 240 if (fParams.fReturnAudioChannels) 241 fNetAudioPlaybackBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 239 242 240 243 //fNetAudioCaptureBuffer = new NetIntAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 241 244 //fNetAudioPlaybackBuffer = new NetIntAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 242 245 #else 243 fNetAudioCaptureBuffer = new Net SingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData );244 fNetAudioPlaybackBuffer = new Net SingleAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData );246 fNetAudioCaptureBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 247 fNetAudioPlaybackBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 245 248 #endif 249 250 //fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 251 //fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 252 246 253 } catch (exception&) { 247 254 jack_error("NetAudioBuffer allocation error..."); 248 255 return false; 249 256 } 250 251 //fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 252 //fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 253 254 assert(fNetAudioCaptureBuffer); 255 assert(fNetAudioPlaybackBuffer); 256 257 257 258 //set the new timeout for the socket 258 259 if (SetRxTimeout() == SOCKET_ERROR) { … … 742 743 743 744 //audio net buffers 744 //fNetAudioCaptureBuffer = new Net SingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData );745 //fNetAudioPlaybackBuffer = new Net SingleAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData );745 //fNetAudioCaptureBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 746 //fNetAudioPlaybackBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 746 747 747 748 try { 748 749 #ifdef CELT 749 fNetAudioCaptureBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 750 fNetAudioPlaybackBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 750 if (fParams.fSendAudioChannels) 751 fNetAudioCaptureBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 752 753 if (fParams.fReturnAudioChannels) 754 fNetAudioPlaybackBuffer = new NetCeltAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 751 755 752 756 // fNetAudioCaptureBuffer = new NetIntAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 753 757 // fNetAudioPlaybackBuffer = new NetIntAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 754 758 #else 755 fNetAudioCaptureBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 756 fNetAudioPlaybackBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 759 fNetAudioCaptureBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 760 fNetAudioPlaybackBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 761 757 762 //fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 758 763 //fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); … … 763 768 } 764 769 765 assert ( fNetAudioCaptureBuffer ); 766 assert ( fNetAudioPlaybackBuffer ); 767 768 //set the new buffer sizes 770 //set the new buffer sizes 769 771 if ( SetNetBufferSize() == SOCKET_ERROR ) { 770 772 jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) ); jack2/branches/libjacknet/common/JackNetTool.cpp
r3951 r3952 208 208 // net audio buffer ********************************************************************************* 209 209 210 Net SingleAudioBuffer::NetSingleAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer )210 NetFloatAudioBuffer::NetFloatAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ) 211 211 : fPortBuffer(params, nports), fNetBuffer(net_buffer) 212 212 {} 213 213 214 Net SingleAudioBuffer::~NetSingleAudioBuffer()214 NetFloatAudioBuffer::~NetFloatAudioBuffer() 215 215 {} 216 216 217 size_t Net SingleAudioBuffer::GetCycleSize()217 size_t NetFloatAudioBuffer::GetCycleSize() 218 218 { 219 219 return fPortBuffer.GetCycleSize(); 220 220 } 221 221 222 void Net SingleAudioBuffer::SetBuffer ( int index, sample_t* buffer )222 void NetFloatAudioBuffer::SetBuffer ( int index, sample_t* buffer ) 223 223 { 224 224 fPortBuffer.SetBuffer(index, buffer); 225 225 } 226 226 227 sample_t* Net SingleAudioBuffer::GetBuffer ( int index )227 sample_t* NetFloatAudioBuffer::GetBuffer ( int index ) 228 228 { 229 229 return fPortBuffer.GetBuffer(index); 230 230 } 231 231 232 int Net SingleAudioBuffer::RenderFromJackPorts ()232 int NetFloatAudioBuffer::RenderFromJackPorts () 233 233 { 234 234 return fPortBuffer.RenderFromJackPorts(); 235 235 } 236 236 237 int Net SingleAudioBuffer::RenderToJackPorts ()237 int NetFloatAudioBuffer::RenderToJackPorts () 238 238 { 239 239 return fPortBuffer.RenderToJackPorts(); … … 241 241 242 242 //network<->buffer 243 int Net SingleAudioBuffer::RenderFromNetwork ( int cycle, int subcycle, size_t copy_size )243 int NetFloatAudioBuffer::RenderFromNetwork ( int cycle, int subcycle, size_t copy_size ) 244 244 { 245 245 return fPortBuffer.RenderFromNetwork(fNetBuffer, cycle, subcycle, copy_size); 246 246 } 247 247 248 int Net SingleAudioBuffer::RenderToNetwork (int subcycle, size_t total_size )248 int NetFloatAudioBuffer::RenderToNetwork (int subcycle, size_t total_size ) 249 249 { 250 250 return fPortBuffer.RenderToNetwork(fNetBuffer, subcycle, total_size); … … 457 457 458 458 #endif 459 460 459 461 460 NetIntAudioBuffer::NetIntAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ) jack2/branches/libjacknet/common/JackNetTool.h
r3951 r3952 512 512 }; 513 513 514 class SERVER_EXPORT Net SingleAudioBuffer : public NetAudioBuffer514 class SERVER_EXPORT NetFloatAudioBuffer : public NetAudioBuffer 515 515 { 516 516 private: … … 521 521 public: 522 522 523 Net SingleAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer );524 ~Net SingleAudioBuffer();523 NetFloatAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ); 524 ~NetFloatAudioBuffer(); 525 525 526 526 // needed size in bytes for an entire cycle jack2/branches/libjacknet/macosx/coreaudio/TiPhoneCoreAudioRenderer.h
r3932 r3952 60 60 :fDevNumInChans(input), fDevNumOutChans(output), fAudioCallback(NULL), fCallbackArg(NULL) 61 61 { 62 memset(fInChannel, 0, sizeof(float*) * MAX_CHANNELS); 63 memset(fOutChannel, 0, sizeof(float*) * MAX_CHANNELS); 64 62 65 for (int i = 0; i < fDevNumInChans; i++) { 63 66 fInChannel[i] = new float[8192]; jack2/branches/libjacknet/macosx/iphone/main_slave.mm
r3951 r3952 12 12 #include "TiPhoneCoreAudioRenderer.h" 13 13 14 #define NUM_INPUT 214 #define NUM_INPUT 0 15 15 #define NUM_OUTPUT 2 16 16 … … 20 20 int buffer_size; 21 21 int sample_rate; 22 22 23 23 24 static int net_process(jack_nframes_t buffer_size, … … 33 34 { 34 35 36 //printf("audio_input %d audio_output %d \n", audio_input, audio_output); 35 37 jack_adapter_pull_and_push(adapter, audio_output_buffer, audio_input_buffer, buffer_size); 36 38 … … 58 60 NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; 59 61 60 jack_slave_t request = { NUM_ INPUT, NUM_OUTPUT, 0, 0, WIFI_MTU, -1, JackSlowMode };62 jack_slave_t request = { NUM_OUTPUT, NUM_INPUT, 0, 0, WIFI_MTU, -1, JackSlowMode }; 61 63 jack_master_t result; 62 64 … … 74 76 return -1; 75 77 } 76 78 77 79 TiPhoneCoreAudioRenderer audio_device(NUM_INPUT, NUM_OUTPUT); 78 80 81 79 82 jack_set_net_slave_process_callback(net, net_process, NULL); 80 83 if (jack_net_slave_activate(net) != 0) {
