projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix little_endian png 16bit per andrew
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
mwindowedit.C
diff --git
a/cinelerra-5.1/cinelerra/mwindowedit.C
b/cinelerra-5.1/cinelerra/mwindowedit.C
index 7b49d090a972a2eeb10f5c8a5fb87992f996318e..0c8c56b1c3cd5de83c36b0957476cc5e39760fc9 100644
(file)
--- a/
cinelerra-5.1/cinelerra/mwindowedit.C
+++ b/
cinelerra-5.1/cinelerra/mwindowedit.C
@@
-1250,10
+1250,16
@@
void MWindow::overwrite(EDL *source, int all)
// so we need to clear only when not using both io points
// FIXME: need to write simple overwrite_edl to be used for overwrite function
if( edl->local_session->get_inpoint() < 0 ||
// so we need to clear only when not using both io points
// FIXME: need to write simple overwrite_edl to be used for overwrite function
if( edl->local_session->get_inpoint() < 0 ||
- edl->local_session->get_outpoint() < 0 )
- edl->clear(dst_start, dst_start + overwrite_len, 0, 0, 0);
+ edl->local_session->get_outpoint() < 0 )
+ edl->clear(dst_start, dst_start + overwrite_len,
+ edl->session->labels_follow_edits,
+ edl->session->plugins_follow_edits,
+ edl->session->autos_follow_edits);
- paste(dst_start, dst_start + overwrite_len, &file, 0, 0, 0, 0, 0);
+ paste(dst_start, dst_start + overwrite_len, &file,
+ edl->session->labels_follow_edits,
+ edl->session->plugins_follow_edits,
+ edl->session->autos_follow_edits, 0, 0);
edl->local_session->set_selectionstart(dst_start + overwrite_len);
edl->local_session->set_selectionend(dst_start + overwrite_len);
edl->local_session->set_selectionstart(dst_start + overwrite_len);
edl->local_session->set_selectionend(dst_start + overwrite_len);
@@
-1371,7
+1377,7
@@
if( debug ) printf("MWindow::load_assets %d\n", __LINE__);
for( int i=0; i<new_assets->total; ++i ) {
Indexable *indexable = new_assets->get(i);
if( indexable->is_asset ) {
for( int i=0; i<new_assets->total; ++i ) {
Indexable *indexable = new_assets->get(i);
if( indexable->is_asset ) {
- remove_
asset_from_caches((Asset*)
indexable);
+ remove_
from_caches(
indexable);
}
EDL *new_edl = new EDL;
new_edl->create_objects();
}
EDL *new_edl = new EDL;
new_edl->create_objects();
@@
-1545,8
+1551,7
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
else
// Recycle existing tracks of master EDL
if( load_mode == LOADMODE_CONCATENATE ||
else
// Recycle existing tracks of master EDL
if( load_mode == LOADMODE_CONCATENATE ||
- load_mode == LOADMODE_PASTE ||
- load_mode == LOADMODE_NESTED ) {
+ load_mode == LOADMODE_PASTE ) {
Track *current = first_track ? first_track : edl->tracks->first;
for( ; current; current=NEXT ) {
if( current->record ) {
Track *current = first_track ? first_track : edl->tracks->first;
for( ; current; current=NEXT ) {
if( current->record ) {
@@
-1583,13
+1588,15
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
// Add assets and prepare index files
for( Asset *new_asset=new_edl->assets->first;
new_asset; new_asset=new_asset->next ) {
// Add assets and prepare index files
for( Asset *new_asset=new_edl->assets->first;
new_asset; new_asset=new_asset->next ) {
- mainindexes->add_
next_asset(0,
new_asset);
+ mainindexes->add_
indexable(
new_asset);
}
// Capture index file status from mainindex test
edl->update_assets(new_edl);
//PRINT_TRACE
// Get starting point of insertion. Need this to paste labels.
switch( load_mode ) {
}
// Capture index file status from mainindex test
edl->update_assets(new_edl);
//PRINT_TRACE
// Get starting point of insertion. Need this to paste labels.
switch( load_mode ) {
+ case LOADMODE_NOTHING:
+ continue;
case LOADMODE_REPLACE:
current_position = 0;
break;
case LOADMODE_REPLACE:
current_position = 0;
break;
@@
-1608,7
+1615,6
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
break;
case LOADMODE_PASTE:
break;
case LOADMODE_PASTE:
- case LOADMODE_NESTED:
destination_track = 0;
if( i == 0 ) {
for( int j=0; j<destination_tracks.total; ++j ) {
destination_track = 0;
if( i == 0 ) {
for( int j=0; j<destination_tracks.total; ++j ) {
@@
-1628,7
+1634,7
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
load_mode != LOADMODE_ASSETSONLY ) {
// Insert labels
if( edit_labels ) {
load_mode != LOADMODE_ASSETSONLY ) {
// Insert labels
if( edit_labels ) {
- if( load_mode == LOADMODE_PASTE
|| load_mode == LOADMODE_NESTED
)
+ if( load_mode == LOADMODE_PASTE )
edl->labels->insert_labels(new_edl->labels,
destination_tracks.total ? paste_position[0] : 0.0,
edl_length, 1);
edl->labels->insert_labels(new_edl->labels,
destination_tracks.total ? paste_position[0] : 0.0,
edl_length, 1);
@@
-1669,7
+1675,6
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
break;
case LOADMODE_PASTE:
break;
case LOADMODE_PASTE:
- case LOADMODE_NESTED:
current_position = paste_position[destination_track];
paste_position[destination_track] += new_track->get_length();
break;
current_position = paste_position[destination_track];
paste_position[destination_track] += new_track->get_length();
break;
@@
-1696,8
+1701,7
@@
int MWindow::paste_edls(ArrayList<EDL*> *new_edls, int load_mode,
}
}
}
}
- if( load_mode == LOADMODE_PASTE ||
- load_mode == LOADMODE_NESTED )
+ if( load_mode == LOADMODE_PASTE )
current_position += edl_length;
}
current_position += edl_length;
}
@@
-2171,28
+2175,24
@@
void MWindow::save_clip(EDL *new_edl, const char *txt)
time_t now; time(&now);
struct tm dtm; localtime_r(&now, &dtm);
char *cp = new_edl->local_session->clip_notes;
time_t now; time(&now);
struct tm dtm; localtime_r(&now, &dtm);
char *cp = new_edl->local_session->clip_notes;
- int n, sz = sizeof(new_edl->local_session->clip_notes)-1;
- if( txt && *txt ) {
- n = snprintf(cp, sz, "%s", txt);
- cp += n; sz -= n;
- }
- n = snprintf(cp, sz,
+ char *ep = cp + sizeof(new_edl->local_session->clip_notes)-1;
+ if( txt && *txt )
+ cp += snprintf(cp, ep-cp, "%s", txt);
+ cp += snprintf(cp, ep-cp,
"%02d/%02d/%02d %02d:%02d:%02d, +%s\n",
dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
dtm.tm_hour, dtm.tm_min, dtm.tm_sec, duration);
"%02d/%02d/%02d %02d:%02d:%02d, +%s\n",
dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
dtm.tm_hour, dtm.tm_min, dtm.tm_sec, duration);
- cp += n; sz -= n;
if( path && *path ) {
FileSystem fs;
char title[BCTEXTLEN];
fs.extract_name(title, path);
if( path && *path ) {
FileSystem fs;
char title[BCTEXTLEN];
fs.extract_name(title, path);
- n = snprintf(cp, sz, "%s", title);
- cp += n; sz -= n;
+ cp += snprintf(cp, ep-cp, "%s", title);
}
}
- cp[n] = 0;
sprintf(new_edl->local_session->clip_icon,
sprintf(new_edl->local_session->clip_icon,
- "clip_%02d%02d%02d-%02d%02d%02d.png",
+ "clip_%02d%02d%02d-%02d%02d%02d
-%d
.png",
dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
- dtm.tm_hour, dtm.tm_min, dtm.tm_sec);
+ dtm.tm_hour, dtm.tm_min, dtm.tm_sec,
+ new_edl->id);
new_edl->folder_no = AW_CLIP_FOLDER;
edl->update_assets(new_edl);
int cur_x, cur_y;
new_edl->folder_no = AW_CLIP_FOLDER;
edl->update_assets(new_edl);
int cur_x, cur_y;
@@
-2445,19
+2445,20
@@
void MWindow::add_proxy(ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*
}
void MWindow::start_convert(Asset *format_asset, const char *suffix,
}
void MWindow::start_convert(Asset *format_asset, const char *suffix,
- float beep, int remove_originals)
+ float beep, int
to_proxy, int
remove_originals)
{
if( !convert_render )
{
if( !convert_render )
- convert_render = new ConvertRender(this
, suffix
);
- convert_render->set_format(format_asset);
+ convert_render = new ConvertRender(this);
+ convert_render->set_format(format_asset
, suffix, to_proxy
);
int found = convert_render->find_convertable_assets(edl);
if( convert_render->needed_idxbls.size() > 0 )
convert_render->start_convert(beep, remove_originals);
else if( found > 0 )
finish_convert(remove_originals);
int found = convert_render->find_convertable_assets(edl);
if( convert_render->needed_idxbls.size() > 0 )
convert_render->start_convert(beep, remove_originals);
else if( found > 0 )
finish_convert(remove_originals);
- else {
+ else if( found < 0 )
+ eprintf(_("convert assets format error"));
+ else
eprintf(_("No convertable assets found"));
eprintf(_("No convertable assets found"));
- }
}
void MWindow::finish_convert(int remove_originals)
}
void MWindow::finish_convert(int remove_originals)