update cin.po, goog xlat update xx.po
[goodguy/history.git] / cinelerra-5.1 / cinelerra / asset.C
index 598068eb8e5052714e6f109cd82f6191ed41cdd0..9cf4a3055e69c9f61010d901ad077585dd28f633 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "asset.h"
 #include "assets.h"
+#include "awindowgui.h"
 #include "bchash.h"
 #include "bcsignals.h"
 #include "clip.h"
@@ -90,9 +91,9 @@ int Asset::init_values()
 
        jpeg_quality = 80;
        aspect_ratio = -1;
-       interlace_autofixoption = BC_ILACE_AUTOFIXOPTION_AUTO;
-       interlace_mode = BC_ILACE_MODE_UNDETECTED;
-       interlace_fixmethod = BC_ILACE_FIXMETHOD_NONE;
+       interlace_autofixoption = ILACE_AUTOFIXOPTION_AUTO;
+       interlace_mode = ILACE_MODE_UNDETECTED;
+       interlace_fixmethod = ILACE_FIXMETHOD_NONE;
 
        ampeg_bitrate = 256;
        ampeg_derivative = 3;
@@ -154,6 +155,7 @@ void Asset::reset_video()
        actual_width = width = 0;
        actual_height = height = 0;
        video_length = 0;
+       single_frame = 0;
        vmpeg_cmodel = BC_YUV420P;
        frame_rate = 0;
        program = -1;
@@ -191,8 +193,8 @@ void Asset::copy_from(Asset *asset, int do_index)
 
 void Asset::copy_location(Asset *asset)
 {
-       strcpy(this->path, asset->path);
-       strcpy(this->folder, asset->folder);
+       strcpy(path, asset->path);
+       awindow_folder = asset->awindow_folder;
 }
 
 void Asset::copy_format(Asset *asset, int do_index)
@@ -235,7 +237,7 @@ void Asset::copy_format(Asset *asset, int do_index)
 
        this->audio_length = asset->audio_length;
        this->video_length = asset->video_length;
-
+       this->single_frame = asset->single_frame;
 
        ampeg_bitrate = asset->ampeg_bitrate;
        ampeg_derivative = asset->ampeg_derivative;
