olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git] / cinelerra-5.1 / cinelerra / amodule.C
index 1ef4a4fa4009c31870591b82870b8e971e8016a9..aee3f5f084431e9fb45b503bba95ac3ad382ed28 100644 (file)
@@ -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;