Changeset 10092

Show
Ignore:
Timestamp:
07/23/08 19:26:51 (4 months ago)
Author:
matt
Message:
 
Location:
trunk
Files:
14 added
11 removed
34 modified

Legend:

Unmodified
Added
Removed
  • trunk/app/content/bindings/browser/sbTabBrowser.xml

    r10008 r10092  
    827827 
    828828                    // Send the items in the new media list to the metadata scanner 
    829                     var metadataJobManager = 
    830                       Components.classes["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    831                                 .getService(Components.interfaces.sbIMetadataJobManager); 
    832                     var metadataJob = metadataJobManager.newJob(array, 5); 
     829                    var metadataService =  
     830                      Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     831                                .getService(Components.interfaces.sbIFileMetadataService); 
     832                    metadataService.read(array); 
    833833 
    834834                    // Start playback 
  • trunk/app/content/bindings/playlist.xml

    r10033 r10092  
    29792979                .createInstance(Ci.nsIMutableArray); 
    29802980              mediaItemArray.appendElement(aItem, false); 
    2981               var manager = Cc["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    2982               .getService(Ci.sbIMetadataJobManager); 
    2983               var job = manager.newJob(mediaItemArray, 
    2984                      5,                 // Sleep time on thread 
    2985                      Ci.sbIMetadataJob.JOBTYPE_WRITE);           
    2986                       SBJobUtils.showProgressDialog(job, null); 
     2981              var metadataService = Cc["@songbirdnest.com/Songbird/FileMetadataService;1"] 
     2982                                      .getService(Ci.sbIFileMetadataService); 
     2983              var job = metadataService.write(mediaItemArray); 
     2984              SBJobUtils.showProgressDialog(job, null); 
    29872985            }, 0); 
    29882986          ]]> 
  • trunk/app/content/bindings/ratingsControl.xml

    r9875 r10092  
    359359                         
    360360              mediaItemArray.appendElement(self._curMediaItem, false); 
    361              
    362               var manager =  
    363                 Components.classes["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    364                           .getService(Components.interfaces.sbIMetadataJobManager); 
    365              
    366               var job = manager.newJob(mediaItemArray, 5,  // Sleep time on thread 
    367                                        Components.interfaces.sbIMetadataJob.JOBTYPE_WRITE);           
     361 
     362              var metadataService =  
     363                 Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     364                           .getService(Components.interfaces.sbIFileMetadataService); 
     365              var job = metadataService.write(mediaItemArray);        
    368366             
    369367              SBJobUtils.showProgressDialog(job, null); 
  • trunk/app/content/scripts/asyncWebPlaylist.js

    r9603 r10092  
    8888  { 
    8989    const CONTRACTID_ARRAY = "@songbirdnest.com/moz/xpcom/threadsafe-array;1"; 
    90     const CONTRACTID_METADATAJOBMANAGER = 
    91       "@songbirdnest.com/Songbird/MetadataJobManager;1"; 
    9290    const CONTRACTID_FAVICONSERVICE = "@mozilla.org/browser/favicon-service;1"; 
    9391     
     
    9593    const nsIMutableArray = Components.interfaces.nsIMutableArray; 
    9694    const sbIMediaList = Components.interfaces.sbIMediaList; 
    97     const sbIMetadataJobManager = Components.interfaces.sbIMetadataJobManager; 
    9895 
    9996    CancelAsyncWebDocument(old_href_loop, aMediaListView); 
     
    308305          if (mediaItemsToScan && mediaItemsToScan.length) { 
    309306            // Then submit the job 
    310             var metadataJobManager = 
    311               Components.classes[CONTRACTID_METADATAJOBMANAGER] 
    312                         .getService(sbIMetadataJobManager); 
    313             var metadataJob = metadataJobManager.newJob(mediaItemsToScan, 5); 
     307             
     308            var metadataService =  
     309               Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     310                         .getService(Components.interfaces.sbIFileMetadataService); 
     311            metadataService.read(mediaItemsToScan); 
    314312          } 
    315313        } 
  • trunk/app/content/scripts/playerOpen.js

    r10076 r10092  
    315315        array.appendElement(mediaList.getItemByIndex(i), false); 
    316316      } 
    317  
    318       // Send the items in the new media list to the metadata scanner 
    319       var metadataJobManager = 
    320         Components.classes["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    321                   .getService(Components.interfaces.sbIMetadataJobManager); 
    322       var metadataJob = metadataJobManager.newJob(array, 5); 
     317       
     318      var metadataService =  
     319         Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     320                   .getService(Components.interfaces.sbIFileMetadataService); 
     321      var metadataJob = metadataService.read(array); 
     322       
    323323 
    324324      // Give the new media list focus 
     
    10261026  } 
    10271027 
    1028   var metadataJobMgr = Components.classes["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    1029     .getService(Components.interfaces.sbIMetadataJobManager); 
    1030  
    10311028  var items = Components.classes["@songbirdnest.com/moz/xpcom/threadsafe-array;1"] 
    10321029    .createInstance(Components.interfaces.nsIMutableArray); 
    10331030 
    10341031  items.appendElement(mediaItem, false); 
    1035   metadataJobMgr.newJob(items, 5); 
     1032 
     1033  var metadataService =  
     1034     Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     1035               .getService(Components.interfaces.sbIFileMetadataService); 
     1036  var metadataJob = metadataService.read(items); 
    10361037 
    10371038  return mediaItem; 
     
    10741075  } 
    10751076 
    1076   var metadataJobMgr = Components.classes["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    1077     .getService(Components.interfaces.sbIMetadataJobManager); 
    1078  
    10791077  var items = Components.classes["@songbirdnest.com/moz/xpcom/threadsafe-array;1"] 
    10801078    .createInstance(Components.interfaces.nsIMutableArray); 
    10811079 
    10821080  items.appendElement(mediaItem, false); 
    1083   metadataJobMgr.newJob(items, 5); 
     1081 
     1082  var metadataService =  
     1083     Components.classes["@songbirdnest.com/Songbird/FileMetadataService;1"]                                               
     1084               .getService(Components.interfaces.sbIFileMetadataService); 
     1085  var metadataJob = metadataService.read(items); 
    10841086 
    10851087  return mediaItem; 
  • trunk/app/content/scripts/trackEditor.js

    r9988 r10092  
    991991    } 
    992992    if (mediaItemArray.length > 0) { 
    993       var manager = Cc["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    994                         .getService(Ci.sbIMetadataJobManager); 
    995        
     993      var metadataService = Cc["@songbirdnest.com/Songbird/FileMetadataService;1"] 
     994                              .getService(Ci.sbIFileMetadataService);       
    996995      try { 
    997         var job = manager.newJob(mediaItemArray, 5, Ci.sbIMetadataJob.JOBTYPE_WRITE); 
     996        var job = metadataService.write(mediaItemArray); 
    998997       
    999998        SBJobUtils.showProgressDialog(job, window); 
  • trunk/components/contenthandling/media/sbMediaContentListener.js

    r9605 r10092  
    3838const CONTRACTID_ARRAY              = "@songbirdnest.com/moz/xpcom/threadsafe-array;1"; 
    3939const CONTRACTID_LIBRARYMANAGER     = "@songbirdnest.com/Songbird/library/Manager;1"; 
    40 const CONTRACTID_METADATAJOBMANAGER = "@songbirdnest.com/Songbird/MetadataJobManager;1"; 
    4140const CONTRACTID_OBSERVERSERVICE    = "@mozilla.org/observer-service;1"; 
    4241const CONTRACTID_PLAYLISTPLAYBACK   = "@songbirdnest.com/Songbird/PlaylistPlayback;1"; 
     
    120119      var scanArray = Cc[CONTRACTID_ARRAY].createInstance(Ci.nsIMutableArray); 
    121120      scanArray.appendElement(mediaItem, false); 
    122  
    123       var metadataJobManager = Cc[CONTRACTID_METADATAJOBMANAGER]. 
    124                                getService(Ci.sbIMetadataJobManager); 
    125       var metadataJob = metadataJobManager.newJob(scanArray, 5); 
     121       
     122      var metadataService = Cc["@songbirdnest.com/Songbird/FileMetadataService;1"] 
     123                              .getService(Ci.sbIFileMetadataService); 
     124      var job = metadataService.read(scanArray); 
    126125    } 
    127126 
  • trunk/components/devicesobsolete/download/src/DownloadDevice.cpp

    r9666 r10092  
    7474#include <sbILocalDatabasePropertyCache.h> 
    7575#include <sbILocalDatabaseLibrary.h> 
    76 #include <sbIMetadataJob.h> 
     76#include <sbIFileMetadataService.h> 
     77#include <sbIJobProgress.h> 
    7778#include <sbIPropertyManager.h> 
    7879#include <sbStandardProperties.h> 
     
    40464047    nsresult                    aStatusCode) 
    40474048{ 
    4048     nsCOMPtr<sbIMetadataJobManager> 
    4049                                 pMetadataJobManager; 
    4050     nsCOMPtr<sbIMetadataJob>    pMetadataJob; 
     4049    nsCOMPtr<sbIFileMetadataService> 
     4050                                pMetadataService; 
     4051    nsCOMPtr<sbIJobProgress>    pMetadataJob; 
    40514052    nsresult                    result = NS_OK; 
    40524053 
    40534054    /* Start a metadata scanning job. */ 
    4054     pMetadataJobManager = do_GetService 
    4055                             ("@songbirdnest.com/Songbird/MetadataJobManager;1", 
     4055    pMetadataService = do_GetService 
     4056                            ("@songbirdnest.com/Songbird/FileMetadataService;1", 
    40564057                             &result); 
    40574058    if (NS_SUCCEEDED(result)) 
    40584059    { 
    4059         result = pMetadataJobManager->NewJob(mpMediaItemArray, 
    4060                                              5, 
    4061                                              sbIMetadataJob::JOBTYPE_READ, 
    4062                                              getter_AddRefs(pMetadataJob)); 
     4060        result = pMetadataService->Read(mpMediaItemArray, 
     4061                                        getter_AddRefs(pMetadataJob)); 
    40634062    } 
    40644063 
     
    41934192  NS_ENSURE_SUCCESS(rv, rv); 
    41944193 
    4195   nsCOMPtr<sbIMetadataJobManager> metadataJobManager; 
    4196   nsCOMPtr<sbIMetadataJob>        metadataJob; 
     4194  nsCOMPtr<sbIFileMetadataService> metadataService; 
     4195  nsCOMPtr<sbIJobProgress>         metadataJob; 
    41974196 
    41984197  /* Create an array to contain the media items to scan. */ 
     
    42044203 
    42054204  /* Start a metadata scanning job. */ 
    4206   metadataJobManager =  
    4207     do_GetService("@songbirdnest.com/Songbird/MetadataJobManager;1", &rv); 
     4205  metadataService =  
     4206    do_GetService("@songbirdnest.com/Songbird/FileMetadataService;1", &rv); 
    42084207  NS_ENSURE_SUCCESS(rv, rv); 
    42094208 
    4210   return metadataJobManager->NewJob(itemArray, 
    4211                                     5, 
    4212                                     sbIMetadataJob::JOBTYPE_READ, 
    4213                                     getter_AddRefs(metadataJob)); 
    4214 } 
     4209  return metadataService->Read(itemArray, 
     4210                               getter_AddRefs(metadataJob)); 
     4211} 
  • trunk/components/devicesobsolete/download/src/DownloadDevice.h

    r9666 r10092  
    9090#include <sbIDataRemote.h> 
    9191#include <sbILibrary.h> 
    92 #include <sbIMetadataJobManager.h> 
     92 
    9393 
    9494 
  • trunk/components/devicesobsolete/download/src/Makefile.in

    r9189 r10092  
    4848               $(DEPTH)/components/devicesobsolete/download/public \ 
    4949               $(DEPTH)/components/dataremote/public \ 
     50               $(DEPTH)/components/job/public \ 
    5051               $(DEPTH)/components/library/base/public \ 
    5152               $(DEPTH)/components/library/localdatabase/public \ 
  • trunk/components/jscodelib/DropHelper.jsm

    r9858 r10092  
    10711071        if (this._scanList &&  
    10721072            this._scanList.length > 0) { 
    1073           var metadataJobMgr =  
    1074             this._Cc["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    1075                 .getService(this._Ci.sbIMetadataJobManager); 
    1076           metadataJobMgr.newJob(this._scanList, 5); 
     1073          var metadataService =  
     1074            this._Cc["@songbirdnest.com/Songbird/FileMetadataService;1"] 
     1075                .getService(this._Ci.sbIFileMetadataService); 
     1076          metadataService.read(this._scanList); 
    10771077          this._scanList = null; 
    10781078        } 
  • trunk/components/library/localdatabase/public/sbILocalDatabaseLibrary.idl

    r9065 r10092  
    9191 
    9292  /** 
     93   * These aren't meant to be called directly. Use sbAutoBatchHelper 
     94   * to avoid the risk of leaving a batch in progress 
     95   */ 
     96  [noscript] void ForceBeginUpdateBatch(); 
     97  [noscript] void ForceEndUpdateBatch(); 
     98 
     99  /** 
    93100   * Oh My.  We need this here to avoid a static cast in 
    94101   * sbLocalDatabaseSimpleMediaListFactory where we need a 
  • trunk/components/library/localdatabase/src/sbLocalDatabaseDynamicPlaylist.js

    r9673 r10092  
    648648    array.appendElement(item, false); 
    649649  } 
    650  
    651   var metadataJobManager = 
    652     Cc["@songbirdnest.com/Songbird/MetadataJobManager;1"] 
    653       .getService(Ci.sbIMetadataJobManager); 
    654   var metadataJob = metadataJobManager.newJob(array, 5); 
    655  
     650   
     651  var metadataService = Cc["@songbirdnest.com/Songbird/FileMetadataService;1"] 
     652                          .getService(Ci.sbIFileMetadataService); 
     653  var metadataJob = metadataService.read(array); 
     654   
    656655  // Download the new items 
    657656  var ddh = 
  • trunk/components/library/localdatabase/src/sbLocalDatabaseLibrary.cpp

    r10030 r10092  
    41164116} 
    41174117 
     4118NS_IMETHODIMP  
     4119sbLocalDatabaseLibrary::ForceBeginUpdateBatch() {  
     4120  sbLocalDatabaseMediaListBase::BeginUpdateBatch(); 
     4121  return NS_OK; 
     4122}; 
     4123 
     4124NS_IMETHODIMP  
     4125sbLocalDatabaseLibrary::ForceEndUpdateBatch() {  
     4126  sbLocalDatabaseMediaListBase::EndUpdateBatch(); 
     4127  return NS_OK; 
     4128}; 
     4129 
    41184130NS_IMETHODIMP 
    41194131sbLocalDatabaseLibrary::GetNativeLibrary(sbLocalDatabaseLibrary** aLocalDatabaseLibrary) 
  • trunk/components/library/localdatabase/src/sbLocalDatabaseMediaListBase.h

    r9921 r10092  
    112112  } 
    113113 
     114  // These aren't meant to be called directly. Use sbAutoBatchHelper 
     115  // to avoid the risk of leaving a batch in progress 
     116  void BeginUpdateBatch() { 
     117    sbLocalDatabaseMediaListListener::NotifyListenersBatchBegin(this); 
     118  } 
     119  void EndUpdateBatch() { 
     120    sbLocalDatabaseMediaListListener::NotifyListenersBatchEnd(this); 
     121  } 
     122 
    114123protected: 
    115124  NS_IMETHOD GetDefaultSortProperty(nsAString& aProperty) = 0; 
     
    121130 
    122131private: 
    123   // These aren't meant to be called directly, use sbAutoBatchHelper. 
    124   void BeginUpdateBatch() { 
    125     sbLocalDatabaseMediaListListener::NotifyListenersBatchBegin(this); 
    126   } 
    127   void EndUpdateBatch() { 
    128     sbLocalDatabaseMediaListListener::NotifyListenersBatchEnd(this); 
    129   } 
    130132 
    131133  // This callback is meant to be used with an sbStringArrayHash. 
  • trunk/components/mediacore/metadata/handler/taglib/src/MetadataHandlerTaglib.cpp

    r10058 r10092  
    148148 ******************************************************************************/ 
    149149 
    150 NS_IMPL_ISUPPORTS3(sbMetadataHandlerTaglib, sbIMetadataHandler, 
    151                                             sbISeekableChannelListener, 
    152                                             nsICharsetDetectionObserver) 
     150NS_IMPL_THREADSAFE_ISUPPORTS3(sbMetadataHandlerTaglib,  
     151                              sbIMetadataHandler, 
     152                              sbISeekableChannelListener, 
     153                              nsICharsetDetectionObserver) 
    153154 
    154155 
     
    240241} 
    241242 
     243NS_IMETHODIMP 
     244sbMetadataHandlerTaglib::GetRequiresMainThread(PRBool *_retval) 
     245{ 
     246  NS_ENSURE_ARG_POINTER(_retval); 
     247  NS_ENSURE_STATE(mpChannel); 
     248  nsresult rv; 
     249   
     250  nsCOMPtr<nsIURI> uri; 
     251  rv = mpChannel->GetURI(getter_AddRefs(uri)); 
     252  NS_ENSURE_SUCCESS(rv, rv); 
     253   
     254  PRBool isFileURI = PR_FALSE; 
     255  rv = uri->SchemeIs( "file" , &isFileURI ); 
     256  NS_ENSURE_SUCCESS(rv, rv); 
     257 
     258  // Taglib uses the nsIChannel for all protocols 
     259  // other than file:// and cannot be run off 
     260  // of the main thread in these cases. 
     261 
     262  *_retval = !isFileURI; 
     263  return NS_OK; 
     264} 
     265 
    242266 
    243267/** 
     
    254278    PRInt32                     *pReadCount) 
    255279{ 
    256   nsresult rv; 
     280  nsresult rv = NS_ERROR_FAILURE; 
     281 
    257282  AcquireTaglibLock(); 
    258   rv = ReadInternal(pReadCount);  
     283  // Attempt to avoid crashes.  This may only work on windows. 
     284  try {  
     285    rv = ReadInternal(pReadCount);  
     286  } catch(...) {  
     287    NS_ERROR("sbMetadataHandlerTaglib::Read caught an exception!"); 
     288  } 
    259289  ReleaseTaglibLock();  
     290   
    260291  // note that although ReleaseTaglibLock() has a return value, it always succeeds 
    261   // so we're really we're most interested in the return value from ReadInternal(); 
     292  // so we're most interested in the return value from ReadInternal(); 
    262293   
    263294  return rv; 
     
    329360    PRInt32                     readCount = 0; 
    330361    nsresult                    result = NS_OK; 
     362     
     363    // Starting a new operation, so clear the completion flag 
     364    mCompleted = PR_FALSE; 
    331365 
    332366    /* Get the TagLib sbISeekableChannel file IO manager. */ 
     
    347381 
    348382    /* Get the channel URL info. */ 
    349     if (NS_SUCCEEDED(result)) 
    350         result = mpChannel->GetURI(getter_AddRefs(pURI)); 
    351     if (NS_SUCCEEDED(result)) 
    352     { 
    353         pStandardURL = do_CreateInstance("@mozilla.org/network/standard-url;1", 
    354                                          &result); 
    355     } 
    356     if (NS_SUCCEEDED(result)) 
    357     { 
    358         result = pStandardURL->Init(pStandardURL->URLTYPE_STANDARD, 
    359                                     0, 
    360                                     NS_LITERAL_CSTRING(""), 
    361                                     nsnull, 
    362                                     pURI); 
    363     } 
    364     if (NS_SUCCEEDED(result)) 
    365         mpURL = do_QueryInterface(pStandardURL, &result); 
     383    if (!mpURL) { 
     384      result = NS_ERROR_NOT_INITIALIZED; 
     385    } 
    366386    if (NS_SUCCEEDED(result)) 
    367387        result = mpURL->GetSpec(urlSpec); 
     
    408428 
    409429        /* Read the metadata. */ 
    410         if (NS_SUCCEEDED(result)) 
     430        if (NS_SUCCEEDED(result)) { 
    411431            result =