public UpdatePlayedStatesTask(
     bool markPlayed,
     bool incrementPlayCount,
     bool incrementSkipCount,
     int mediaID,
     EListType listType,
     ContainerPlayMarker containerPlayMarker)
 {
     this.MarkPlayed          = markPlayed;
     this.IncrementPlayCount  = incrementPlayCount;
     this.IncrementSkipCount  = incrementSkipCount;
     this.MediaID             = mediaID;
     this.ListType            = listType;
     this.ContainerPlayMarker = containerPlayMarker;
 }
 public LibraryPlaybackTrack(
     int mediaId,
     MediaType mediaType,
     ContainerPlayMarker containerPlayMarker)
 {
     this._mediaId             = mediaId;
     this._mediaType           = mediaType;
     this._listType            = PlaylistManager.MediaTypeToListType(mediaType);
     this._containerPlayMarker = containerPlayMarker;
     ThreadPool.QueueUserWorkItem(args =>
     {
         this._isInCollection = PlaylistManager.IsInCollection(this._mediaId, this._mediaType);
         Application.DeferredInvoke(delegate
         {
             this.RatingChanged.Invoke();
         }, null);
     }, null);
 }
        private void UpdatePlayedStates(
            bool markPlayed,
            bool incrementPlayCount,
            bool incrementSkipCount)
        {
            int mediaId = this.MediaId;

            if (mediaId == -1)
            {
                return;
            }
            EListType           listType            = this.ListType;
            ContainerPlayMarker containerPlayMarker = this._containerPlayMarker;

            ThreadPool.QueueUserWorkItem(new WaitCallback(UpdatePlayedStatesWorker), new UpdatePlayedStatesTask(markPlayed, incrementPlayCount, incrementSkipCount, mediaId, listType, containerPlayMarker));
            bool flag = this._containerPlayMarker != null && this._containerPlayMarker.PlaylistType == PlaylistType.QuickMix;

            if (incrementPlayCount)
            {
                if (this._mediaType == MediaType.Track)
                {
                    ++Shell.MainFrame.Social.PlayCount;
                }
                if (flag)
                {
                    SQMLog.Log(SQMDataId.QuickMixTrackPlays, 1);
                }
            }
            if (!incrementSkipCount || !flag)
            {
                return;
            }
            if (this.IsInVisibleCollection)
            {
                SQMLog.Log(SQMDataId.QuickMixLocalSkips, 1);
            }
            else
            {
                SQMLog.Log(SQMDataId.QuickMixRemoteSkips, 1);
            }
        }
Example #4
0
 public NowPlayingList(
     IList items,
     int startIndex,
     PlaybackContext context,
     PlayNavigationOptions playNavigationOptions,
     bool shuffling,
     ContainerPlayMarker containerPlayMarker,
     bool dontPlayMarketplaceTracks)
 {
     this._transientTracksPlaylistId = int.MinValue;
     this._playbackContext           = context;
     this._playNavigationOptions     = playNavigationOptions;
     this._dontPlayMarketplaceTracks = dontPlayMarketplaceTracks;
     if (this._playbackContext == PlaybackContext.QuickMix)
     {
         this.AddQuickMixItemsWorker(items);
     }
     else
     {
         this.AddItemsWorker(items, startIndex, shuffling, containerPlayMarker);
     }
 }