| 1 | using System.Collections.Generic;
|
|---|
| 2 |
|
|---|
| 3 | using iTunes = iTunesLib;
|
|---|
| 4 | namespace Clovery.iTunesHelper.COMWrap.Interfaces
|
|---|
| 5 | {
|
|---|
| 6 | /// <summary>
|
|---|
| 7 | /// Represents a playlist.
|
|---|
| 8 | /// </summary>
|
|---|
| 9 | /// <remarks>
|
|---|
| 10 | /// A playlist is always associated with an IITSource.
|
|---|
| 11 | /// </remarks>
|
|---|
| 12 | public interface IPlaylist : IITObject
|
|---|
| 13 | {
|
|---|
| 14 | iTunes.IITPlaylist __asIITPlaylist { get; }
|
|---|
| 15 | ITrackCollection Tracks { get; }
|
|---|
| 16 | List<ITrack> SameTracks(ITrack track);
|
|---|
| 17 | List<ITrack> SameTracks(int trackDatabaseID, string name);
|
|---|
| 18 | List<ITrack> SameTracks(int trackDatabaseID);
|
|---|
| 19 | bool Visible { get; }
|
|---|
| 20 | string Time { get; }
|
|---|
| 21 | PlaylistRepeatMode SongRepeat { get; set; }
|
|---|
| 22 | double Size { get; }
|
|---|
| 23 | bool Shuffle { get; set; }
|
|---|
| 24 | int Duration { get; }
|
|---|
| 25 | ISource Source { get; }
|
|---|
| 26 | PlaylistKind Kind { get; }
|
|---|
| 27 | bool CanSetShuffle { get; }
|
|---|
| 28 | bool CanSetSongRepeat { get; }
|
|---|
| 29 | void PlayFirstTrack();
|
|---|
| 30 | void Delete();
|
|---|
| 31 | void Print(bool showPrintDialog, PlaylistPrintKind printKind, string theme);
|
|---|
| 32 | ITrackCollection Search(string searchText, PlaylistSearchField searchFields);
|
|---|
| 33 | }
|
|---|
| 34 |
|
|---|
| 35 | public interface IAudioCDPlaylist : IPlaylist
|
|---|
| 36 | {
|
|---|
| 37 | string Artist { get; }
|
|---|
| 38 | bool Compilation { get; }
|
|---|
| 39 | string Composer { get; }
|
|---|
| 40 | int DiscCount { get; }
|
|---|
| 41 | int DiscNumber { get; }
|
|---|
| 42 | string Genre { get; }
|
|---|
| 43 | int Year { get; }
|
|---|
| 44 |
|
|---|
| 45 | /// <summary>
|
|---|
| 46 | /// Reveal the track in the main browser window.
|
|---|
| 47 | /// </summary>
|
|---|
| 48 | void Reveal();
|
|---|
| 49 | }
|
|---|
| 50 |
|
|---|
| 51 | public interface IEditablePlaylist : IPlaylist
|
|---|
| 52 | {
|
|---|
| 53 | IOperationStatus AddFile(string filePath);
|
|---|
| 54 | IOperationStatus AddFiles(string[] filePaths);
|
|---|
| 55 | IURLTrack AddURL(string URL);
|
|---|
| 56 | ITrack AddTrack(ITrack iTrackToAdd);
|
|---|
| 57 | }
|
|---|
| 58 |
|
|---|
| 59 | public interface ILibraryPlaylist : IEditablePlaylist { }
|
|---|
| 60 |
|
|---|
| 61 | public interface IUserPlaylist : IEditablePlaylist
|
|---|
| 62 | {
|
|---|
| 63 | bool Shared { get; set; }
|
|---|
| 64 | bool Smart { get; }
|
|---|
| 65 | UserPlaylistSpecialKind SpecialKind { get; }
|
|---|
| 66 | IUserPlaylist Parent { get; set; }
|
|---|
| 67 | IChildPlaylistCollection Children { get; }
|
|---|
| 68 | IPlaylist CreatePlaylist(string playlistName);
|
|---|
| 69 | IPlaylist CreateFolder(string folderName);
|
|---|
| 70 | IPlaylist GetOrCreatePlaylist(string playlistName);
|
|---|
| 71 | IPlaylist GetOrCreateFolder(string folderName);
|
|---|
| 72 | void Reveal();
|
|---|
| 73 | }
|
|---|
| 74 |
|
|---|
| 75 | public interface IPlaylistCollection : INamedCollection<IPlaylist>
|
|---|
| 76 | {
|
|---|
| 77 | List<IPlaylist> this[string Name, int? maxCounts] { get; }
|
|---|
| 78 | }
|
|---|
| 79 |
|
|---|
| 80 | public interface IChildPlaylistCollection :
|
|---|
| 81 | IEnumerable<IPlaylist>, IIndexedCollection<int, IPlaylist>, IIndexedCollection<string, IPlaylist>
|
|---|
| 82 | {
|
|---|
| 83 | int Count { get; }
|
|---|
| 84 |
|
|---|
| 85 | List<IPlaylist> this[string Name, int? maxCounts] { get; }
|
|---|
| 86 |
|
|---|
| 87 | IIndexedCollection<string, IPlaylist> ItemByName { get; }
|
|---|
| 88 | }
|
|---|
| 89 | } |
|---|