public PodcastTrackListModel(BansheeDbConnection conn, IDatabaseTrackModelProvider provider, DatabaseSource source) : base(conn, provider, source)
        {
            From = String.Format("{0}, {1}, {2}, {3}", provider.From, Feed.Provider.TableName, FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName);

            int podcast_library_dbid = (source as PodcastSource ?? source.Parent as PodcastSource).DbId;

            AddCondition(From, String.Format(
                             "CoreTracks.PrimarySourceID = {3} AND {0}.FeedID = {1}.FeedID AND CoreTracks.ExternalID = {1}.ItemID AND {1}.ItemID = {2}.ItemID",
                             Feed.Provider.TableName, FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName, podcast_library_dbid
                             ));
        }
예제 #2
0
        public DatabaseFilterListModel(string name, string label, Banshee.Sources.DatabaseSource source,
                                       DatabaseTrackListModel trackModel, BansheeDbConnection connection, SqliteModelProvider <T> provider, U selectAllItem, string uuid)
            : base(trackModel)
        {
            this.source     = source;
            FilterName      = name;
            FilterLabel     = label;
            select_all_item = selectAllItem;

            this.connection  = connection;
            cache            = new BansheeModelCache <T> (connection, uuid, this, provider);
            HasSelectAllItem = true;
        }
예제 #3
0
        public DatabaseQueryFilterModel(Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel,
                                        BansheeDbConnection connection, string select_all_fmt, string uuid, QueryField field, string filter_column)
            : base(field.Name, field.Label, source, trackModel, connection, QueryFilterInfo <T> .CreateProvider(filter_column, field), new QueryFilterInfo <T> (), String.Format("{0}-{1}", uuid, field.Name))
        {
            this.field          = field;
            this.select_all_fmt = select_all_fmt;

            ReloadFragmentFormat = @"
                FROM CoreTracks, CoreCache{0}
                    WHERE {4}(CoreCache.ModelID = {1}) AND CoreCache.ItemID = {2} {3}
                    ORDER BY Value";

            QueryFields = new QueryFieldSet(query_filter_field);
        }
        public DatabaseTrackListModel(BansheeDbConnection connection, IDatabaseTrackModelProvider provider, Banshee.Sources.DatabaseSource source)
        {
            this.connection = connection;
            this.provider   = provider;
            this.source     = source;

            SelectAggregates = "SUM(CoreTracks.Duration), SUM(CoreTracks.FileSize)";

            Selection.Changed += delegate {
                if (SelectionAggregatesHandler != null)
                {
                    cache.UpdateSelectionAggregates(SelectionAggregatesHandler);
                }
            };
        }
예제 #5
0
        public DatabaseConfigurationClient(BansheeDbConnection connection)
        {
            this.connection = connection;

            select_value_command = new HyenaSqliteCommand(String.Format(
                                                              "SELECT Value FROM {0} WHERE Key=?", TableName));

            select_id_command = new HyenaSqliteCommand(String.Format(
                                                           "SELECT EntryID FROM {0} WHERE Key=?", TableName));

            insert_command = new HyenaSqliteCommand(String.Format(
                                                        "INSERT INTO {0} (EntryID, Key, Value) VALUES (NULL, ?, ?)", TableName));

            update_command = new HyenaSqliteCommand(String.Format(
                                                        "UPDATE {0} SET Value=? WHERE Key=?", TableName));
        }
예제 #6
0
        public DatabaseTrackListModel(BansheeDbConnection connection, IDatabaseTrackModelProvider provider, Banshee.Sources.DatabaseSource source)
        {
            this.connection = connection;
            this.provider   = provider;
            this.source     = source;

            SelectAggregates = String.Format("SUM({0}), SUM({1})",
                                             BansheeQuery.DurationField.Column, BansheeQuery.FileSizeField.Column);

            Selection.Changed += delegate {
                if (SelectionAggregatesHandler != null)
                {
                    cache.UpdateSelectionAggregates(SelectionAggregatesHandler);
                }
            };
        }
        public PodcastTrackListModel(BansheeDbConnection conn, IDatabaseTrackModelProvider provider, DatabaseSource source) : base(conn, provider, source)
        {
            From = String.Format("{0}, {1}, {2}, {3}", provider.From, Feed.Provider.TableName, FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName);

            int podcast_library_dbid = (source as PodcastSource ?? source.Parent as PodcastSource).DbId;

            AddCondition(From, String.Format(
                             "CoreTracks.PrimarySourceID = {3} AND {0}.FeedID = {1}.FeedID AND CoreTracks.ExternalID = {1}.ItemID AND {1}.ItemID = {2}.ItemID",
                             Feed.Provider.TableName, FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName, podcast_library_dbid
                             ));

            SelectAggregates          += ",COUNT(NULLIF(CoreTracks.Uri LIKE 'file:%', 0)), COUNT(NULLIF(CoreTracks.PlayCount = 0, 0)), COUNT(DISTINCT(CoreTracks.AlbumID))";
            SelectionAggregatesHandler = (reader) => {
                SelectionDownloadedCount = Convert.ToInt32(reader[3]);
                SelectionUnheardCount    = Convert.ToInt32(reader[4]);
                SelectionPodcastCount    = Convert.ToInt32(reader[5]);
            };
        }
 public CS_TrackInfoDb(BansheeDbConnection con)
 {
     _con           = con;
     _sql_check     = new HyenaSqliteCommand("SELECT COUNT(*) FROM cuesheet_info WHERE key=?");
     _sql_get       = new HyenaSqliteCommand("SELECT type,value FROM cuesheet_info WHERE key=?");
     _sql_insert    = new HyenaSqliteCommand("INSERT INTO cuesheet_info VALUES(?,?,?)");
     _sql_update    = new HyenaSqliteCommand("UPDATE cuesheet_info SET type=?, value=? WHERE key=?");
     _sql_key_begin = new HyenaSqliteCommand("SELECT key FROM cuesheet_info WHERE key LIKE ?");
     try {
         if (!_con.TableExists("cuesheet_info"))
         {
             _con.Query("CREATE TABLE cuesheet_info(key varchar,type varchar,value varchar)");
             _con.Query("CREATE INDEX cuesheet_idx1 ON cuesheet_info(key)");
         }
     } catch (System.Exception ex) {
         Hyena.Log.Information(ex.ToString());
     }
 }
