void play(){ int num_channels=getSourceNumChannels(); if(isinitialized==false || num_channels==0) return; if(isusingjack==false && audioDeviceManager.getCurrentAudioDevice()==NULL) return; stop(); GUI_newprocess(source_init); //source_init(); //fprintf(stderr,"GUI_newprocess finished\n"); #if 0 if(isusingjack==false){ if(audioDeviceManager.getOutputChannels().countNumberOfSetBits()!=getSourceNumChannels()){ if(num_channels==1) num_channels=2; outchannels=new BitArray(0); for(int lokke=0;lokke<num_channels;lokke++) outchannels->setBit(lokke); audioDeviceManager.setAudioDevice( audioDeviceManager.getAvailableAudioDeviceNames()[0], 1024, R, new BitArray(0), outchannels, false); } } #endif { int error; for(int i=0;i<num_src_states;i++) src_delete(src_states[i]); free(src_states); src_states=(SRC_STATE**)malloc(sizeof(SRC_STATE*)*num_channels); for(int ch=0;ch<num_channels;ch++) src_states[ch]=src_new(SRC_QUALITY,1,&error); } pleasestop=false; jp_playpos=0; mustrunonemore=false; jp_isplaying=true; isreadingdata=true; }