root/lang/csharp/iTunesCOMWrap/trunk/iTunesCOMWrap/Interfaces/IPlaylists.cs @ 11175

Revision 11175, 2.9 kB (checked in by topia, 5 years ago)

* add iTunesCOMWrap.

Line 
1using System.Collections.Generic;
2
3using iTunes = iTunesLib;
4namespace 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}
Note: See TracBrowser for help on using the browser.