add libtool prereq, tweak cmake config in 3rdparty, segv dragging silence
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / aedit.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "asset.h"
23 #include "edits.h"
24 #include "aedit.h"
25 #include "cache.h"
26 #include "edl.h"
27 #include "edlsession.h"
28 #include "file.h"
29 #include "filexml.h"
30 #include "indexfile.h"
31 #include "mwindow.h"
32 #include "patch.h"
33 #include "mainsession.h"
34 #include "trackcanvas.h"
35 #include "tracks.h"
36
37
38 AEdit::AEdit(EDL *edl, Edits *edits)
39  : Edit(edl, edits)
40 {
41 }
42
43
44
45 AEdit::~AEdit() { }
46
47 int AEdit::load_properties_derived(FileXML *xml)
48 {
49         channel = xml->tag.get_property("CHANNEL", (int32_t)0);
50         return 0;
51 }
52
53 // ========================================== editing
54
55 int AEdit::copy_properties_derived(FileXML *xml, int64_t length_in_selection)
56 {
57         return 0;
58 }
59
60
61 int AEdit::dump_derived()
62 {
63         //printf("      channel %d\n", channel);
64         return 0;
65 }
66
67
68 int64_t AEdit::get_source_end(int64_t default_)
69 {
70         if(!nested_edl && !asset) return default_;   // Infinity
71
72         if(nested_edl)
73         {
74                 return (int64_t)(nested_edl->tracks->total_length() *
75                         edl->session->sample_rate + 0.5);
76         }
77
78         return (int64_t)((double)asset->audio_length /
79                 asset->sample_rate *
80                 edl->session->sample_rate + 0.5);
81 }
82