コード例 #1
0
  JucePlayer(PropertiesFile *propertiesfile)
  {
    this->propertiesfile=propertiesfile;

    jp_isplaying=false;
    isreadingdata=false;
    pleasestop=false;
    isinitialized=false;
    isusingjack=false;

    {
      num_src_states=0;
      src_states=NULL;
    }

    {
      ov_callbacks ov_cb={oggread_func,oggseek_func,oggclose_func,oggtell_func};
      lastreadoggpos=-1;
      nextreadoggpos=-1;      
      if(ov_open_callbacks(&oggvorbisfile,&oggvorbisfile,NULL,0,ov_cb)==0)
	isplaying_ogg=true;
      else
	isplaying_ogg=false;
      N=getSourceLength();
      R=44100;
      oggsrc_state=src_callback_new(audio_getOggResampledData_callback,SRC_QUALITY,2,NULL,NULL);
    }


#ifdef HAVE_JACK
    samplerate=init_jack(audio_jack_callback);

    if(samplerate!=-1){
      isinitialized=true;
      isusingjack=true;
    }else
#endif
      initJuceAudio();


    audioDeviceManager.addChangeListener(this);
  }