예제 #9
0
 public DatabaseYearListModel(Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel, BansheeDbConnection connection, string uuid)
     : base(Banshee.Query.BansheeQuery.YearField.Name, Banshee.Query.BansheeQuery.YearField.Label,
            source, trackModel, connection, DatabaseYearInfo.Provider, new YearInfo(), uuid)
 {
     QueryFields          = new QueryFieldSet(Banshee.Query.BansheeQuery.YearField);
     ReloadFragmentFormat = @"
         FROM (SELECT MIN(CoreTracks.TrackID) AS TrackID, CoreTracks.Year FROM CoreTracks GROUP BY CoreTracks.Year) AS CoreTracks
         WHERE CoreTracks.Year IN
             (SELECT CoreTracks.Year FROM CoreTracks, CoreCache{0}
                 WHERE CoreCache.ModelID = {1} AND
                       CoreCache.ItemID = {2} {3})
             ORDER BY Year";
 }
 public DatabaseTrackModelProvider(BansheeDbConnection connection) : base(connection, "CoreTracks")
 {
 }
 public DatabaseAlbumListModel(Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel, BansheeDbConnection connection, string uuid)
     : base(Banshee.Query.BansheeQuery.AlbumField.Name, Banshee.Query.BansheeQuery.AlbumField.Label,
            source, trackModel, connection, DatabaseAlbumInfo.Provider, new AlbumInfo(null), uuid)
 {
     ReloadFragmentFormat = @"
         FROM CoreAlbums WHERE CoreAlbums.AlbumID IN
                 (SELECT CoreTracks.AlbumID FROM CoreTracks, CoreCache{0}
                     WHERE CoreCache.ModelID = {1} AND
                           CoreCache.ItemId = {2} {3})
             ORDER BY CoreAlbums.TitleSortKey, CoreAlbums.ArtistNameSortKey";
 }
예제 #12
0
 public DatabaseArtistListModel(Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel, BansheeDbConnection connection, string uuid)
     : base(Banshee.Query.BansheeQuery.ArtistField.Name, Banshee.Query.BansheeQuery.ArtistField.Label,
            source, trackModel, connection, DatabaseArtistInfo.Provider, new ArtistInfo(null, null), uuid)
 {
     QueryFields          = new QueryFieldSet(Banshee.Query.BansheeQuery.ArtistField);
     ReloadFragmentFormat = @"
         FROM CoreArtists WHERE CoreArtists.ArtistID IN
             (SELECT CoreTracks.ArtistID FROM CoreTracks, CoreCache{0}
                 WHERE {4}(CoreCache.ModelID = {1}) AND
                       CoreCache.ItemID = {2} {3})
             ORDER BY NameSortKey";
 }
예제 #13
0
 public PodcastFeedModel(Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel, BansheeDbConnection connection, string uuid)
     : base("podcast", Catalog.GetString("Podcast"), source, trackModel, connection, Feed.Provider, new Feed(null, FeedAutoDownload.None), uuid)
 {
     ReloadFragmentFormat = @"
         FROM PodcastSyndications WHERE FeedID IN
             (SELECT DISTINCT PodcastSyndications.FeedID FROM PodcastItems, CoreTracks, PodcastEnclosures, PodcastSyndications, CoreCache{0}
                 WHERE PodcastSyndications.FeedID = PodcastItems.FeedID AND
                   PodcastItems.ItemID = CoreTracks.ExternalID AND PodcastEnclosures.ItemID = PodcastItems.ItemID AND
                   CoreCache.ModelID = {1} AND CoreCache.ItemId = {2} {3})
             ORDER BY lower(Title)";
 }
예제 #14
0
        public AudiobookModel(AudiobookLibrarySource source, DatabaseTrackListModel trackModel, BansheeDbConnection connection, string uuid) : base(source, trackModel, connection, uuid)
        {
            Selection        = new Hyena.Collections.Selection();
            HasSelectAllItem = false;

            ReloadFragmentFormat = String.Format(@"
                FROM CoreAlbums WHERE CoreAlbums.AlbumID IN (SELECT AlbumID FROM CoreTracks WHERE PrimarySourceID = {0})
                ORDER BY CoreAlbums.TitleSortKey, CoreAlbums.ArtistNameSortKey",
                                                 source.DbId);
        }
 public PlayQueueTrackListModel(
     BansheeDbConnection conn, IDatabaseTrackModelProvider provider, PlayQueueSource source) :
     base(conn, provider, source)
 {
     this.source = source;
 }
예제 #16
0
 public DatabaseTrackListModel(BansheeDbConnection connection, IDatabaseTrackModelProvider provider, Banshee.Sources.DatabaseSource source)
 {
     this.connection = connection;
     this.provider   = provider;
     this.source     = source;
 }