Exemplo n.º 1
0
        private void Stop_Click(object sender, RoutedEventArgs e)
        {
            var client  = IPCClient.GetInstance();
            var factory = new IPCMessageFactory();

            client.Send(factory.Create("stop"));
        }
Exemplo n.º 2
0
        private void UserControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var factory = new IPCMessageFactory();
            var message = factory.Create("restoreWindow");

            var client = IPCClient.GetInstance();

            client.Send(message);
        }
Exemplo n.º 3
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            var client = IPCClient.GetInstance();

            client.Disconnected    += IPCClient_Disconnected;
            client.MessageReceived += IPCClient_MessageReceived;

            client.Init();

            // update information
            var factory = new IPCMessageFactory();

            client.Send(factory.Create("update"));
        }
Exemplo n.º 4
0
        private void PlaybackManager_PlaybackStateChanged(object sender, EventArgs e)
        {
            var app      = (App)Application.Current;
            var playback = PlaybackManager.GetInstance();

            // construct message
            var factory = new IPCMessageFactory();
            var message = factory.Create("playbackStateChanged", out XmlNode messageNode);

            // <hasTrack />
            var hasTrackNode = message.CreateElement("hasTrack");

            hasTrackNode.InnerText = playback.Track == null ? "false" : "true";
            messageNode.AppendChild(hasTrackNode);

            if (playback.Track != null)
            {
                // <title />
                var titleNode = message.CreateElement("title");
                titleNode.InnerText = playback.Track.Title + " - " + playback.Track.Artist.Title;
                messageNode.AppendChild(titleNode);

                // <artwork />
                var artworkNode = message.CreateElement("artwork");
                artworkNode.InnerText = app.plexClient.GetPhotoTranscodeUrl(playback.Track.Thumb, 50, 50).ToString();
                messageNode.AppendChild(artworkNode);

                // <duration />
                var durationNode = message.CreateElement("duration");
                durationNode.InnerText = playback.Track.Duration.ToString();
                messageNode.AppendChild(durationNode);

                // <position />
                var positionNode = message.CreateElement("position");
                positionNode.InnerText = playback.Position.ToString();
                messageNode.AppendChild(positionNode);

                // <playing />
                var playingNode = message.CreateElement("playing");
                playingNode.InnerText = playback.PlaybackState == NAudio.Wave.PlaybackState.Playing ? "true" : "false";
                messageNode.AppendChild(playingNode);
            }

            // send to client
            var server = IPCServer.GetInstance();

            server.Send(message);
        }
Exemplo n.º 5
0
        private void PlaybackManager_VolumeChanged(object sender, EventArgs e)
        {
            var playback = PlaybackManager.GetInstance();

            // construct message
            var factory = new IPCMessageFactory();
            var message = factory.Create("volumeChanged", out XmlNode messageNode);

            // <volume />
            var volumeNode = message.CreateElement("volume");

            volumeNode.InnerText = ((int)Math.Floor(playback.Volume * 100)).ToString();
            messageNode.AppendChild(volumeNode);

            // send to client
            var server = IPCServer.GetInstance();

            server.Send(message);
        }
Exemplo n.º 6
0
        private void Playback_PlaybackTick(object sender, EventArgs e)
        {
            var playback = PlaybackManager.GetInstance();

            // construct message
            var factory = new IPCMessageFactory();
            var message = factory.Create("positionChanged", out XmlNode messageNode);

            // <position />
            var positionNode = message.CreateElement("position");

            positionNode.InnerText = playback.Position.ToString();
            messageNode.AppendChild(positionNode);

            // send to client
            var server = IPCServer.GetInstance();

            server.Send(message);
        }
Exemplo n.º 7
0
        private void Position_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (doNotTriggerEvent)
            {
                return;
            }

            var factory = new IPCMessageFactory();
            var message = factory.Create("setPosition", out XmlNode messageNode);

            var positionNode = message.CreateElement("position");

            positionNode.InnerText = ((int)e.NewValue).ToString();
            messageNode.AppendChild(positionNode);

            var client = IPCClient.GetInstance();

            client.Send(message);
        }