@@ -463,7 +465,9 @@ int Asset::read(FileXML *file,
                        else
                        if(file->tag.title_is("FOLDER"))
                        {
-                               strcpy(folder, file->read_text());
+                               const char *string = file->tag.get_property("NUMBER");
+                               awindow_folder = string ? atoi(string) :
+                                       AWindowGUI::folder_number(file->read_text());
                        }
                        else
                        if(file->tag.title_is("VIDEO"))
@@ -532,14 +536,15 @@ int Asset::read_video(FileXML *file)
        file->tag.get_property("VCODEC", vcodec);
 
        video_length = file->tag.get_property("VIDEO_LENGTH", (int64_t)0);
+       single_frame = file->tag.get_property("SINGLE_FRAME", (int64_t)0);
 
        interlace_autofixoption = file->tag.get_property("INTERLACE_AUTOFIX",0);
 
-       ilacemode_to_xmltext(string, BC_ILACE_MODE_NOTINTERLACED);
-       interlace_mode = ilacemode_from_xmltext(file->tag.get_property("INTERLACE_MODE",string), BC_ILACE_MODE_NOTINTERLACED);
+       ilacemode_to_xmltext(string, ILACE_MODE_NOTINTERLACED);
+       interlace_mode = ilacemode_from_xmltext(file->tag.get_property("INTERLACE_MODE",string), ILACE_MODE_NOTINTERLACED);
 
-       ilacefixmethod_to_xmltext(string, BC_ILACE_FIXMETHOD_NONE);
-       interlace_fixmethod = ilacefixmethod_from_xmltext(file->tag.get_property("INTERLACE_FIXMETHOD",string), BC_ILACE_FIXMETHOD_NONE);
+       ilacefixmethod_to_xmltext(string, ILACE_FIXMETHOD_NONE);
+       interlace_fixmethod = ilacefixmethod_from_xmltext(file->tag.get_property("INTERLACE_FIXMETHOD",string), ILACE_FIXMETHOD_NONE);
 
        file->tag.get_property("REEL_NAME", reel_name);
        reel_number = file->tag.get_property("REEL_NUMBER", reel_number);
@@ -591,8 +596,8 @@ int Asset::write(FileXML *file,
        file->append_newline();
 
        file->tag.set_title("FOLDER");
+       file->tag.set_property("NUMBER", awindow_folder);
        file->append_tag();
-       file->append_text(folder);
        file->tag.set_title("/FOLDER");
        file->append_tag();
        file->append_newline();
@@ -692,6 +697,7 @@ int Asset::write_video(FileXML *file)
                file->tag.set_property("VCODEC", vcodec);
 
        file->tag.set_property("VIDEO_LENGTH", video_length);
+       file->tag.set_property("SINGLE_FRAME", single_frame);
 
        file->tag.set_property("INTERLACE_AUTOFIX", interlace_autofixoption);
 
@@ -799,6 +805,7 @@ void Asset::load_defaults(BC_Hash *defaults,
                layers = GET_DEFAULT("LAYERS", layers);
                if(EQUIV(frame_rate, 0)) frame_rate = GET_DEFAULT("FRAMERATE", frame_rate);
                video_length = GET_DEFAULT("VIDEO_LENGTH", (int64_t)0);
+               single_frame = GET_DEFAULT("SINGLE_FRAME", (int64_t)0);
        }
 
        ampeg_bitrate = GET_DEFAULT("AMPEG_BITRATE", ampeg_bitrate);
@@ -827,9 +834,9 @@ void Asset::load_defaults(BC_Hash *defaults,
        jpeg_quality = GET_DEFAULT("JPEG_QUALITY", jpeg_quality);
        aspect_ratio = GET_DEFAULT("ASPECT_RATIO", aspect_ratio);
 
-       interlace_autofixoption = BC_ILACE_AUTOFIXOPTION_AUTO;
-       interlace_mode          = BC_ILACE_MODE_UNDETECTED;
-       interlace_fixmethod     = BC_ILACE_FIXMETHOD_UPONE;
+       interlace_autofixoption = ILACE_AUTOFIXOPTION_AUTO;
+       interlace_mode          = ILACE_MODE_UNDETECTED;
+       interlace_fixmethod     = ILACE_FIXMETHOD_UPONE;
 
 // MPEG format information
        vmpeg_iframe_distance = GET_DEFAULT("VMPEG_IFRAME_DISTANCE", vmpeg_iframe_distance);
@@ -983,6 +990,7 @@ void Asset::save_defaults(BC_Hash *defaults,
                UPDATE_DEFAULT("LAYERS", layers);
                UPDATE_DEFAULT("FRAMERATE", frame_rate);
                UPDATE_DEFAULT("VIDEO_LENGTH", video_length);
+               UPDATE_DEFAULT("SINGLE_FRAME", single_frame);
 
        }
 
@@ -1014,19 +1022,19 @@ int Asset::dump(FILE *fp)
        fprintf(fp,"   ff_video_bitrate=%d\n", ff_video_bitrate);
        fprintf(fp,"   ff_video_quality=%d\n", ff_video_quality);
        fprintf(fp,"   audio_data %d channels %d samplerate %d bits %d"
-               " byte_order %d signed %d header %d dither %d acodec %c%c%c%c\n",
+               " byte_order %d signed %d header %d dither %d acodec %4.4s\n",
                audio_data, channels, sample_rate, bits, byte_order, signed_,
-               header, dither, acodec[0], acodec[1], acodec[2], acodec[3]);
+               header, dither, acodec);
        fprintf(fp,"   audio_length %jd\n", audio_length);
        char string[BCTEXTLEN];
        ilacemode_to_xmltext(string, interlace_mode);
        fprintf(fp,"   video_data %d program %d layers %d framerate %f width %d"
-               " height %d vcodec %c%c%c%c aspect_ratio %f ilace_mode %s\n",
+               " height %d vcodec %4.4s aspect_ratio %f ilace_mode %s\n",
                video_data, layers, program, frame_rate, width, height,
-               vcodec[0], vcodec[1], vcodec[2], vcodec[3], aspect_ratio,string);
-       printf("   reel_name %s reel_number %i tcstart %jd tcend %jd tcf %d\n",
+               vcodec, aspect_ratio,string);
+       fprintf(fp,"   reel_name %s reel_number %i tcstart %jd tcend %jd tcf %d\n",
                reel_name, reel_number, tcstart, tcend, tcformat);
-       fprintf(fp,"   video_length %jd \n", video_length);
+       fprintf(fp,"   video_length %jd repeat %d\n", video_length, single_frame);
 
 
        return 0;