00001 /* 00002 // 00003 // BEGIN SONGBIRD GPL 00004 // 00005 // This file is part of the Songbird web player. 00006 // 00007 // Copyright(c) 2005-2008 POTI, Inc. 00008 // http://songbirdnest.com 00009 // 00010 // This file may be licensed under the terms of of the 00011 // GNU General Public License Version 2 (the "GPL"). 00012 // 00013 // Software distributed under the License is distributed 00014 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either 00015 // express or implied. See the GPL for the specific language 00016 // governing rights and limitations. 00017 // 00018 // You should have received a copy of the GPL along with this 00019 // program. If not, go to http://www.gnu.org/licenses/gpl.html 00020 // or write to the Free Software Foundation, Inc., 00021 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00022 // 00023 // END SONGBIRD GPL 00024 // 00025 */ 00026 00032 #include "nsISupports.idl" 00033 00034 interface nsIArray; 00035 interface nsISimpleEnumerator; 00036 interface nsIURI; 00037 interface sbIMediaItem; 00038 interface sbIMediaList; 00039 interface sbIDatabaseQuery; 00040 interface sbILocalDatabaseLibraryCopyListener; 00041 interface sbILocalDatabaseGUIDArray; 00042 interface sbILocalDatabasePropertyCache; 00043 interface sbIPropertyArray; 00044 00045 %{C++ 00046 class sbLocalDatabaseLibrary; 00047 %} 00048 00049 [ptr] native sbLocalDatabaseLibrary(sbLocalDatabaseLibrary); 00050 00055 [scriptable, uuid(c73c2057-e0bf-4caa-8f48-9b4582909b51)] 00056 interface sbILocalDatabaseLibrary : nsISupports 00057 { 00058 readonly attribute AString databaseGuid; 00059 00065 readonly attribute nsIURI databaseLocation; 00066 00067 readonly attribute sbILocalDatabasePropertyCache propertyCache; 00068 00072 void addCopyListener(in sbILocalDatabaseLibraryCopyListener aCopyListener); 00073 00077 void removeCopyListener(in sbILocalDatabaseLibraryCopyListener aCopyListener); 00078 00079 ACString getContractIdForGuid(in AString aGuid); 00080 00081 unsigned long getMediaItemIdForGuid(in AString aGuid); 00082 00083 void NotifyListenersItemUpdated(in sbIMediaItem aItem, 00084 in sbIPropertyArray aProperties); 00085 00086 void notifyCopyListenersItemCopied(in sbIMediaItem aSourceItem, 00087 in sbIMediaItem aDestinationItem); 00088 00089 sbIDatabaseQuery createQuery(); 00090 00095 void forceBeginUpdateBatch(); 00096 void forceEndUpdateBatch(); 00097 00105 [noscript] readonly attribute sbLocalDatabaseLibrary nativeLibrary; 00106 }; 00107