private Queue<File> files;
private File origin;
private MediaContainer parent;
+ private MediaExportRecursiveFileMonitor monitor;
public MediaExportHarvester (MediaContainer parent,
MediaDB media_db,
- MetadataExtractor extractor) {
+ MetadataExtractor extractor,
+ MediaExportRecursiveFileMonitor monitor) {
this.parent = parent;
this.extractor = extractor;
this.media_db = media_db;
this.files = new Queue<File> ();
this.containers = new Queue<DummyContainer> ();
this.origin = null;
+ this.monitor = monitor;
+
Idle.add (this.on_idle);
}
var dir = ((DummyContainer)this.containers.peek_head ()).file;
var file = dir.get_child (info.get_name ());
if (info.get_file_type () == FileType.DIRECTORY) {
+ monitor.monitor (file);
this.containers.push_tail (
new DummyContainer (file,
this.containers.peek_head ()));
null);
if (info.get_file_type () == FileType.DIRECTORY) {
this.origin = file;
+ monitor.monitor (file);
this.containers.push_tail (
new DummyContainer (file,
this.parent));
this.harvester = new ArrayList<MediaExportHarvester> ();
this.monitor = new MediaExportRecursiveFileMonitor (null);
+ this.monitor.changed.connect (this.on_file_changed);
+
var uris = get_uris ();
foreach (var uri in uris) {
var id = Checksum.compute_for_string (ChecksumType.MD5,
file.get_uri ());
if (!this.media_db.exists (id)) {
+ debug ("Found new directory %s",
+ file.get_uri ());
var harvest = new MediaExportHarvester (this,
- media_db,
- extractor);
+ this.media_db,
+ this.extractor,
+ this.monitor);
this.harvester.add (harvest);
harvest.harvest (file);
}
}
}
}
+
+ private void on_file_changed (File file,
+ File? other,
+ FileMonitorEvent event) {
+ switch (event) {
+ case FileMonitorEvent.CREATED:
+ break;
+ case FileMonitorEvent.CHANGES_DONE_HINT:
+ break;
+ case FileMonitorEvent.DELETED:
+ break;
+ default:
+ break;
+ }
+ }
}