X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fconvert.C;h=18791e1e8cb95d7be255497feeeafb022b727566;hp=370adcc9ca401f7d0f3339f2a46039ed3c06c414;hb=3abbd84aa85907d646b13c98295ce778d2a71215;hpb=d17640d4122d028eee849d9fedf8ba35f7f0f6e0 diff --git a/cinelerra-5.1/cinelerra/convert.C b/cinelerra-5.1/cinelerra/convert.C index 370adcc9..18791e1e 100644 --- a/cinelerra-5.1/cinelerra/convert.C +++ b/cinelerra-5.1/cinelerra/convert.C @@ -719,84 +719,3 @@ int ConvertBeepOnDone::handle_event() return 1; } -ConvertBeep::ConvertBeep(MWindow *mwindow) - : Thread(1, 0, 0) -{ - this->mwindow = mwindow; - audio = new AudioDevice(mwindow); - playing_audio = 0; - interrupted = -1; -} - -ConvertBeep::~ConvertBeep() -{ - stop(0); - delete audio; -} - -void ConvertBeep::run() -{ - int channels = 2; - int64_t bfrsz = BEEP_SAMPLE_RATE; - EDL *edl = mwindow->edl; - EDLSession *session = edl->session; - AudioOutConfig *aconfig = session->playback_config->aconfig; - audio->open_output(aconfig, BEEP_SAMPLE_RATE, bfrsz, channels, 0); - audio->start_playback(); - - double out0[bfrsz], out1[bfrsz], *out[2] = { out0, out1 }; - const double two_pi = 2*M_PI; - int64_t audio_len = BEEP_SAMPLE_RATE * secs; - const double dt = two_pi * freq/BEEP_SAMPLE_RATE; - double th = 0; - - audio_pos = 0; - playing_audio = 1; - while( !interrupted ) { - int len = audio_len - audio_pos; - if( len <= 0 ) break; - if( len > bfrsz ) len = bfrsz; - int k = audio_pos; - for( int i=0; i= 0 ) th = t; - out0[i] = out1[i] = sin(th) * gain; - } - audio->write_buffer(out, channels, len); - audio_pos = k; - } - - if( !interrupted ) - audio->set_last_buffer(); - audio->stop_audio(interrupted ? 0 : 1); - playing_audio = 0; - - audio->close_all(); -} - -void ConvertBeep::start() -{ - if( running() ) return; - audio_pos = -1; - interrupted = 0; - Thread::start(); -} - -void ConvertBeep::stop(int wait) -{ - if( running() && !interrupted ) { - interrupted = 1; - audio->stop_audio(wait); - } - Thread::join(); -} - -void ConvertBeep::tone(double freq, double secs, double gain) -{ - stop(0); - this->freq = freq; - this->secs = secs; - this->gain = gain; - start(); -} -