X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Findexable.C;h=2d32e1943fc84e45f9d0969b50fed0b6318c5e26;hb=c279e21fc2394a7908bbd1ba8c79b116fe9fb14a;hp=fa86e313828488d74f5951cf195d4f3cba938dcc;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/indexable.C b/cinelerra-5.1/cinelerra/indexable.C index fa86e313..2d32e194 100644 --- a/cinelerra-5.1/cinelerra/indexable.C +++ b/cinelerra-5.1/cinelerra/indexable.C @@ -2,26 +2,28 @@ /* * CINELERRA * Copyright (C) 2009 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #include "bcsignals.h" #include "edl.h" #include "indexable.h" +#include "language.h" +#include "localsession.h" #include @@ -29,7 +31,7 @@ Indexable::Indexable(int is_asset) : Garbage(is_asset ? "Asset" : "EDL") { index_state = new IndexState; this->is_asset = is_asset; - strcpy(folder, MEDIA_FOLDER); + this->awindow_folder = AW_MEDIA_FOLDER; } @@ -53,16 +55,17 @@ int64_t Indexable::get_audio_samples() return 0; } -void Indexable::update_path(char *new_path) +void Indexable::update_path(const char *new_path) { strcpy(path, new_path); } void Indexable::update_index(Indexable *src) { - index_state->remove_user(); + if( index_state == src->index_state ) return; + if( index_state ) index_state->remove_user(); index_state = src->index_state; - index_state->add_user(); + if( index_state ) index_state->add_user(); } @@ -71,6 +74,7 @@ void Indexable::update_index(Indexable *src) void Indexable::copy_indexable(Indexable *src) { if( this == src ) return; + awindow_folder = src->awindow_folder; update_path(src->path); update_index(src); } @@ -110,8 +114,11 @@ int64_t Indexable::get_video_frames() return 0; } - - - - +const char *Indexable::get_title() +{ + if( is_asset ) return path; + EDL *edl = (EDL*)this; + if( !edl->parent_edl || awindow_folder == AW_PROXY_FOLDER ) return path; + return edl->local_session->clip_title; +}