Example #1
0
        private async void DoMemoryReadout()
        {
            while (running)
            {
                try
                {
                    //Read data from memory
                    currentMemoryReadout = memReader.DoReadout();
                }
                catch (Exception e)
                {
                    if (running)
                    {
                        Logger.LogError("Error while reading memory: {0} {1}\r\n{2}", e.GetType(), e.Message, e.StackTrace);
                    }
                }

                OnMemoryReadout?.Invoke(this, new OnMemoryReadoutArgs()
                {
                    memoryReadout = currentMemoryReadout
                });

                //Print memreadout if debug is enabled
                currentMemoryReadout.Print();

                await Task.Delay(100);
            }
        }
Example #2
0
        private void Sniffer_OnMemoryReadout(object sender, OnMemoryReadoutArgs args)
        {
            memReadout = args.memoryReadout;

            if (string.IsNullOrEmpty(details.artistName) ||
                string.IsNullOrEmpty(details.songName))
            {
                return;
            }
            var currentTrack = new Track();

            currentTrack.ArtistName = details.artistName;
            currentTrack.TrackName  = details.songName;
            currentTrack.Duration   = TimeSpan.FromSeconds(details.songLength);
            if (!string.IsNullOrEmpty(details.albumName))
            {
                currentTrack.AlbumName = details.albumName;
            }
            currentTrack.WhenStartedPlaying = DateTime.Now.AddSeconds(-details.songLength);

            if (lastscrobbled == null || (lastscrobbled.ArtistName != currentTrack.ArtistName && lastscrobbled.TrackName != lastscrobbled.TrackName))
            {
                //Halfway through a song
                if (memReadout.songTimer >= (details.songLength / 2))
                {
                    scrobbler.Scrobble(currentTrack);
                    Logger.Log($"Scrobbled: {currentTrack.ToString()}");
                    lastscrobbled = currentTrack;
                }
            }
        }
Example #3
0
        private async void DoMemoryReadout()
        {
            float lastTimer = currentMemoryReadout.songTimer;

            while (running)
            {
                try
                {
                    //Read data from memory
                    currentMemoryReadout = memReader.DoReadout();
                }
                catch (Exception e)
                {
                    if (running)
                    {
                        Logger.LogError("Error while reading memory: {0} {1}\r\n{2}", e.GetType(), e.Message, e.StackTrace);
                    }
                }

                OnMemoryReadout?.Invoke(this, new OnMemoryReadoutArgs()
                {
                    memoryReadout = currentMemoryReadout
                });

                //var mem = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / (1024 * 1024);
                //Logger.Log(string.Format("Memory@tick: {0}mb", mem));
                switch (Environment.OSVersion.Platform)
                {
                case PlatformID.MacOSX:
                case PlatformID.Unix:
                    if (currentMemoryReadout.gameState.ToLower().Contains("game") && Math.Abs(currentMemoryReadout.songTimer - lastTimer) > 1)
                    {
                        // scan for note data from memory if required
                        memReader.DoPointerScanMacOS();
                        lastTimer = currentMemoryReadout.songTimer;
                    }
                    break;

                default:
                    //if (Math.Abs(currentMemoryReadout.songTimer - lastTimer) > 1)
                    //{
                    //    // scan for note data from memory if required
                    //    memReader.DoPointerScanWin32();
                    //    lastTimer = currentMemoryReadout.songTimer;
                    //}
                    break;
                }
                //Print memreadout if debug is enabled
                currentMemoryReadout.Print();

                await Task.Delay(100);
            }
        }
Example #4
0
        private async void DoMemoryReadout()
        {
            while (running)
            {
                await Task.Delay(100);

                RSMemoryReadout newReadout = null;

                try
                {
                    //Read data from memory
                    newReadout = memReader.DoReadout();
                }
                catch (Exception e)
                {
                    if (running)
                    {
                        Logger.LogError("Error while reading memory: {0} {1}\r\n{2}", e.GetType(), e.Message, e.StackTrace);
                    }
                }

                if (newReadout == null)
                {
                    continue;
                }

                if (newReadout.songID != currentMemoryReadout.songID || (currentCDLCDetails == null || !currentCDLCDetails.IsValid()))
                {
                    var newDetails = cache.Get(newReadout.songID);

                    if (newDetails != null && newDetails.IsValid())
                    {
                        currentCDLCDetails = cache.Get(newReadout.songID);
                        OnSongChanged?.Invoke(this, new OnSongChangedArgs {
                            songDetails = currentCDLCDetails
                        });
                        currentCDLCDetails.Print();
                    }
                }

                newReadout.CopyTo(ref currentMemoryReadout);

                OnMemoryReadout?.Invoke(this, new OnMemoryReadoutArgs()
                {
                    memoryReadout = currentMemoryReadout
                });

                //Print memreadout if debug is enabled
                currentMemoryReadout.Print();
            }
        }
Example #5
0
 private void Sniffer_OnMemoryReadout(object sender, OnMemoryReadoutArgs args)
 {
     memReadout = args.memoryReadout;
 }
        internal void OnMemoryReadout(object sender, OnMemoryReadoutArgs args)
        {
            memReadout = args.memoryReadout;

            jsResp.memoryReadout = memReadout;
        }
Example #7
0
 private void Sniffer_OnMemoryReadout(object sender, OnMemoryReadoutArgs e)
 {
     Readout = e.memoryReadout;
     UpdatePresence();
 }
Example #8
0
 private void Sniffer_OnMemoryReadout(object sender, RockSnifferLib.Events.OnMemoryReadoutArgs e)
 {
     readout = e.memoryReadout;
     UpdatePresence();
 }