}
DetailAssetThread::~DetailAssetThread()
+{
+ stop();
+}
+
+void DetailAssetThread::stop()
{
if( Thread::running() ) {
- dwindow->lock_window("DetailAssetThread::~DetailAssetThread");
+ dwindow->lock_window("DetailAssetThread::stop");
dwindow->set_done(1);
dwindow->unlock_window();
Thread::join();
if( !mwindow->preferences->get_asset_file_path(asset, file_name) ) {
switch( asset->format ) {
case FILE_MPEG:
- FileMPEG::get_info(asset->path, file_name, &info[0]);
+ FileMPEG::get_info(asset->path, file_name, &info[0],len);
break;
case FILE_FFMPEG:
- FileFFMPEG::get_info(asset->path, &info[0]);
+ FileFFMPEG::get_info(asset->path, &info[0],len);
break;
}
}
void DetailAssetThread::start(Asset *asset)
{
- if( !Thread::running() ) {
- delete dwindow;
- dwindow = new DetailAssetWindow(mwindow, asset);
- Thread::start();
- }
+ stop();
+ delete dwindow;
+ dwindow = new DetailAssetWindow(mwindow, asset);
+ Thread::start();
}
void DetailAssetThread::run()