Show
Ignore:
Timestamp:
04/26/09 17:24:48 (3 years ago)
Author:
gbooker
Message:

Added screen capture ability thanks to patch by wazza. Does not work on ATV since ATV is broken.
Fixes #45

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/CoreData/SapphireFrappliance/MetaDataImporting/SapphireXMLFileDataImporter.m

    r804 r827  
    2323#import "SapphireMediaPreview.h" 
    2424#import "SapphireXMLData.h" 
     25#import "NSImage-Extensions.h" 
    2526#include <sys/types.h> 
    2627#include <sys/stat.h> 
     
    4647#define SEARCH_EPISODE_XML_QUERY        @"/media/searchEpisode/text()" 
    4748#define SEARCH_IMDB_XML_QUERY           @"/media/searchIMDB/text()" 
     49#define SCREENCAP_XML_QUERY                     @"/media/imageTime/text()" 
     50 
    4851//Multi Attributes               
    4952#define TITLE_XML_QUERY                         @"/media/title/text()" 
     
    177180        } 
    178181        /*Special cases*/ 
     182        /* Screen Cap */ 
     183        NSArray *imageCaps = [root objectsForXQuery:SCREENCAP_XML_QUERY error:&error]; 
     184        if ( [imageCaps count] && [metaData fileContainerType] == FILE_CONTAINER_TYPE_QT_MOVIE ) 
     185        { 
     186                unsigned int hour; 
     187                unsigned int minute; 
     188                unsigned int second; 
     189                 
     190                sscanf( [[[imageCaps objectAtIndex:0] stringValue] cString], "%u:%u:%u", &hour, &minute, &second ); 
     191                NSData * image = [NSImage imageFromMovie: [metaData path] atTime: ((60*60*hour) + (60*minute) + second)]; 
     192                [image writeToFile:[metaData coverArtPath] atomically:YES]; 
     193        } 
     194 
    179195        /*The air date*/ 
    180196        NSString *value = [newMetaData objectForKey:META_SHOW_AIR_DATE];