Beispiel #1
0
 public void Process()
 {
     ProcessOverlayInjection();
     TrackInstaller.ProcessDownloadQueue();
     Sharing.Process();
     PollTracks();
 }
        public override Task <Trackmanagement.SharedTrackResponse> GetSharedTracks(Trackmanagement.Empty request, ServerCallContext context)
        {
            var lists = Sharing.GetSharedTracks().Where(t => TimeUtility.Expired(t.CreationTime, TrackSharing.LifeSpanMinutes) == false).Select(t => new Trackmanagement.SharedTrackList
            {
                Name    = t.Name,
                Type    = t.Type,
                Expires = TimeUtility.TimeToExpire(t.CreationTime, TrackSharing.LifeSpanMinutes)
            })
                        .OrderByDescending(t => t.Expires)
                        .ToArray();

            return(Task.FromResult(new Trackmanagement.SharedTrackResponse
            {
                SharedTracks = { lists }
            }));
        }
Beispiel #3
0
 public static void EnqueueSharedTracks(string listName)
 {
     try
     {
         if (Sharing.UploadTracksQueueIsEmpty)
         {
             if (m_trackQueue.IsEmpty)
             {
                 var item = Sharing.GetSharedTracks().Where(t => t.Name == listName).SingleOrDefault();
                 if (item != null)
                 {
                     var tracks = item.Tracks.Split(",");
                     Log.Add(Trackmanagement.LogMessageType.LogInfo, string.Format("Preparing to install {0} tracks from shared list '{1}'.", tracks.Length, listName));
                     foreach (var track in tracks)
                     {
                         AddTrackToInstallQueue(track);
                     }
                 }
                 else
                 {
                     Log.Add(Trackmanagement.LogMessageType.LogError, string.Format("Failed to install shared tracks ({0}) because they were not found'.", listName));
                 }
             }
             else
             {
                 Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Please wait for the current install operation to complete installing shared tracks '{0}'.", listName));
             }
         }
         else
         {
             Log.Add(Trackmanagement.LogMessageType.LogWarning, string.Format("Your tracks are being processed for sharing. Wait for the upload operation to complete before installing {0} tracks.", listName));
         }
     }
     catch (Exception e)
     {
         ExceptionLogger.LogException(e);
     }
 }
Beispiel #4
0
        public static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Checking for updates...");
                ApplicationUpdater updater = new ApplicationUpdater();
                if (updater.IsActiveVersion() == false)
                {
                    updater.DownloadAndLaunchUpdater();
                    return;
                }
                Sharing.Initialize();
                Reflex reflex = new Reflex();
                reflex.ValidateInstallation();
                reflex.DownloadImages();
                LocalSettings.Load();
                reflex.InitializeTrackList();
                reflex.InstallRandomTracksOnFirstRun();

                if (args.Length == 0)
                {
                    var    managementService = new TrackManagementService();
                    Server server            = new Server
                    {
                        Services = { Trackmanagement.TrackManager.BindService(managementService) },
                        Ports    = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
                    };
                    server.Start();

                    Console.WriteLine("Track management server listening on port " + Port);

                    if (System.Diagnostics.Process.GetProcessesByName("MXReflex").Length == 0)
                    {
                        Console.WriteLine("Waiting for you to launch MX vs. ATV Reflex...");
                    }

                    while (true)
                    {
                        reflex.Process();
                    }
                }
                else
                {
                    if (args.Length == 1 && args[0] == "-downloadalltracks")
                    {
                        reflex.DownloadAllTracks();
                    }
                    else
                    {
                        Console.Error.WriteLine(string.Format("Invalid arguments provided to application ({0})", string.Join(",", args)));
                        Console.WriteLine("Usage:");
                        Console.WriteLine("\t-Normal execution mode (UI Overlay): TrackManager.exe");
                        Console.WriteLine("\t-Download all tracks mode: TrackManager.exe -downloadalltracks");
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionLogger.LogException(e);
            }

            Console.WriteLine("Press any key to close this window.");
            Console.ReadKey();
        }
 public override Task <Trackmanagement.Empty> ShareTracks(Trackmanagement.InstallTrackRequest request, ServerCallContext context)
 {
     Sharing.AddTracksToUploadQueue(request.TrackName);
     return(Task.FromResult(new Trackmanagement.Empty()));
 }