public static void Main(string[] args) { string server_name = "Sample Server"; string database_name = "Sample Database"; ushort port = 3689; Database db = new Database (database_name); for (int i = 0; i < args.Length; i++) { if (args[i] == "--port") { port = Convert.ToUInt16 (args[++i]); continue; } if (args[i] == "--server-name") { server_name = args[++i]; continue; } if (args[i] == "--database-name") { database_name = args[++i]; continue; } if (args[i] == "--help") { ShowHelp (); return; } AddDirectory (db, args[i]); } db.Name = database_name; server = new Server (server_name); server.Collision += OnCollision; server.Port = port; Playlist pl = new Playlist ("foo playlist"); foreach (Track track in db.Tracks) { pl.AddTrack (track); } db.AddPlaylist (pl); Console.WriteLine ("Done adding files"); Console.WriteLine ("Starting Server '{0}' on Port {1}", server.Name, server.Port); server.AddDatabase (db); server.Commit (); server.Start (); Console.ReadLine (); server.Stop (); }
private Playlist ClonePlaylist(Database db, Playlist pl) { Playlist clonePl = new Playlist (pl.Name); clonePl.Id = pl.Id; IList<Track> pltracks = pl.Tracks; for (int i = 0; i < pltracks.Count; i++) { clonePl.AddTrack (db.LookupTrackById (pltracks[i].Id), pl.GetContainerId (i)); } return clonePl; }
private void RefreshPlaylists() { if (!OpenConnection ()) return; IDbCommand cmd = conn.CreateCommand (); cmd.CommandText = "SELECT PlaylistID, Name FROM Playlists"; List<int> ids = new List<int> (); IDataReader reader = cmd.ExecuteReader (); while (reader.Read ()) { int id = (int) reader[0]; ids.Add (id); if (playlists.ContainsKey (id)) continue; Playlist pl = new Playlist ((string) reader[1]); Daemon.DefaultDatabase.AddPlaylist (pl); playlists[id] = pl; } reader.Close (); // remove the deleted playlists, if any foreach (int id in new List<int> (playlists.Keys)) { if (!ids.Contains (id)) { Daemon.DefaultDatabase.RemovePlaylist (playlists[id]); playlists.Remove (id); } } // clear all the playlists foreach (Playlist pl in playlists.Values) { pl.Clear (); } cmd = conn.CreateCommand (); cmd.CommandText = "SELECT PlaylistID, TrackID FROM PlaylistEntries"; reader = cmd.ExecuteReader (); while (reader.Read ()) { try { Playlist pl = playlists[(int) reader[0]]; pl.AddTrack (tracks[(int) reader[1]]); } catch (KeyNotFoundException e) { // something is not consistent, but nothing we can do about it } } reader.Close (); }
private Playlist AddPlaylist(IPod.Playlist ipl) { Playlist pl = new Playlist (ipl.Name); foreach (IPod.Track itrack in ipl.Tracks) { Track track = LookupTrack (itrack); if (track != null) pl.AddTrack (track); } db.AddPlaylist (pl); return pl; }