Changeset 3924

Show
Ignore:
Timestamp:
02/24/10 12:20:41 (5 months ago)
Author:
sletz
Message:

Streaming from Mac to iPod (in slave mode) now somewhat works.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • jack2/branches/libjacknet/common/JackAudioAdapterInterface.cpp

    r3918 r3924  
    182182        if (fRingbufferCurSize > DEFAULT_RB_SIZE)  
    183183            fRingbufferCurSize = DEFAULT_RB_SIZE; 
     184             
     185        jack_log("JackAudioAdapterInterface::ResetRingBuffers new_size = %ld", fRingbufferCurSize); 
    184186         
    185187        for (int i = 0; i < fCaptureChannels; i++) 
  • jack2/branches/libjacknet/common/JackAudioAdapterInterface.h

    r3448 r3924  
    130130                fPIControler(host_sample_rate / host_sample_rate, 256), 
    131131                fQuality(0), 
     132                fRingbufferCurSize(DEFAULT_ADAPTATIVE_SIZE), 
    132133                fPullAndPushTime(0), 
    133                 fRunning ( false ) 
     134                fRunning(false), 
     135                fAdaptative(true) 
    134136        {} 
    135137 
  • jack2/branches/libjacknet/common/JackNetAPI.cpp

    r3923 r3924  
    747747        fCaptureRingBuffer = new JackResampler*[fCaptureChannels]; 
    748748        fPlaybackRingBuffer = new JackResampler*[fPlaybackChannels]; 
    749         for (int i = 0; i < fCaptureChannels; i++ ) 
     749         
     750         if (fAdaptative) { 
     751            AdaptRingBufferSize(); 
     752            jack_info("Ringbuffer automatic adaptative mode size = %d frames", fRingbufferCurSize); 
     753        } else { 
     754            if (fRingbufferCurSize > DEFAULT_RB_SIZE)  
     755                fRingbufferCurSize = DEFAULT_RB_SIZE; 
     756            jack_info("Fixed ringbuffer size = %d frames", fRingbufferCurSize); 
     757        } 
     758 
     759        for (int i = 0; i < fCaptureChannels; i++ ) { 
    750760            fCaptureRingBuffer[i] = new JackResampler(); 
    751         for (int i = 0; i < fPlaybackChannels; i++ ) 
     761            fCaptureRingBuffer[i]->Reset(fRingbufferCurSize); 
     762        } 
     763        for (int i = 0; i < fPlaybackChannels; i++ ) { 
    752764            fPlaybackRingBuffer[i] = new JackResampler(); 
     765            fPlaybackRingBuffer[i]->Reset(fRingbufferCurSize); 
     766        } 
    753767 
    754768        if (fCaptureChannels > 0) 
     
    926940    va_list ap; 
    927941    va_start(ap, fmt); 
    928     jack_format_and_log(LOG_LEVEL_INFO, "Jack: ", fmt, ap); 
     942    //jack_format_and_log(LOG_LEVEL_INFO, "Jack: ", fmt, ap); 
    929943    va_end(ap); 
    930944} 
  • jack2/branches/libjacknet/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj

    r3923 r3924  
    2828                4B0772340F54018C000DC657 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; }; 
    2929                4B07724A0F54021B000DC657 /* main_slave.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B0772490F54021B000DC657 /* main_slave.mm */; }; 
    30                 4B0772510F54022D000DC657 /* main_master.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B0772500F54022D000DC657 /* main_master.mm */; }; 
    3130                4B0773860F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B0773850F541EE2000DC657 /* iPhoneNetAppDelegate.m */; }; 
    3231                4B0773870F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B0773850F541EE2000DC657 /* iPhoneNetAppDelegate.m */; }; 
     
    7473                4B4146AC10BD3C4300C12F0C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B1A95750F49CEAB00D3626B /* AudioToolbox.framework */; }; 
    7574                4BBDC8FA0F5420C000465F9C /* freeverb.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BBDC8F90F5420C000465F9C /* freeverb.mm */; }; 
     75                4BC9C1F71135AB2800D22670 /* main_master.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B0772500F54022D000DC657 /* main_master.mm */; }; 
    7676                4BCB37B6112D647C008C7BC1 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; 
    7777                4BCB37C7112D647C008C7BC1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 
     
    162162                4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    163163                4BBDC8F90F5420C000465F9C /* freeverb.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = freeverb.mm; sourceTree = SOURCE_ROOT; }; 
     164                4BC9C1D31135AA1800D22670 /* iPhoneNetMasterAppl-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iPhoneNetMasterAppl-Info.plist"; sourceTree = "<group>"; }; 
    164165                4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaust.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    165166                4BCB37D5112D64B4008C7BC1 /* HardwareClock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HardwareClock.cpp; sourceTree = SOURCE_ROOT; }; 
    166167                4BCB37D8112D64D8008C7BC1 /* iphone-faust.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "iphone-faust.mm"; sourceTree = SOURCE_ROOT; }; 
    167                 4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneThruNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
     168                4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    168169                4BCF75F610BC30140082C526 /* audio_thru.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_thru.mm; sourceTree = SOURCE_ROOT; }; 
    169170                4BF1360E0F4B0B4C00218A3F /* JackAudioAdapterInterface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackAudioAdapterInterface.cpp; path = ../../common/JackAudioAdapterInterface.cpp; sourceTree = SOURCE_ROOT; }; 
     
    263264                                4BFF45770F4D5D9700106083 /* iPhoneFaustNet.app */, 
    264265                                4B0772380F54018C000DC657 /* iPhoneNetMaster.app */, 
    265                                 4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */, 
     266                                4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */, 
    266267                                4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */, 
    267268                                4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */, 
     
    320321                                28AD733E0D9D9553002E5188 /* MainWindow.xib */, 
    321322                                8D1107310486CEB800E47090 /* Info.plist */, 
     323                                4BC9C1D31135AA1800D22670 /* iPhoneNetMasterAppl-Info.plist */, 
    322324                        ); 
    323325                        name = Resources; 
     
    453455                        name = iPhoneThruNet; 
    454456                        productName = iPhoneNet; 
    455                         productReference = 4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */; 
     457                        productReference = 4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */; 
    456458                        productType = "com.apple.product-type.application"; 
    457459                }; 
     
    584586                                4B07722D0F54018C000DC657 /* JackResampler.cpp in Sources */, 
    585587                                4B07722E0F54018C000DC657 /* ringbuffer.c in Sources */, 
    586                                 4B0772510F54022D000DC657 /* main_master.mm in Sources */, 
    587588                                4B0773860F541EE2000DC657 /* iPhoneNetAppDelegate.m in Sources */, 
    588589                                4B27918B0F72570C000536B7 /* JackGlobals.cpp in Sources */, 
    589590                                4BF15E2511356A3E00B36B9A /* CAHostTimeBase.cpp in Sources */, 
    590591                                4BF15F7811357A0E00B36B9A /* TiPhoneCoreAudioRenderer.cpp in Sources */, 
     592                                4BC9C1F71135AB2800D22670 /* main_master.mm in Sources */, 
    591593                        ); 
    592594                        runOnlyForDeploymentPostprocessing = 0; 
     
    700702                                GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; 
    701703                                HEADER_SEARCH_PATHS = ( 
     704                                        ../../macosx/coreaudio, 
    702705                                        ../../macosx, 
    703706                                        ../../posix, 
     
    712715                                OTHER_LDFLAGS = ""; 
    713716                                PRODUCT_NAME = iPhoneNetSlave; 
    714                                 SDKROOT = iphoneos2.2.1
     717                                SDKROOT = iphoneos3.1.3
    715718                        }; 
    716719                        name = Debug; 
     
    724727                                GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; 
    725728                                HEADER_SEARCH_PATHS = ( 
     729                                        ../../macosx/coreaudio, 
    726730                                        ../../common/jack, 
    727731                                        ../../common, 
  • jack2/branches/libjacknet/macosx/iphone/main_master.mm

    r3923 r3924  
    2727jack_slave_t result; 
    2828 
    29 void MasterAudioCallback(int frames, float** inputs, float** outputs, void* arg) 
     29static void MasterAudioCallback(int frames, float** inputs, float** outputs, void* arg) 
    3030{ 
    3131    int i;  
  • jack2/branches/libjacknet/macosx/iphone/main_slave.mm

    r3922 r3924  
    1010#include <jack/net.h> 
    1111 
     12#include "TiPhoneCoreAudioRenderer.h" 
     13 
    1214#define NUM_INPUT 2 
    1315#define NUM_OUTPUT 2 
     
    1618jack_adapter_t* adapter; 
    1719 
     20int buffer_size; 
     21int sample_rate ; 
     22 
     23 
    1824static int net_process(jack_nframes_t buffer_size, 
    19                             int audio_input,  
    20                             float** audio_input_buffer,  
    21                             int midi_input, 
    22                             void** midi_input_buffer, 
    23                             int audio_output, 
    24                             float** audio_output_buffer,  
    25                             int midi_output,  
    26                             void** midi_output_buffer,  
    27                             void* data) 
     25                        int audio_input,  
     26                        float** audio_input_buffer,  
     27                        int midi_input, 
     28                        void** midi_input_buffer, 
     29                        int audio_output, 
     30                        float** audio_output_buffer,  
     31                        int midi_output,  
     32                        void** midi_output_buffer,  
     33                        void* data) 
    2834{ 
    29     // Process input, produce output 
    30     if (audio_input == audio_output) { 
    31         // Copy input to output 
    32         for (int i = 0; i < audio_input; i++) { 
    33             memcpy(audio_output_buffer[i], audio_input_buffer[i], buffer_size * sizeof(float)); 
    34         } 
    35     } 
     35 
     36    jack_adapter_pull_and_push(adapter, audio_output_buffer, audio_input_buffer, buffer_size); 
    3637    return 0; 
     38} 
     39 
     40static void SlaveAudioCallback(int frames, float** inputs, float** outputs, void* arg) 
     41{ 
     42    jack_adapter_push_and_pull(adapter, inputs, outputs, frames); 
    3743} 
    3844 
     
    4753        return -1; 
    4854    } 
     55     
     56    if ((adapter = jack_create_adapter(NUM_INPUT,  
     57                                    NUM_OUTPUT,  
     58                                    result.buffer_size,  
     59                                    result.sample_rate,  
     60                                    result.buffer_size,  
     61                                    result.sample_rate)) == 0) { 
     62        return -1; 
     63    } 
     64     
     65    TiPhoneCoreAudioRenderer audio_device(NUM_INPUT, NUM_OUTPUT); 
    4966 
    5067    jack_set_net_slave_process_callback(net, net_process, NULL); 
     
    5370    } 
    5471     
     72    if (audio_device.OpenDefault(result.buffer_size, result.sample_rate) < 0) { 
     73        return -1; 
     74    } 
     75     
     76    audio_device.SetAudioCallback(SlaveAudioCallback, NULL); 
     77    
     78    if (audio_device.Start() < 0) { 
     79        return -1; 
     80    } 
     81     
    5582    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    5683    [pool release]; 
     84     
     85    audio_device.Stop(); 
     86    audio_device.Close(); 
    5787     
    5888    // Wait for application end 
    5989    jack_net_slave_deactivate(net); 
    6090    jack_net_slave_close(net); 
     91    jack_destroy_adapter(adapter); 
    6192    return retVal; 
    6293}