X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Famodule.C;h=aee3f5f084431e9fb45b503bba95ac3ad382ed28;hb=ecf90ad2d14e5f72505b824b7b50edd717d2d404;hp=1ef4a4fa4009c31870591b82870b8e971e8016a9;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/amodule.C b/cinelerra-5.1/cinelerra/amodule.C index 1ef4a4fa..aee3f5f0 100644 --- a/cinelerra-5.1/cinelerra/amodule.C +++ b/cinelerra-5.1/cinelerra/amodule.C @@ -150,11 +150,10 @@ AModule::AModule(RenderEngine *renderengine, data_type = TRACK_AUDIO; transition_temp = 0; speed_temp = 0; - level_history = 0; - current_level = 0; bzero(nested_output, sizeof(Samples*) * MAX_CHANNELS); bzero(prev_head, SPEED_OVERLAP * sizeof(double)); bzero(prev_tail, SPEED_OVERLAP * sizeof(double)); + meter_history = new MeterHistory(); nested_allocation = 0; resample = 0; asset = 0; @@ -166,22 +165,11 @@ AModule::AModule(RenderEngine *renderengine, AModule::~AModule() { - if(transition_temp) delete transition_temp; - if(speed_temp) delete speed_temp; - if(level_history) - { - delete [] level_history; - delete [] level_samples; - } - + delete transition_temp; + delete speed_temp; + delete meter_history; for(int i = 0; i < MAX_CHANNELS; i++) - { - if(nested_output[i]) - { - delete nested_output[i]; - } - } - + delete nested_output[i]; delete resample; } @@ -195,17 +183,9 @@ void AModule::create_objects() { Module::create_objects(); // Not needed in pluginarray - if(commonrender) - { - level_history = new double[((ARender*)commonrender)->total_peaks]; - level_samples = new int64_t[((ARender*)commonrender)->total_peaks]; - current_level = 0; - - for(int i = 0; i < ((ARender*)commonrender)->total_peaks; i++) - { - level_history[i] = 0; - level_samples[i] = -1; - } + if( commonrender ) { + meter_history->init(1, ((ARender*)commonrender)->total_peaks); + meter_history->reset_channel(0); } } @@ -282,15 +262,8 @@ speed_fragment_len); FloatAuto *previous = 0; FloatAuto *next = 0; FloatAutos *speed_autos = (FloatAutos*)track->automation->autos[AUTOMATION_SPEED]; - for(int64_t i = edit_startproject; i < start_project; i++) - { - double speed = speed_autos->get_value(i, - PLAY_FORWARD, - previous, - next); - speed_position += speed; - } - + speed_position += speed_autos->automation_integral(edit_startproject, + start_project-edit_startproject, PLAY_FORWARD); speed_position1 = speed_position;