void LensMain::save_data(KeyFrame *keyframe) { FileXML output; char string[BCTEXTLEN]; // cause data to be stored directly in text output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("LENS"); for(int i = 0; i < FOV_CHANNELS; i++) { sprintf(string, "FOCAL_LENGTH%d", i); output.tag.set_property(string, config.fov[i]); } output.tag.set_property("ASPECT", config.aspect); output.tag.set_property("RADIUS", config.radius); output.tag.set_property("MODE", config.mode); output.tag.set_property("CENTER_X", config.center_x); output.tag.set_property("CENTER_Y", config.center_y); output.tag.set_property("DRAW_GUIDES", config.draw_guides); output.append_tag(); output.terminate_string(); }
void SvgMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("SVG")) { config.in_x = input.tag.get_property("IN_X", config.in_x); config.in_y = input.tag.get_property("IN_Y", config.in_y); config.in_w = input.tag.get_property("IN_W", config.in_w); config.in_h = input.tag.get_property("IN_H", config.in_h); config.out_x = input.tag.get_property("OUT_X", config.out_x); config.out_y = input.tag.get_property("OUT_Y", config.out_y); config.out_w = input.tag.get_property("OUT_W", config.out_w); config.out_h = input.tag.get_property("OUT_H", config.out_h); input.tag.get_property("SVG_FILE", config.svg_file); } } } }
void ChannelDB::load(const char *filename) { if( !filename ) return; FileXML file; char path[BCTEXTLEN]; prefix_to_path(path, filename); channels.remove_all_objects(); int done = file.read_from_file(path, 1); channels.remove_all_objects(); // Load channels while(!done) { Channel *channel = new Channel; if(!(done = channel->load(&file))) channels.append(channel); else { delete channel; } } }
void FreezeFrameMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; config.enabled = 0; config.line_double = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("ENABLED")) { config.enabled = 1; } if(input.tag.title_is("LINE_DOUBLE")) { config.line_double = 1; } } } }
void CompressorEffect::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; config.levels.remove_all(); while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("COMPRESSOR")) { config.reaction_len = input.tag.get_property("REACTION_LEN", config.reaction_len); config.decay_len = input.tag.get_property("DECAY_LEN", config.decay_len); config.trigger = input.tag.get_property("TRIGGER", config.trigger); config.smoothing_only = input.tag.get_property("SMOOTHING_ONLY", config.smoothing_only); config.input = input.tag.get_property("INPUT", config.input); } else if(input.tag.title_is("LEVEL")) { double x = input.tag.get_property("X", (double)0); double y = input.tag.get_property("Y", (double)0); compressor_point_t point = { x, y }; config.levels.append(point); } } } }
int Commercials:: read_ads(const char *filename) { char index_filename[BCTEXTLEN], source_filename[BCTEXTLEN]; IndexFile::get_index_filename(source_filename, mwindow->preferences->index_directory, index_filename, filename, ".ads"); tracks.remove_all_objects(); FileXML xml; if( xml.read_from_file(index_filename, 1) ) return 1; do { if( xml.read_tag() ) return 1; } while( !xml.tag.title_is("ADS") ); for(;;) { if( xml.read_tag() ) return 1; if( xml.tag.title_is("/ADS") ) break; if( xml.tag.title_is("CLIPS") ) { int pid = xml.tag.get_property("PID", (int)0); Clips *clips = new Clips(pid); tracks.append(clips); if( clips->load(xml) ) return 1; if( !xml.tag.title_is("/CLIPS") ) break; } } return 0; }
void Color3WayMain::save_data(KeyFrame *keyframe) { FileXML output; // cause data to be stored directly in text output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("COLOR3WAY"); for(int i = 0; i < SECTIONS; i++) { char string[BCTEXTLEN]; sprintf(string, "HUE_X_%d", i); output.tag.set_property(string, config.hue_x[i]); sprintf(string, "HUE_Y_%d", i); output.tag.set_property(string, config.hue_y[i]); sprintf(string, "VALUE_%d", i); output.tag.set_property(string, config.value[i]); sprintf(string, "SATURATION_%d", i); output.tag.set_property(string, config.saturation[i]); if(is_defaults()) { sprintf(string, "COPY_TO_ALL_%d", i); output.tag.set_property(string, copy_to_all[i]); } } if(is_defaults()) { output.tag.set_property("W", w); output.tag.set_property("H", h); } output.append_tag(); output.terminate_string(); }
void TranslateMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("TRANSLATE")) { config.in_x = input.tag.get_property("IN_X", config.in_x); config.in_y = input.tag.get_property("IN_Y", config.in_y); config.in_w = input.tag.get_property("IN_W", config.in_w); config.in_h = input.tag.get_property("IN_H", config.in_h); config.out_x = input.tag.get_property("OUT_X", config.out_x); config.out_y = input.tag.get_property("OUT_Y", config.out_y); config.out_w = input.tag.get_property("OUT_W", config.out_w); config.out_h = input.tag.get_property("OUT_H", config.out_h); } } } }
void ColorBalanceMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("COLORBALANCE")) { config.cyan = input.tag.get_property("CYAN", config.cyan); config.magenta = input.tag.get_property("MAGENTA", config.magenta); config.yellow = input.tag.get_property("YELLOW", config.yellow); config.preserve = input.tag.get_property("PRESERVELUMINOSITY", config.preserve); config.lock_params = input.tag.get_property("LOCKPARAMS", config.lock_params); } } } }
void RGB601Main::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("RGB601")) { config.direction = input.tag.get_property("DIRECTION", config.direction); } } } if(thread) { ((RGB601Window*)thread->window)->update(); } }
void BlurMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("BLUR")) { config.vertical = input.tag.get_property("VERTICAL", config.vertical); config.horizontal = input.tag.get_property("HORIZONTAL", config.horizontal); config.radius = input.tag.get_property("RADIUS", config.radius); //printf("BlurMain::read_data 1 %d %d %s\n", get_source_position(), keyframe->position, keyframe->get_data()); config.r = input.tag.get_property("R", config.r); config.g = input.tag.get_property("G", config.g); config.b = input.tag.get_property("B", config.b); config.a = input.tag.get_property("A", config.a); config.a_key = input.tag.get_property("A_KEY", config.a_key); } } } }
void PluginAClientLAD::read_data(KeyFrame *keyframe) { FileXML input; char string[BCTEXTLEN]; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); config.initialize(server); while(! input.read_tag() ) { //printf("PluginAClientLAD::read_data %s\n", input.tag.get_title()); if(! input.tag.title_is(lad_to_upper(string, plugin_title())) ) continue; const LADSPA_Descriptor *lad_desc = server->lad_descriptor; const LADSPA_PortDescriptor *port_desc = lad_desc->PortDescriptors; int port_count = lad_desc->PortCount; for(int port = 0, i = 0; i < port_count; i++) { if( !LADSPA_IS_PORT_INPUT(port_desc[i]) ) continue; if( !LADSPA_IS_PORT_CONTROL(port_desc[i]) ) continue; PluginAClientLAD::lad_to_upper(string, (char*)lad_desc->PortNames[i]); config.port_data[port] = input.tag.get_property(string, config.port_data[port]); //printf("PluginAClientLAD::read_data %d %f\n", port, config.port_data[port]); port++; } } }
void PluginAClientLAD::save_data(KeyFrame *keyframe) { FileXML output; char string[BCTEXTLEN]; if( !config.port_data ) config.initialize(server); // cause data to be stored directly in text output.set_shared_output(keyframe->get_data(), MESSAGESIZE); output.tag.set_title(lad_to_upper(string, plugin_title())); const LADSPA_Descriptor *lad_desc = server->lad_descriptor; const LADSPA_PortDescriptor *port_desc = lad_desc->PortDescriptors; //printf("PluginAClientLAD::save_data %d\n", lad_desc->PortCount); int port_count = lad_desc->PortCount; for(int port = 0, i = 0; i < port_count; i++) { if( !LADSPA_IS_PORT_INPUT(port_desc[i]) ) continue; if( !LADSPA_IS_PORT_CONTROL(port_desc[i]) ) continue; // Convert LAD port name to default title PluginAClientLAD::lad_to_upper(string, (char*)lad_desc->PortNames[i]); output.tag.set_property(string, config.port_data[port]); //printf("PluginAClientLAD::save_data %d %f\n", port, config.port_data[port]); ++port; } output.append_tag(); output.terminate_string(); }
void FindObjectMain::save_data(KeyFrame *keyframe) { FileXML output; // cause data to be stored directly in text output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("FINDOBJECT"); output.tag.set_property("GLOBAL_BLOCK_W", config.global_block_w); output.tag.set_property("GLOBAL_BLOCK_H", config.global_block_h); output.tag.set_property("BLOCK_X", config.block_x); output.tag.set_property("BLOCK_Y", config.block_y); output.tag.set_property("GLOBAL_RANGE_W", config.global_range_w); output.tag.set_property("GLOBAL_RANGE_H", config.global_range_h); output.tag.set_property("DRAW_KEYPOINTS", config.draw_keypoints); output.tag.set_property("DRAW_BORDER", config.draw_border); output.tag.set_property("REPLACE_OBJECT", config.replace_object); output.tag.set_property("DRAW_OBJECT_BORDER", config.draw_object_border); output.tag.set_property("OBJECT_LAYER", config.object_layer); output.tag.set_property("REPLACE_LAYER", config.replace_layer); output.tag.set_property("SCENE_LAYER", config.scene_layer); output.tag.set_property("ALGORITHM", config.algorithm); output.tag.set_property("VMIN", config.vmin); output.tag.set_property("VMAX", config.vmax); output.tag.set_property("SMIN", config.smin); output.tag.set_property("BLEND", config.blend); output.append_tag(); output.terminate_string(); }
void SelTempAvgMain::save_data(KeyFrame *keyframe) { FileXML output; // cause data to be stored directly in text output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("SELECTIVE_TEMPORAL_AVERAGE"); output.tag.set_property("FRAMES", config.frames); output.tag.set_property("METHOD", config.method); output.tag.set_property("OFFSETMODE", config.offsetmode); output.tag.set_property("PARANOID", config.paranoid); output.tag.set_property("NOSUBTRACT", config.nosubtract); output.tag.set_property("OFFSETMODE_RESTARTMODE_KEYFRAME", config.offset_restartmarker_keyframe); output.tag.set_property("OFFSETMODE_FIXED_VALUE", config.offset_fixed_value); output.tag.set_property("GAIN", config.gain); output.tag.set_property("AVG_THRESHOLD_RY", config.avg_threshold_RY); output.tag.set_property("AVG_THRESHOLD_GU", config.avg_threshold_GU); output.tag.set_property("AVG_THRESHOLD_BV", config.avg_threshold_BV); output.tag.set_property("STD_THRESHOLD_RY", config.std_threshold_RY); output.tag.set_property("STD_THRESHOLD_GU", config.std_threshold_GU); output.tag.set_property("STD_THRESHOLD_BV", config.std_threshold_BV); output.tag.set_property("MASK_RY", config.mask_RY); output.tag.set_property("MASK_GU", config.mask_GU); output.tag.set_property("MASK_BV", config.mask_BV); output.append_tag(); output.terminate_string(); }
void SelTempAvgMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!input.read_tag()) { if(input.tag.title_is("SELECTIVE_TEMPORAL_AVERAGE")) { config.frames = input.tag.get_property("FRAMES", config.frames); config.method = input.tag.get_property("METHOD", config.method); config.offsetmode = input.tag.get_property("OFFSETMODE", config.offsetmode); config.paranoid = input.tag.get_property("PARANOID", config.paranoid); config.nosubtract = input.tag.get_property("NOSUBTRACT", config.nosubtract); config.offset_restartmarker_keyframe = input.tag.get_property("OFFSETMODE_RESTARTMODE_KEYFRAME", config.offset_restartmarker_keyframe); config.offset_fixed_value = input.tag.get_property("OFFSETMODE_FIXED_VALUE", config.offset_fixed_value); config.gain = input.tag.get_property("gain", config.gain); config.avg_threshold_RY = input.tag.get_property("AVG_THRESHOLD_RY", config.avg_threshold_RY); config.avg_threshold_GU = input.tag.get_property("AVG_THRESHOLD_GU", config.avg_threshold_GU); config.avg_threshold_BV = input.tag.get_property("AVG_THRESHOLD_BV", config.avg_threshold_BV); config.std_threshold_RY = input.tag.get_property("STD_THRESHOLD_RY", config.std_threshold_RY); config.std_threshold_GU = input.tag.get_property("STD_THRESHOLD_GU", config.std_threshold_GU); config.std_threshold_BV = input.tag.get_property("STD_THRESHOLD_BV", config.std_threshold_BV); config.mask_RY = input.tag.get_property("MASK_RY", config.mask_RY); config.mask_GU = input.tag.get_property("MASK_GU", config.mask_GU); config.mask_BV = input.tag.get_property("MASK_BV", config.mask_BV); } } }
void FlipMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->data, strlen(keyframe->data)); int result = 0; config.flip_vertical = config.flip_horizontal = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("VERTICAL")) { config.flip_vertical = 1; } else if(input.tag.title_is("HORIZONTAL")) { config.flip_horizontal = 1; } } } }
void LensMain::read_data(KeyFrame *keyframe) { FileXML input; char string[BCTEXTLEN]; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("LENS")) { for(int i = 0; i < FOV_CHANNELS; i++) { sprintf(string, "FOCAL_LENGTH%d", i); config.fov[i] = input.tag.get_property(string, config.fov[i]); } config.aspect = input.tag.get_property("ASPECT", config.aspect); config.radius = input.tag.get_property("RADIUS", config.radius); config.mode = input.tag.get_property("MODE", config.mode); config.center_x = input.tag.get_property("CENTER_X", config.center_x); config.center_y = input.tag.get_property("CENTER_Y", config.center_y); config.draw_guides = input.tag.get_property("DRAW_GUIDES", config.draw_guides); } } } }
void ParametricEQ::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("PARAMETRICEQ")) { config.wetness = input.tag.get_property("WETNESS", config.wetness); config.window_size = input.tag.get_property("WINDOW_SIZE", config.window_size); } else if(input.tag.title_is("BAND")) { int band = input.tag.get_property("NUMBER", 0); config.band[band].freq = input.tag.get_property("FREQ", config.band[band].freq); config.band[band].quality = input.tag.get_property("QUALITY", config.band[band].quality); config.band[band].magnitude = input.tag.get_property("MAGNITUDE", config.band[band].magnitude); config.band[band].mode = input.tag.get_property("MODE", config.band[band].mode); } } } }
void IVTCMain::read_data(KeyFrame *keyframe) { FileXML input; input.set_shared_string(keyframe->get_data(), strlen(keyframe->get_data())); int result = 0; float new_threshold; while(!result) { result = input.read_tag(); if(!result) { if(input.tag.title_is("IVTC")) { config.frame_offset = input.tag.get_property("FRAME_OFFSET", config.frame_offset); config.first_field = input.tag.get_property("FIRST_FIELD", config.first_field); config.automatic = input.tag.get_property("AUTOMATIC", config.automatic); new_threshold = input.tag.get_property("AUTO_THRESHOLD", config.auto_threshold); config.pattern = input.tag.get_property("PATTERN", config.pattern); } } } }
int IndexFile::read_info(Asset *test_asset) { if(!test_asset) test_asset = asset; if(test_asset->index_status == INDEX_NOTTESTED) { // read start of index data fread((char*)&(test_asset->index_start), sizeof(int64_t), 1, file); // read test_asset info from index char *data; data = new char[test_asset->index_start]; fread(data, test_asset->index_start - sizeof(int64_t), 1, file); data[test_asset->index_start - sizeof(int64_t)] = 0; FileXML xml; xml.read_from_string(data); test_asset->read(&xml); delete [] data; if(test_asset->format == FILE_UNKNOWN) { return 1; } } return 0; }
void _1080to540Main::save_data(KeyFrame *keyframe) { FileXML output; output.set_shared_output(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("1080TO540"); output.tag.set_property("FIRST_FIELD", config.first_field); output.append_tag(); output.terminate_string(); }
int IndexState::write_index(const char *path, int data_bytes, Asset *asset, int64_t length_source) { FILE *file; if(!(file = fopen(path, "wb"))) { // failed to create it printf(_("IndexState::write_index Couldn't write index file %s to disk.\n"), path); } else { FileXML xml; // Pad index start position fwrite((char*)&(index_start), sizeof(int64_t), 1, file); index_status = INDEX_READY; // Write asset encoding information in index file. // This also calls back into index_state to write it. if(asset) { asset->write(&xml, 1, ""); } else { // Must write index_state directly. write_xml(&xml); } xml.write_to_file(file); index_start = ftell(file); fseek(file, 0, SEEK_SET); // Write index start fwrite((char*)&(index_start), sizeof(int64_t), 1, file); fseek(file, index_start, SEEK_SET); // Write index data fwrite(index_buffer, data_bytes, 1, file); fclose(file); } // Force reread of header index_status = INDEX_NOTTESTED; index_end = length_source; old_index_end = 0; index_start = 0; return 0; }
void BandWipeMain::save_data(KeyFrame *keyframe) { FileXML output; output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("BANDWIPE"); output.tag.set_property("BANDS", bands); output.tag.set_property("DIRECTION", direction); output.append_tag(); output.terminate_string(); }
void SlideMain::save_data(KeyFrame *keyframe) { FileXML output; output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("SLIDE"); output.tag.set_property("MOTION_DIRECTION", motion_direction); output.tag.set_property("DIRECTION", direction); output.append_tag(); output.terminate_string(); }
void _720to480Main::save_data(KeyFrame *keyframe) { FileXML output; output.set_shared_string(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("720TO480"); output.tag.set_property("FIRST_FIELD", config.first_field); output.tag.set_property("DIRECTION", config.direction); output.append_tag(); output.terminate_string(); }
void SwapFrames::save_data(KeyFrame *keyframe) { FileXML output; output.set_shared_output(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("SWAPFRAMES"); output.tag.set_property("ON", config.on); output.tag.set_property("SWAP_EVEN", config.swap_even); output.append_tag(); output.terminate_string(); }
int MainUndo::redo() { UndoStackItem *current = undo_stack->current; //printf("MainUndo::redo 1\n"); //undo_stack->dump(); // Get 1st entry if(!current) current = undo_stack->first; // Advance to a before entry if(current && (undo_stack->number_of(current) % 2)) { current = NEXT; } // Advance to an after entry if(current && !(undo_stack->number_of(current) % 2)) { current = NEXT; } if(current) { FileXML file; char *current_data = current->get_data(); undo_stack->current = current; if(current_data) { mwindow->set_filename(current->get_filename()); file.read_from_string(current_data); load_from_undo(&file, current->get_flags()); delete [] current_data; if(mwindow->gui) { // Update menu mwindow->gui->mainmenu->undo->update_caption(current->get_description()); // Get next after entry current = NEXT; if(current) current = NEXT; if(current) mwindow->gui->mainmenu->redo->update_caption(current->get_description()); else mwindow->gui->mainmenu->redo->update_caption(""); } } } reset_creators(); //undo_stack->dump(); return 0; }
void FlipMain::save_data(KeyFrame *keyframe) { FileXML output; // cause data to be stored directly in text output.set_shared_string(keyframe->data, MESSAGESIZE); output.tag.set_title("FLIP"); output.append_tag(); if(config.flip_vertical) { output.tag.set_title("VERTICAL"); output.append_tag(); output.tag.set_title("/VERTICAL"); output.append_tag(); } if(config.flip_horizontal) { output.tag.set_title("HORIZONTAL"); output.append_tag(); output.tag.set_title("/HORIZONTAL"); output.append_tag(); } output.tag.set_title("/FLIP"); output.append_tag(); output.terminate_string(); // data is now in *text }
void RGB601Main::save_data(KeyFrame *keyframe) { FileXML output; // cause data to be stored directly in text output.set_shared_output(keyframe->get_data(), MESSAGESIZE); output.tag.set_title("RGB601"); output.tag.set_property("DIRECTION", config.direction); output.append_tag(); output.terminate_string(); }