コード例 #1
0
 protected override void RemoveTrackRange(DatabaseTrackListModel model, RangeCollection.Range range)
 {
     ServiceManager.DbConnection.Execute(
         String.Format(remove_range_sql, model.TrackIdsSql),
         DateTime.Now,
         model.CacheId, range.Start, range.End - range.Start + 1,
         model.CacheId, range.Start, range.End - range.Start + 1
         );
 }
コード例 #2
0
        protected override void RemoveTrackRange(DatabaseTrackListModel model, RangeCollection.Range range)
        {
            base.RemoveTrackRange(model, range);

            model.Selection.UnselectRange(range.Start, range.End);

            int index = TrackModel.IndexOf(current_track);

            if (range.Start <= index && index <= range.End)
            {
                SetCurrentTrack(range.End + 1 < Count ? TrackModel[range.End + 1] as DatabaseTrackInfo : null);
            }
        }
コード例 #3
0
        protected override void AddTrackRange(DatabaseTrackListModel from, RangeCollection.Range range)
        {
            last_add_range_command = (!from.CachesJoinTableEntries)
                ? add_track_range_command
                : from == last_add_range_from_model
                    ? last_add_range_command
                    : new HyenaSqliteCommand(String.Format(add_track_range_from_joined_model_sql, from.JoinTable, from.JoinPrimaryKey));

            long first_order_id = ServiceManager.DbConnection.Query <long> ("SELECT OrderID FROM CoreCache WHERE ModelID = ? LIMIT 1 OFFSET ?", from.CacheId, range.Start);

            ServiceManager.DbConnection.Execute(last_add_range_command, DbId, MaxViewOrder - first_order_id, from.CacheId, range.Start, range.Count);

            last_add_range_from_model = from;
        }
コード例 #4
0
        void CheckOffsetAndRealized(GeneratorPosition position, int count)
        {
            if (position.Offset != 0)
            {
                throw new ArgumentException("position.Offset must be zero as the position must refer to a realized element");
            }

            int index      = IndexFromGeneratorPosition(position);
            int rangeIndex = RealizedElements.FindRangeIndexForValue(index);

            RangeCollection.Range range = RealizedElements.Ranges[rangeIndex];
            if (index < range.Start || (index + count) > range.Start + range.Count)
            {
                throw new InvalidOperationException("Only items which have been Realized can be removed");
            }
        }
コード例 #5
0
 protected virtual void RateTrackRange(DatabaseTrackListModel model, RangeCollection.Range range, int rating)
 {
     ServiceManager.DbConnection.Execute(RateTrackRangeCommand,
                                         rating, DateTime.Now, range.Start, range.End - range.Start + 1);
 }
コード例 #6
0
 protected virtual void AddTrackRange(DatabaseTrackListModel model, RangeCollection.Range range)
 {
     Log.ErrorFormat("AddTrackRange not implemented by {0}", this);
 }
コード例 #7
0
 protected override void RemoveTrackRange(DatabaseTrackListModel from, RangeCollection.Range range)
 {
     ServiceManager.DbConnection.Execute(remove_track_range_command,
                                         DbId, from.CacheId, range.Start, range.Count);
 }
コード例 #8
0
ファイル: Shuffler.cs プロジェクト: thoja21/banshee-1
 public void RecordShuffleModifications(DatabaseTrackListModel model, RangeCollection.Range range, ShuffleModificationType type)
 {
     ServiceManager.DbConnection.Execute(String.Format("{0} SELECT ?, ?, ?, {1}", modify_sql, model.TrackIdsSql),
                                         DbId, DateTime.Now, (int)type, model.CacheId, range.Start, range.Count);
 }
コード例 #9
0
ファイル: Shuffler.cs プロジェクト: thoja21/banshee-1
 public void RecordInsertions(DatabaseTrackListModel model, RangeCollection.Range range)
 {
     RecordShuffleModifications(model, range, ShuffleModificationType.Insertion);
 }