/** * @brief Callback for input item preparser to directory monitor */ static void PreparseComplete( const vlc_event_t * p_event, void *p_data ) { int i_ret = VLC_SUCCESS; preparsed_item_t* p_itemobject = (preparsed_item_t*) p_data; monitoring_thread_t *p_mon = p_itemobject->p_mon; media_library_t *p_ml = (media_library_t *)p_mon->p_ml; input_item_t *p_input = (input_item_t*) p_event->p_obj; if( input_item_IsPreparsed( p_input ) ) { if( p_itemobject->b_update ) { //TODO: Perhaps we don't have to load everything? ml_media_t* p_media = GetMedia( p_ml, p_itemobject->i_update_id, ML_MEDIA_SPARSE, true ); CopyInputItemToMedia( p_media, p_input ); i_ret = UpdateMedia( p_ml, p_media ); ml_gc_decref( p_media ); } else i_ret = AddInputItem( p_ml, p_input ); } if( i_ret != VLC_SUCCESS ) msg_Dbg( p_mon, "Item could not be correctly added" " or updated during scan: %s", p_input->psz_uri ); QuerySimple( p_ml, "UPDATE media SET directory_id=%d, timestamp=%d " "WHERE id=%d", p_itemobject->i_dir_id, p_itemobject->i_mtime, GetMediaIdOfURI( p_ml, p_input->psz_uri ) ); vlc_event_detach( &p_input->event_manager, vlc_InputItemPreparsedChanged, PreparseComplete, p_itemobject ); vlc_gc_decref( p_input ); free( p_itemobject->psz_uri ); }
void InputList::AddDir(const QString & name) { AddInputItem(name); /*QDir dir(name); QFileInfoList list = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); foreach(QFileInfo finfo, list) { if (finfo.isDir()) continue; if ( IsSupportedFile(finfo.absoluteFilePath()) ) AddInputItem(finfo.absoluteFilePath()); }*/ }
void InputList::AddInputItem() { QStringList files = QFileDialog::getOpenFileNames( this, "Select one or more video files to open", _lastDirectory, "Images (*.avi *.mpeg *.mp4)"); if (files.count() == 0) return; _lastDirectory = files[0]; for (int i = 0; i < files.size(); i++) { AddInputItem(files[i]); } }