Changeset 3952

Show
Ignore:
Timestamp:
03/10/10 10:05:09 (5 months ago)
Author:
sletz
Message:

Correct input or output only.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • jack2/branches/libjacknet/common/jack/net.h

    r3368 r3952  
    4545typedef struct { 
    4646     
    47     int audio_input;    
    48     int audio_output; 
    49     int midi_input; 
    50     int midi_ouput;  
     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 
    5151    int mtu; 
    5252    int time_out;       // in millisecond, -1 means in infinite 
  • jack2/branches/libjacknet/common/JackAudioAdapterInterface.cpp

    r3926 r3952  
    258258         
    259259    #ifdef JACK_MONITOR 
    260         if (fCaptureRingBuffer[0] != NULL) 
     260        if (fCaptureRingBuffer && fCaptureRingBuffer[0] != NULL) 
    261261            fTable.Write(fCaptureRingBuffer[0]->GetError(), fCaptureRingBuffer[0]->GetError() - delta_frames, ratio, 1/ratio, fCaptureRingBuffer[0]->ReadSpace(), fCaptureRingBuffer[0]->ReadSpace()); 
    262262    #endif 
     
    265265        for (int i = 0; i < fCaptureChannels; i++) { 
    266266            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            } 
    269272        } 
    270273 
    271274        for (int i = 0; i < fPlaybackChannels; i++) { 
    272275            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            } 
    275281        } 
    276282        // Reset all ringbuffers in case of failure 
     
    298304        // Push/pull from ringbuffer 
    299305        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            } 
    302311        } 
    303312 
    304313        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            } 
    307319        } 
    308320         
  • jack2/branches/libjacknet/common/JackNetAPI.cpp

    r3950 r3952  
    749749    { 
    750750        //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]; 
    753756         
    754757        if (fAdaptative) { 
  • jack2/branches/libjacknet/common/JackNetInterface.cpp

    r3951 r3952  
    235235        //audio net buffers 
    236236    #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 ); 
    239242             
    240243            //fNetAudioCaptureBuffer = new NetIntAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 
    241244            //fNetAudioPlaybackBuffer = new NetIntAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 
    242245    #else 
    243             fNetAudioCaptureBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 
    244             fNetAudioPlaybackBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 
     246            fNetAudioCaptureBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 
     247            fNetAudioPlaybackBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData ); 
    245248    #endif     
     249     
     250            //fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fTxData ); 
     251            //fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fRxData );      
     252      
    246253        } catch (exception&) { 
    247254            jack_error("NetAudioBuffer allocation error..."); 
    248255            return false; 
    249256        } 
    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        
    257258        //set the new timeout for the socket 
    258259        if (SetRxTimeout() == SOCKET_ERROR) { 
     
    742743 
    743744        //audio net buffers 
    744         //fNetAudioCaptureBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 
    745         //fNetAudioPlaybackBuffer = new NetSingleAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 
     745        //fNetAudioCaptureBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 
     746        //fNetAudioPlaybackBuffer = new NetFloatAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 
    746747     
    747748        try { 
    748749    #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 ); 
    751755             
    752756            // fNetAudioCaptureBuffer = new NetIntAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 
    753757           // fNetAudioPlaybackBuffer = new NetIntAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 
    754758    #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             
    757762            //fNetAudioCaptureBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fSendAudioChannels, fRxData ); 
    758763            //fNetAudioPlaybackBuffer = new NetBufferedAudioBuffer ( &fParams, fParams.fReturnAudioChannels, fTxData ); 
     
    763768        } 
    764769     
    765         assert ( fNetAudioCaptureBuffer ); 
    766         assert ( fNetAudioPlaybackBuffer ); 
    767          
    768          //set the new buffer sizes 
     770        //set the new buffer sizes 
    769771        if ( SetNetBufferSize() == SOCKET_ERROR ) { 
    770772            jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) ); 
  • jack2/branches/libjacknet/common/JackNetTool.cpp

    r3951 r3952  
    208208// net audio buffer ********************************************************************************* 
    209209 
    210     NetSingleAudioBuffer::NetSingleAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ) 
     210    NetFloatAudioBuffer::NetFloatAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ) 
    211211        : fPortBuffer(params, nports), fNetBuffer(net_buffer) 
    212212    {} 
    213213 
    214     NetSingleAudioBuffer::~NetSingleAudioBuffer() 
     214    NetFloatAudioBuffer::~NetFloatAudioBuffer() 
    215215    {} 
    216216 
    217     size_t NetSingleAudioBuffer::GetCycleSize() 
     217    size_t NetFloatAudioBuffer::GetCycleSize() 
    218218    { 
    219219        return fPortBuffer.GetCycleSize(); 
    220220    } 
    221221 
    222     void NetSingleAudioBuffer::SetBuffer ( int index, sample_t* buffer ) 
     222    void NetFloatAudioBuffer::SetBuffer ( int index, sample_t* buffer ) 
    223223    { 
    224224        fPortBuffer.SetBuffer(index, buffer); 
    225225    } 
    226226 
    227     sample_t* NetSingleAudioBuffer::GetBuffer ( int index ) 
     227    sample_t* NetFloatAudioBuffer::GetBuffer ( int index ) 
    228228    { 
    229229        return fPortBuffer.GetBuffer(index); 
    230230    } 
    231231 
    232     int NetSingleAudioBuffer::RenderFromJackPorts () 
     232    int NetFloatAudioBuffer::RenderFromJackPorts () 
    233233    { 
    234234        return fPortBuffer.RenderFromJackPorts(); 
    235235    } 
    236236 
    237     int NetSingleAudioBuffer::RenderToJackPorts () 
     237    int NetFloatAudioBuffer::RenderToJackPorts () 
    238238    { 
    239239        return fPortBuffer.RenderToJackPorts(); 
     
    241241     
    242242     //network<->buffer 
    243     int NetSingleAudioBuffer::RenderFromNetwork ( int cycle,  int subcycle, size_t copy_size ) 
     243    int NetFloatAudioBuffer::RenderFromNetwork ( int cycle,  int subcycle, size_t copy_size ) 
    244244    { 
    245245        return fPortBuffer.RenderFromNetwork(fNetBuffer, cycle, subcycle, copy_size); 
    246246    } 
    247247     
    248     int NetSingleAudioBuffer::RenderToNetwork (int subcycle, size_t total_size ) 
     248    int NetFloatAudioBuffer::RenderToNetwork (int subcycle, size_t total_size ) 
    249249    { 
    250250        return fPortBuffer.RenderToNetwork(fNetBuffer, subcycle, total_size); 
     
    457457 
    458458#endif 
    459  
    460459 
    461460    NetIntAudioBuffer::NetIntAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ) 
  • jack2/branches/libjacknet/common/JackNetTool.h

    r3951 r3952  
    512512    }; 
    513513 
    514     class SERVER_EXPORT NetSingleAudioBuffer : public NetAudioBuffer 
     514    class SERVER_EXPORT NetFloatAudioBuffer : public NetAudioBuffer 
    515515    { 
    516516        private: 
     
    521521        public: 
    522522         
    523             NetSingleAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ); 
    524             ~NetSingleAudioBuffer(); 
     523            NetFloatAudioBuffer ( session_params_t* params, uint32_t nports, char* net_buffer ); 
     524            ~NetFloatAudioBuffer(); 
    525525     
    526526            // needed size in bytes for an entire cycle 
  • jack2/branches/libjacknet/macosx/coreaudio/TiPhoneCoreAudioRenderer.h

    r3932 r3952  
    6060            :fDevNumInChans(input), fDevNumOutChans(output), fAudioCallback(NULL), fCallbackArg(NULL) 
    6161        { 
     62            memset(fInChannel, 0, sizeof(float*) * MAX_CHANNELS); 
     63            memset(fOutChannel, 0, sizeof(float*) * MAX_CHANNELS); 
     64             
    6265            for (int i = 0; i < fDevNumInChans; i++) { 
    6366                fInChannel[i] = new float[8192]; 
  • jack2/branches/libjacknet/macosx/iphone/main_slave.mm

    r3951 r3952  
    1212#include "TiPhoneCoreAudioRenderer.h" 
    1313 
    14 #define NUM_INPUT 2 
     14#define NUM_INPUT 0 
    1515#define NUM_OUTPUT 2 
    1616 
     
    2020int buffer_size; 
    2121int sample_rate; 
     22 
    2223 
    2324static int net_process(jack_nframes_t buffer_size, 
     
    3334{ 
    3435 
     36    //printf("audio_input %d  audio_output %d \n", audio_input, audio_output); 
    3537    jack_adapter_pull_and_push(adapter, audio_output_buffer, audio_input_buffer, buffer_size); 
    3638     
     
    5860    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; 
    5961     
    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 }; 
    6163    jack_master_t result; 
    6264 
     
    7476        return -1; 
    7577    } 
    76      
     78     
    7779    TiPhoneCoreAudioRenderer audio_device(NUM_INPUT, NUM_OUTPUT); 
    78  
     80   
     81   
    7982    jack_set_net_slave_process_callback(net, net_process, NULL); 
    8083    if (jack_net_slave_activate(net) != 0) {