Beispiel #1
0
        private void OnTracksInQueueChanged(PlayqueueChangedEventArgs eventArgs)
        {
            if (eventArgs == null)
            {
                throw new ArgumentNullException("eventArgs");
            }

            SerializePlayqueue();

            if (PlayqueueChanged != null)
            {
                PlayqueueChanged(this, eventArgs);
            }
        }
Beispiel #2
0
        public void RemoveTracksFromQueue(IEnumerable <Guid> tracksToRemove)
        {
            // If not using an array, an Invalid Operation Exception will be thrown : something about Movenext, maybe the enumerator is not correctly implemented.
            var trackToRemoveArray       = tracksToRemove.ToArray();
            PlayqueueChangedEventArgs ea = new PlayqueueChangedEventArgs();
            var guidToTrackMappings      = new GuidToTrackMapping[trackToRemoveArray.Length];
            int guidToTrackMappingIndex  = 0;

            foreach (var guid in trackToRemoveArray)
            {
                var guidToTrackMapping = _tracksToGuidMapping.Single(o => o.Guid == guid);


                _tracksToGuidMapping.Remove(guidToTrackMapping);

                guidToTrackMappings[guidToTrackMappingIndex] = guidToTrackMapping;
                guidToTrackMappingIndex++;
            }
            ea.RemovedItems = guidToTrackMappings;
            this.OnTracksInQueueChanged(ea);
        }
Beispiel #3
0
        private void OnPlayqueueChanged(object sender, PlayqueueChangedEventArgs e)
        {
            if (e.RemovedItems != null)
            {
                foreach (var oldItem in e.RemovedItems)
                {
                    var guid = oldItem.Guid;
                    this.PlayQueueItems.Remove(this.PlayQueueItems.Single(o => o.Guid == guid));
                }
            }

            if (e.AddedItems != null)
            {
                foreach (GuidToTrackMapping newItem in e.AddedItems)
                {
                    this.PlayQueueItems.Add(this._trackViewModelFactory.Create(newItem.Guid, newItem.Track, this._pageSwitchingService));
                }
            }

            // Hack : we want to make sure the converter Will be re-evaluated, so the easiest way is to trigger a propery changed.
            OnPropertyChanged(PlayQueueItemsPropertyName);
        }
Beispiel #4
0
        private void OnTracksInQueueChanged(PlayqueueChangedEventArgs eventArgs)
        {
            if (eventArgs == null)
            {
                throw new ArgumentNullException("eventArgs");
            }

            SerializePlayqueue();

            if (PlayqueueChanged != null)
            {
                PlayqueueChanged(this, eventArgs);
            }
        }
Beispiel #5
0
        public void RemoveTracksFromQueue(IEnumerable<Guid> tracksToRemove)
        {
            // If not using an array, an Invalid Operation Exception will be thrown : something about Movenext, maybe the enumerator is not correctly implemented.
            var trackToRemoveArray = tracksToRemove.ToArray();
            PlayqueueChangedEventArgs ea = new PlayqueueChangedEventArgs();
            var guidToTrackMappings = new GuidToTrackMapping[trackToRemoveArray.Length];
            int guidToTrackMappingIndex = 0;
            foreach (var guid in trackToRemoveArray)
            {

                var guidToTrackMapping = _tracksToGuidMapping.Single(o => o.Guid == guid);

                _tracksToGuidMapping.Remove(guidToTrackMapping);

                guidToTrackMappings[guidToTrackMappingIndex] = guidToTrackMapping;
                guidToTrackMappingIndex++;
            }
            ea.RemovedItems = guidToTrackMappings;
            this.OnTracksInQueueChanged(ea);
        }