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 } })); }
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); } }
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())); }