Beispiel #1
0
 /// <summary>
 /// Handle a playback changed event.
 /// Triggered by the <see cref="ZuneAPI.PlaybackChanged"/> event handler.
 /// </summary>
 /// <param name="sender">N/A</param>
 /// <param name="e">N/A</param>
 /// <seealso cref="DeferredUpdateAll"/>
 private void PlaybackChanged(object sender, EventArgs e)
 {
     if (cachedPlayback != zuneAPI.IsPlaying())
     {
         cachedPlayback = zuneAPI.IsPlaying();
         updateMessagesEnabled["playback"] = true;
     }
     DeferredUpdateAll(sender);
     if (updateMessagesEnabled["playback"])
     {
         updateMessagesEnabled["playback"] = false;
         messenger.Send(messageParser.CreateMessage(
                            zuneAPI.IsPlaying()
                 ? MessageParser.MESSAGE_TYPE.PLAY
                 : MessageParser.MESSAGE_TYPE.PAUSE),
                        true);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Create a message to be passed to the client.
        /// </summary>
        /// <param name="type">The type of message to be passed.</param>
        /// <returns>Said message.</returns>
        public string CreateMessage(MESSAGE_TYPE type)
        {
            StringBuilder sb = new StringBuilder();

            switch (type)
            {
            case MESSAGE_TYPE.FILTER_APPLY:
                sb.Append("apply_filter:");
                sb.Append(eqAPI.IsEqualizerApplied() ? "true" : "false");
                break;

            case MESSAGE_TYPE.FILTER_REMOVED:
                sb.Append("filter:removed");
                break;

            case MESSAGE_TYPE.FILTER_ADDED:
                sb.Append("filter:added");
                break;

            case MESSAGE_TYPE.FILTERS_GAIN:
                sb.Append("filters:");

                // get the gains on the filters
                bool first = true;
                foreach (KeyValuePair <double, Filter> pair in eqAPI.GetFilters())
                {
                    Filter filter = pair.Value;
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        sb.Append(",");
                    }
                    sb.Append(filter.Gain.ToString());
                }
                break;

            case MESSAGE_TYPE.PAUSE:
                sb.Append("playback:pause");
                break;

            case MESSAGE_TYPE.PLAY:
                sb.Append("playback:play");
                break;

            case MESSAGE_TYPE.VOLUME_CHANGED:
                sb.Append("volume:");
                sb.Append(eqAPI.PreAmp);
                break;

            case MESSAGE_TYPE.TRACK_CHANGED:
                sb.Append("track_changed:artist:");
                sb.Append(zuneAPI.CurrentTrack.Artist);
                sb.Append(";trackname:");
                sb.Append(zuneAPI.CurrentTrack.Title);
                sb.Append(";");
                sb.Append(zuneAPI.IsPlaying() ? CreateMessage(MESSAGE_TYPE.PLAY) : CreateMessage(MESSAGE_TYPE.PAUSE));
                sb.Append(";");
                sb.Append(CreateMessage(MESSAGE_TYPE.VOLUME_CHANGED));
                sb.Append(";");
                sb.Append(CreateMessage(MESSAGE_TYPE.FILTERS_GAIN));
                break;
            }

            return(sb.ToString());
        }