home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February / PCWorld_2008-02_cd.bin / temacd / songbird / Songbird_0.4_windows-i686.exe / components / sbProperties.jsm < prev    next >
Text File  |  2007-12-26  |  5KB  |  110 lines

  1. /*
  2. //
  3. // BEGIN SONGBIRD GPL
  4. //
  5. // This file is part of the Songbird web player.
  6. //
  7. // Copyright(c) 2005-2008 POTI, Inc.
  8. // http://songbirdnest.com
  9. //
  10. // This file may be licensed under the terms of of the
  11. // GNU General Public License Version 2 (the "GPL").
  12. //
  13. // Software distributed under the License is distributed
  14. // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
  15. // express or implied. See the GPL for the specific language
  16. // governing rights and limitations.
  17. //
  18. // You should have received a copy of the GPL along with this
  19. // program. If not, go to http://www.gnu.org/licenses/gpl.html
  20. // or write to the Free Software Foundation, Inc.,
  21. // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  22. //
  23. // END SONGBIRD GPL
  24. //
  25. */
  26.  
  27. /**
  28.  * Property constants for use with the Songbird property system. Import into a
  29.  * JS file or component using:
  30.  *
  31.  *   'Components.utils.import("resource://app/components/sbProperties.jsm");'
  32.  *
  33.  */
  34.  
  35. EXPORTED_SYMBOLS = ["SBProperties"];
  36.  
  37. var SBProperties = {
  38.  
  39.   _base: "http://songbirdnest.com/data/1.0#",
  40.  
  41.   get base() { return this._base; },
  42.  
  43.   get storageGUID             () { return this._base + "storageGUID"; },
  44.   get created                 () { return this._base + "created"; },
  45.   get updated                 () { return this._base + "updated"; },
  46.   get contentURL              () { return this._base + "contentURL"; },
  47.   get contentMimeType         () { return this._base + "contentMimeType"; },
  48.   get contentLength           () { return this._base + "contentLength"; },
  49.   get trackName               () { return this._base + "trackName"; },
  50.   get albumName               () { return this._base + "albumName"; },
  51.   get artistName              () { return this._base + "artistName"; },
  52.   get duration                () { return this._base + "duration"; },
  53.   get genre                   () { return this._base + "genre"; },
  54.   get trackNumber             () { return this._base + "trackNumber"; },
  55.   get year                    () { return this._base + "year"; },
  56.   get discNumber              () { return this._base + "discNumber"; },
  57.   get totalDiscs              () { return this._base + "totalDiscs"; },
  58.   get totalTracks             () { return this._base + "totalTracks"; },
  59.   get isPartOfCompilation     () { return this._base + "isPartOfCompilation"; },
  60.   get producerName            () { return this._base + "producerName"; },
  61.   get composerName            () { return this._base + "composerName"; },
  62.   get lyricistName            () { return this._base + "lyricistName"; },
  63.   get lyrics                  () { return this._base + "lyrics"; },
  64.   get recordLabelName         () { return this._base + "recordLabelName"; },
  65.   get albumArtURL             () { return this._base + "albumArtURL"; },
  66.   get lastPlayTime            () { return this._base + "lastPlayTime"; },
  67.   get playCount               () { return this._base + "playCount"; },
  68.   get lastSkipTime            () { return this._base + "lastSkipTime"; },
  69.   get skipCount               () { return this._base + "skipCount"; },
  70.   get rating                  () { return this._base + "rating"; },
  71.   get originURL               () { return this._base + "originURL"; },
  72.   get originPage              () { return this._base + "originPage"; },
  73.   get originPageImage         () { return this._base + "originPageImage"; },
  74.   get originPageTitle         () { return this._base + "originPageTitle"; },
  75.   get GUID                    () { return this._base + "GUID"; },
  76.   get hidden                  () { return this._base + "hidden"; },
  77.   get isList                  () { return this._base + "isList"; },
  78.   get ordinal                 () { return this._base + "ordinal"; },
  79.   get mediaListName           () { return this._base + "mediaListName"; },
  80.   get columnSpec              () { return this._base + "columnSpec"; },
  81.   get defaultColumnSpec       () { return this._base + "defaultColumnSpec"; },
  82.   get customType              () { return this._base + "customType"; },
  83.   get destination             () { return this._base + "destination"; },
  84.   get downloadButton          () { return this._base + "downloadButton"; },
  85.   get downloadStatusTarget    () { return this._base + "downloadStatusTarget"; },
  86.   get downloadDetails         () { return this._base + "downloadDetails"; },
  87.   get isSortable              () { return this._base + "isSortable"; },
  88.   get rapiScopeURL            () { return this._base + "rapiScopeURL"; },
  89.   get rapiSiteID              () { return this._base + "rapiSiteID"; },
  90.   get enableAutoDownload      () { return this._base + "enableAutoDownload"; },
  91.   get transferPolicy          () { return this._base + "transferPolicy"; },
  92.  
  93.   createArray: function(properties, strict) {
  94.     var propertyArray =
  95.       Components.classes["@songbirdnest.com/Songbird/Properties/MutablePropertyArray;1"]
  96.                 .createInstance(Components.interfaces.sbIMutablePropertyArray);
  97.     if (arguments.length > 1) {
  98.       propertyArray.strict = arguments[1];
  99.     }
  100.     if (properties) {
  101.       properties.forEach(function(e) {
  102.         if (e.length == 2) {
  103.           propertyArray.appendProperty(e[0], e[1]);
  104.         }
  105.       });
  106.     }
  107.     return propertyArray;
  108.   }
  109. }
  110.