cposer/viewer btn1/2/3 fwd/rev/frm playback, misc fixes, leaks, cleanup
[goodguy/history.git] / cinelerra-5.1 / cinelerra / main.C
index f54edcec0b904d6bb38b65187af9e0fea35d8684..e7fe8f676fffbcca353d9e5b3bb771cdfd7d2430 100644 (file)
@@ -18,6 +18,7 @@
  *
  */
 
+#include "aboutprefs.h"
 #include "arraylist.h"
 #include "batchrender.h"
 #include "bcsignals.h"
 #include "pluginserver.h"
 #include "preferences.h"
 #include "renderfarmclient.h"
+#include "units.h"
 #include "versioninfo.h"
 
 #include <locale.h>
 #include <stdlib.h>
 #include <string.h>
 
+#ifdef LEAKER
+#define STRC(v) printf("==new %p from %p sz %jd\n", v, __builtin_return_address(0), n)
+#define STRD(v) printf("==del %p from %p\n", v, __builtin_return_address(0))
+void *operator new(size_t n) { void *vp = malloc(n); STRC(vp); bzero(vp,n); return vp; }
+void operator delete(void *t) { STRD(t); free(t); }
+void operator delete(void *t,size_t n) { STRD(t); free(t); }
+void *operator new[](size_t n) { void *vp = malloc(n); STRC(vp); bzero(vp,n); return vp; }
+void operator delete[](void *t) { STRD(t); free(t); }
+void operator delete[](void *t,size_t n) { STRD(t); free(t); }
+#endif
+
 enum
 {
        DO_GUI,
@@ -106,6 +119,7 @@ int main(int argc, char *argv[])
        batch_path[0] = 0;
        deamon_path[0] = 0;
        EDL::id_lock = new Mutex("EDL::id_lock");
+       Units::init();
 
        File::init_cin_path();
        const char *locale_path = File::get_locale_path();
@@ -252,7 +266,6 @@ int main(int argc, char *argv[])
                operation == DO_USAGE ||
                operation == DO_BATCHRENDER) {
 
-               fprintf(stderr, PROGRAM_NAME " " CINELERRA_VERSION);
 #ifndef REPOMAINTXT
 #define REPOMAINTXT ""
 #endif
@@ -262,13 +275,13 @@ int main(int argc, char *argv[])
 #ifndef COPYRIGHTTEXT2
 #define COPYRIGHTTEXT2 ""
 #endif
-#ifndef COMPILEDATE
-#define COMPILEDATE ""
-#endif
-               fprintf(stderr, REPOMAINTXT COPYRIGHTTEXT1 COPYRIGHTTEXT2 COMPILEDATE
-                       PROGRAM_NAME " is free software, covered by the GNU General Public License,\n"
+               fprintf(stderr, "%s %s - %s\n%s",
+                       PROGRAM_NAME,CINELERRA_VERSION, AboutPrefs::build_timestamp,
+                       REPOMAINTXT COPYRIGHTTEXT1 COPYRIGHTTEXT2);
+               fprintf(stderr, "%s is free software, covered by the GNU General Public License,\n"
                        "and you are welcome to change it and/or distribute copies of it under\n"
-                       "certain conditions. There is absolutely no warranty for " PROGRAM_NAME ".\n\n");
+                       "certain conditions. There is absolutely no warranty for %s.\n\n",
+                       PROGRAM_NAME, PROGRAM_NAME);
        }
 
        switch(operation)
@@ -395,6 +408,7 @@ DISABLE_BUFFER
 
        filenames.remove_all_objects();
        delete EDL::id_lock;  EDL::id_lock = 0;
+       Units::finit();
 
        return 0;
 }