mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 03:10:07 +00:00 
			
		
		
		
	started experimentig with io queues...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									88d4b3a675
								
							
						
					
					
						commit
						cf3b189383
					
				| @ -40,6 +40,9 @@ core.ImageGridFeatures.Feature('viewer-minimal', [ | |||||||
| 
 | 
 | ||||||
| 	'fs-loader', | 	'fs-loader', | ||||||
| 	'fs-writer', | 	'fs-writer', | ||||||
|  | 
 | ||||||
|  | 	'metadata', | ||||||
|  | 	'fs-metadata', | ||||||
| ]) | ]) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,6 +18,8 @@ define(function(require){ var module = {} | |||||||
| 
 | 
 | ||||||
| //var DEBUG = DEBUG != null ? DEBUG : true
 | //var DEBUG = DEBUG != null ? DEBUG : true
 | ||||||
| 
 | 
 | ||||||
|  | var tasks = require('lib/tasks') | ||||||
|  | 
 | ||||||
| var actions = require('lib/actions') | var actions = require('lib/actions') | ||||||
| var core = require('features/core') | var core = require('features/core') | ||||||
| 
 | 
 | ||||||
| @ -79,7 +81,8 @@ module.Metadata = core.ImageGridFeatures.Feature({ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| // XXX add Metadata writer...
 | // XXX add Metadata writer...
 | ||||||
| // XXX need a way to trigger read-metadata...
 | // XXX store metadata in a JSON format -- currently exiftool returns an
 | ||||||
|  | // 		Array with attributes, make it an object...
 | ||||||
| var MetadataReaderActions = actions.Actions({ | var MetadataReaderActions = actions.Actions({ | ||||||
| 	// XXX should this be sync???
 | 	// XXX should this be sync???
 | ||||||
| 	// XXX should this process multiple images???
 | 	// XXX should this process multiple images???
 | ||||||
| @ -120,7 +123,15 @@ var MetadataReaderActions = actions.Actions({ | |||||||
| 						} else { | 						} else { | ||||||
| 							// store metadata...
 | 							// store metadata...
 | ||||||
| 							// XXX 
 | 							// XXX 
 | ||||||
| 							that.images[gid].metadata = data | 
 | ||||||
|  | 							// convert to a real dict...
 | ||||||
|  | 							// NOTE: exiftool appears to return an array 
 | ||||||
|  | 							// 		object rather than an actual dict/object
 | ||||||
|  | 							// 		and that is not JSON compatible....
 | ||||||
|  | 							var m = {} | ||||||
|  | 							Object.keys(data).forEach(function(k){ m[k] = data[k] }) | ||||||
|  | 
 | ||||||
|  | 							that.images[gid].metadata = m | ||||||
| 							that.markChanged && that.markChanged(gid) | 							that.markChanged && that.markChanged(gid) | ||||||
| 
 | 
 | ||||||
| 							resolve(data) | 							resolve(data) | ||||||
| @ -132,6 +143,26 @@ var MetadataReaderActions = actions.Actions({ | |||||||
| 			}) | 			}) | ||||||
| 		}], | 		}], | ||||||
| 
 | 
 | ||||||
|  | 	// XXX STUB: add support for this to .readMetadata(..)
 | ||||||
|  | 	_readAllMetadata: ['- Image/Read all metadata', | ||||||
|  | 		function(){ | ||||||
|  | 			var that = this | ||||||
|  | 			// XXX make this a global API...
 | ||||||
|  | 			var q = this.__reader_queue = this.__reader_queue || tasks.Queue() | ||||||
|  | 
 | ||||||
|  | 			var read = function(gid){  | ||||||
|  | 				return function(){ return that.readMetadata(gid) } } | ||||||
|  | 
 | ||||||
|  | 			q.start() | ||||||
|  | 
 | ||||||
|  | 			this.images  | ||||||
|  | 				&& this.images.forEach(function(gid){ | ||||||
|  | 					q.enqueue('metadata', read(gid)) | ||||||
|  | 				}) | ||||||
|  | 			 | ||||||
|  | 			return q | ||||||
|  | 		}], | ||||||
|  | 
 | ||||||
| 	// XXX take image Metadata and write it to target...
 | 	// XXX take image Metadata and write it to target...
 | ||||||
| 	writeMetadata: ['- Image/Set metadata data', | 	writeMetadata: ['- Image/Set metadata data', | ||||||
| 		function(image, target){ | 		function(image, target){ | ||||||
|  | |||||||
| @ -239,6 +239,7 @@ module.QueueActions = actions.Actions({ | |||||||
| 				that.__running.push(elem) | 				that.__running.push(elem) | ||||||
| 
 | 
 | ||||||
| 				// start the task...
 | 				// start the task...
 | ||||||
|  | 				// XXX should we run a task in some specific context???
 | ||||||
| 				res = task() | 				res = task() | ||||||
| 				that.taskStarted(elem[0], task) | 				that.taskStarted(elem[0], task) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user