Esempio n. 1
0
        private async Task <(string, bool)> GetSpotifyTitle()
        {
            string mainWindowTitle       = null;
            var    isSpotifyAudioPlaying = false;

            if (_spotifyProcessId.HasValue)
            {
                try
                {
                    isSpotifyAudioPlaying = await _audioSession.IsSpotifyCurrentlyPlaying();

                    var process = _processManager.GetProcessById(_spotifyProcessId.Value);
                    mainWindowTitle = process?.MainWindowTitle ?? "";
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            else
            {
                _spotifyProcessId = GetSpotifyProcesses(_processManager)
                                    .FirstOrDefault(x => !string.IsNullOrEmpty(x.MainWindowTitle))?.Id;
            }

            return(mainWindowTitle, isSpotifyAudioPlaying);
        }
Esempio n. 2
0
        private async Task <(string, bool)> GetSpotifyTitle()
        {
            string mainWindowTitle       = null;
            var    isSpotifyAudioPlaying = false;

            if (_spotifyProcessId.HasValue)
            {
                try
                {
                    if (ExternalAPI.Instance.GetTypeAPI == Enums.ExternalAPIType.Spotify && ExternalAPI.Instance.IsAuthenticated)
                    {
                        var(title, isPlaying) = await ExternalAPI.Instance.GetCurrentPlayback();

                        mainWindowTitle       = title;
                        isSpotifyAudioPlaying = isPlaying;
                    }
                    // always fallback if it was not properly set by spotify api
                    if (mainWindowTitle == null)
                    {
                        isSpotifyAudioPlaying = await _audioSession.IsSpotifyCurrentlyPlaying();

                        var process = _processManager.GetProcessById(_spotifyProcessId.Value);
                        mainWindowTitle = process?.MainWindowTitle ?? "";
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(mainWindowTitle, isSpotifyAudioPlaying);
        }
Esempio n. 3
0
        public async Task <ISpotifyStatus> GetSpotifyStatus()
        {
            var isSpotifyPlaying = await _audioSession.IsSpotifyCurrentlyPlaying();

            var processTitle = GetSpotifyTitle();

            if (string.IsNullOrWhiteSpace(processTitle))
            {
                return(null);
            }

            var spotifyWindowInfo = new SpotifyWindowInfo
            {
                WindowTitle = processTitle,
                IsPlaying   = isSpotifyPlaying
            };

            return(new SpotifyStatus(spotifyWindowInfo));
        }