C:/projects/songbird/components/medialibrary/public/sbIPlaylist.idl

00001 /*
00002  //
00003 // BEGIN SONGBIRD GPL
00004 // 
00005 // This file is part of the Songbird web player.
00006 //
00007 // Copyright© 2006 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 
00027 #include "nsISupports.idl"
00028 
00029 interface sbIDatabaseQuery;
00030 
00031 [scriptable, uuid(7B2945F6-6A00-4489-AD2F-95BA25F4D1EA)]
00032 interface sbISimplePlaylist : nsISupports
00033 {
00034   void setQueryObject(in sbIDatabaseQuery queryObj);
00035 
00036   sbIDatabaseQuery getQueryObject();
00037 
00038   void addByURL(in AString strURL, 
00039     in PRUint32 nColumnCount, 
00040     [array, size_is(nColumnCount)] in wstring aColumns,
00041     in PRUint32 nValueCount, 
00042     [array, size_is(nValueCount)] in wstring aValues, 
00043     in PRBool bWillRunLater);
00044 
00045   PRBool removeByURL(in AString strURL, 
00046     in PRBool bWillRunLater);
00047 
00048   PRBool removeByIndex(in PRInt32 nIndex, 
00049     in PRBool bWillRunLater);
00050 
00051   PRBool removeByGUID(in AString mediaGUID, 
00052     in PRBool bWillRunLater);
00053 
00054   PRInt32 findByURL(in AString strURL);
00055 
00056   AString findByIndex(in PRInt32 nIndex);
00057 
00058   void getColumnInfo();
00059 
00060   void setColumnInfo(in AString columnName, 
00061     in AString columnReadableName, 
00062     in PRBool isColumnEverVisible, 
00063     in PRBool isColumnVisibleByDefault, 
00064     in PRBool isMetadataColumn, 
00065     in PRInt32 columnSortWeight,
00066     in PRInt32 columnDefaultUIWidth,
00067     in AString columnDataType,
00068     in PRBool isColumnReadOnly,
00069     in PRBool willRunQueryLater);
00070 
00071   void getTableInfo();
00072   
00073   void addColumn(in AString strColumn, 
00074     in AString strDataType);
00075 
00076   void deleteColumn(in AString strColumn);
00077 
00078   PRInt32 getNumEntries();
00079 
00080   PRInt32 getEntry(in PRInt32 nEntry);
00081 
00082   PRInt32 getAllEntries();
00083 
00084   AString getColumnValueByIndex(in PRInt32 mediaIndex, 
00085     in AString strColumn);
00086 
00087   AString getColumnValueByURL(in AString mediaURL, 
00088     in AString strColumn);
00089 
00090   void getColumnValuesByIndex(in PRInt32 mediaIndex, 
00091     in PRUint32 nColumnCount, 
00092     [array, size_is(nColumnCount)] in wstring aColumns,
00093     out PRUint32 nValueCount, 
00094     [array, size_is(nValueCount), retval] out wstring aValues);
00095 
00096   void getColumnValuesByURL(in AString mediaURL, 
00097     in PRUint32 nColumnCount, 
00098     [array, size_is(nColumnCount)] in wstring aColumns,
00099     out PRUint32 nValueCount, 
00100     [array, size_is(nValueCount), retval] out wstring aValues);
00101   
00102   void setColumnValueByIndex(in PRInt32 mediaIndex, 
00103     in AString strColumn, 
00104     in AString strValue, 
00105     in PRBool bWillRunLater);
00106 
00107   void setColumnValueByURL(in AString mediaURL, 
00108     in AString strColumn, 
00109     in AString strValue, 
00110     in PRBool bWillRunLater);
00111 
00112   void setColumnValuesByIndex(in PRInt32 mediaIndex, 
00113     in PRUint32 nColumnCount, 
00114     [array, size_is(nColumnCount)] in wstring aColumns,
00115     in PRUint32 nValueCount, 
00116     [array, size_is(nValueCount)] in wstring aValues, 
00117     in PRBool bWillRunLater);
00118 
00119   void setColumnValuesByURL(in AString mediaURL, 
00120     in PRUint32 nColumnCount, 
00121     [array, size_is(nColumnCount)] in wstring aColumns,
00122     in PRUint32 nValueCount, 
00123     [array, size_is(nValueCount)] in wstring aValues, 
00124     in PRBool bWillRunLater);
00125 
00126   void setName(in AString strName);
00127 
00128   AString getName();
00129 
00130   void setReadableName(in AString strReadableName);
00131 
00132   AString getReadableName();
00133 };
00134 
00135 [scriptable, uuid(C2B560D7-A145-4dd3-9040-F1682F17BCA6)]
00136 interface sbIPlaylist : nsISupports
00137 {
00138   void setQueryObject(in sbIDatabaseQuery queryObj);
00139 
00140   sbIDatabaseQuery getQueryObject();
00141 
00142   PRBool addByGUID(in AString mediaGUID, 
00143     in AString serviceGUID, 
00144     in PRInt32 nPosition, 
00145     in PRBool bReplace, 
00146     in PRBool bWillRunLater);
00147 
00148   PRBool removeByGUID(in AString mediaGUID);
00149 
00150   PRBool removeByIndex(in PRInt32 mediaIndex);
00151 
00152   PRBool moveByGUID(in AString mediaGUID, 
00153     in PRInt32 nPosition);
00154 
00155   PRBool moveByIndex(in PRInt32 mediaIndex, 
00156     in PRInt32 nPosition);
00157   
00158   PRInt32 findByGUID(in AString mediaGUID);
00159 
00160   AString findByIndex(in PRInt32 mediaIndex);
00161 
00162   void getColumnInfo();
00163 
00164   void setColumnInfo(in AString columnName, 
00165     in AString columnReadableName, 
00166     in PRBool isColumnEverVisible, 
00167     in PRBool isColumnVisibleByDefault, 
00168     in PRBool isMetadataColumn, 
00169     in PRInt32 columnSortWeight,
00170     in PRInt32 columnDefaultUIWidth,
00171     in AString columnDataType,
00172     in PRBool isColumnReadOnly,
00173     in PRBool willRunQueryLater);
00174 
00175   void getTableInfo();
00176   
00177   void addColumn(in AString strColumn);
00178 
00179   void deleteColumn(in AString strColumn);
00180 
00181   PRInt32 getNumEntries();
00182 
00183   PRInt32 getEntry(in PRInt32 nEntry);
00184 
00185   PRInt32 getAllEntries();
00186 
00187   AString getColumnValueByIndex(in PRInt32 mediaIndex, 
00188     in AString strColumn);
00189 
00190   AString getColumnValueByGUID(in AString mediaGUID, 
00191     in AString strColumn);
00192 
00193   void getColumnValuesByIndex(in PRInt32 mediaIndex, 
00194     in PRUint32 nColumnCount, 
00195     [array, size_is(nColumnCount)] in wstring aColumns,
00196     out PRUint32 nValueCount, 
00197     [array, size_is(nValueCount), retval] out wstring aValues);
00198 
00199   void getColumnValuesByGUID(in AString mediaGUID, 
00200     in PRUint32 nColumnCount, 
00201     [array, size_is(nColumnCount)] in wstring aColumns,
00202     out PRUint32 nValueCount, 
00203     [array, size_is(nValueCount), retval] out wstring aValues);
00204   
00205   void setColumnValueByIndex(in PRInt32 mediaIndex, 
00206     in AString strColumn, 
00207     in AString strValue);
00208 
00209   void setColumnValueByGUID(in AString mediaGUID, 
00210     in AString strColumn, 
00211     in AString strValue);
00212 
00213   void setColumnValuesByIndex(in PRInt32 mediaIndex, 
00214     in PRUint32 nColumnCount, 
00215     [array, size_is(nColumnCount)] in wstring aColumns,
00216     in PRUint32 nValueCount, 
00217     [array, size_is(nValueCount)] in wstring aValues);
00218 
00219   void setColumnValuesByGUID(in AString mediaGUID, 
00220     in PRUint32 nColumnCount, 
00221     [array, size_is(nColumnCount)] in wstring aColumns,
00222     in PRUint32 nValueCount, 
00223     [array, size_is(nValueCount)] in wstring aValues);
00224 
00225   void setName(in AString strName);
00226 
00227   AString getName();
00228 
00229   void setReadableName(in AString strReadableName);
00230 
00231   AString getReadableName();
00232 };
00233 
00234 [scriptable, uuid(8A1A3D68-E3A4-484b-B9A5-4088ADEDA5B3)]
00235 interface sbIDynamicPlaylist : sbIPlaylist
00236 {
00237   void setPeriodicity(in PRUint32 nPeriodicity, 
00238     in PRBool bWillRunLater);
00239 
00240   PRUint32 getPeriodicity();
00241   
00242   void setURL(in AString strURL, 
00243     in PRBool bWillRunLater);
00244   AString getURL();
00245 
00246   void setLastUpdateTime();
00247 
00248   PRInt64 getLastUpdateTime();
00249 };
00250 
00251 [scriptable, uuid(07BC8B9F-FB08-4fd6-92A4-9D5CDFE2D823)]
00252 interface sbISmartPlaylist : sbIPlaylist
00253 {
00254   void setLibrary(in AString strLibrary, 
00255     in PRBool bWillRunLater);
00256 
00257   AString getLibrary();
00258 
00259   void setLimitAndType(in PRUint32 nLimit, 
00260     in AString strLimitType, 
00261     in PRBool bWillRunLater);
00262 
00263   PRUint32 getLimit();
00264 
00265   AString getLimitType();
00266 
00267   void getLimitAndType(out PRUint32 nLimit, 
00268     out AString strLimitType);
00269 
00270   void setSelectedBy(in AString strSelectedBy);
00271   
00272   AString getSelectedBy();
00273 
00274   void setMatch(in AString strMatchOn);
00275 
00276   AString getMatch();
00277 
00278   void addConstraint(in AString strMetadata, 
00279     in AString strConstraint, 
00280     in AString strConstraintValue, 
00281     in PRBool bWillRunLater);
00282 
00283   PRUint32 getConstraintCount();
00284 
00285   PRUint32 getAllConstraints();
00286 
00287   PRBool getConstraint(in PRUint32 nIndex);
00288 
00289   void replaceConstraint(in PRUint32 nIndex, 
00290     in AString strMetadata, 
00291     in AString strConstraint, 
00292     in AString strConstraintValue, 
00293     in PRBool bWillRunLater);
00294 
00295   void removeConstraint(in PRUint32 nIndex, 
00296     in PRBool bWillRunLater);
00297 
00298   void removeAllConstraints(in PRBool bWillRunLater);
00299 
00300   //Don't use SetQuery unless you want to build a custom query that's not doable from the
00301   //SmartPlaylist query builder!
00302   void setQuery(in AString strQuery, 
00303     in PRBool bWillRunLater);
00304 
00305   //Get the SQL Query representation of the SmartPlaylist.
00306   AString getQuery();
00307 
00308   PRBool rebuildPlaylist();
00309 };
00310 
00311 [scriptable, uuid(0BE3A41A-6673-494a-A53E-9740A98ACFF7)]
00312 interface sbIPlaylistManager : nsISupports
00313 {
00314   void createDefaultPlaylistManager(in sbIDatabaseQuery queryObj);
00315 
00316   sbISimplePlaylist createSimplePlaylist(in AString strName, 
00317     in AString strReadableName, 
00318     in AString strDescription, 
00319     in AString strType, 
00320     in PRUint32 nColumnCount, 
00321     [array, size_is(nColumnCount)] in wstring aColumns, 
00322     in sbIDatabaseQuery queryObj);
00323 
00324   sbIPlaylist createPlaylist(in AString strName, 
00325     in AString strReadableName, 
00326     in AString strDescription, 
00327     in AString strType, 
00328     in sbIDatabaseQuery queryObj);
00329 
00330   sbIDynamicPlaylist createDynamicPlaylist(in AString strName, 
00331     in AString strReadableName, 
00332     in AString strDescription, 
00333     in AString strType, 
00334     in AString strURL, 
00335     in PRUint32 nPeriodicity, 
00336     in sbIDatabaseQuery queryObj);
00337 
00338   sbISmartPlaylist createSmartPlaylist(in AString strName, 
00339     in AString strReadableName, 
00340     in AString strDescription, 
00341     in AString strType, 
00342     in AString strLibrary, 
00343     in PRUint32 nLimit, 
00344     in AString strLimitType, 
00345     in AString strSelectedBy, 
00346     in AString strMatchOn, 
00347     in sbIDatabaseQuery queryObj);
00348 
00349   sbIPlaylist copyPlaylist(in AString strSourceDB, 
00350     in AString strSourceName, 
00351     in AString strDestDB, 
00352     in AString strDestName, 
00353     in AString strReadableName, 
00354     in AString strDescription, 
00355     in AString strType, 
00356     in sbIDatabaseQuery queryObj);
00357 
00358   sbISimplePlaylist copySimplePlaylist(in AString strSourceDB, 
00359     in AString strSourceName, 
00360     in AString strSourceFilterColumn, 
00361     in PRUint32 nSourceFilterValueCount, 
00362     [array, size_is(nSourceFilterValueCount)] in wstring aSourceFilterValues, 
00363     in AString strDestDB, 
00364     in AString strDestName, 
00365     in AString strReadableName, 
00366     in AString strDescription, 
00367     in AString strType, 
00368     in sbIDatabaseQuery queryObj);
00369 
00370   PRInt32 deleteSimplePlaylist(in AString strName, 
00371     in sbIDatabaseQuery queryObj);
00372 
00373   PRInt32 deletePlaylist(in AString strName, 
00374     in sbIDatabaseQuery queryObj);
00375 
00376   PRInt32 deleteDynamicPlaylist(in AString strName, 
00377     in sbIDatabaseQuery queryObj);
00378 
00379   PRInt32 deleteSmartPlaylist(in AString strName,
00380     in sbIDatabaseQuery queryObj);
00381   
00382   void getAllPlaylistList(in sbIDatabaseQuery queryObj);
00383   
00384   void getSimplePlaylistList(in sbIDatabaseQuery queryObj);
00385 
00386   void getPlaylistList(in sbIDatabaseQuery queryObj);
00387 
00388   void getDynamicPlaylistList(in sbIDatabaseQuery queryObj);
00389 
00390   void getSmartPlaylistList(in sbIDatabaseQuery queryObj);
00391   
00392   sbISimplePlaylist getSimplePlaylist(in AString strName, 
00393     in sbIDatabaseQuery queryObj);
00394 
00395   sbIPlaylist getPlaylist(in AString strName, 
00396     in sbIDatabaseQuery queryObj);
00397 
00398   sbIDynamicPlaylist getDynamicPlaylist(in AString strName, 
00399     in sbIDatabaseQuery queryObj);
00400 
00401   sbISmartPlaylist getSmartPlaylist(in AString strName, 
00402     in sbIDatabaseQuery queryObj);
00403 
00404   PRUint32 getDynamicPlaylistsForUpdate(in sbIDatabaseQuery queryObj);
00405   
00406   PRBool setDynamicPlaylistLastUpdate(in AString strName, 
00407     in sbIDatabaseQuery queryObj);
00408 
00409   void purgeTrackByGUIDFromPlaylists(in AString mediaGUID, 
00410     in AString strDBGUID);
00411 };

Generated on Mon Aug 21 21:01:55 2006 for Songbird by  doxygen 1.4.7