public PlatformInterface(string output_dir, string path, Platform pv) : base(pv) { if (!ValidateExe(path)) throw new BlamLib.Debug.ExceptionLog("{0} is not a supported {1} exe", path, pv.ToString()); string dir = string.IsNullOrEmpty(output_dir) ? Path.GetDirectoryName(path) : output_dir; string name = Path.GetFileName(path); name = Path.Combine(dir, "OS_" + name); File.Copy(path, name, true); output = new BlamLib.IO.EndianWriter(name); output.BaseAddress = Program.PeAddressMask; }
private static void TestPlatformProperties(Platform platform) { Assert.IsNotNull(platform); Console.WriteLine(platform.ToString()); string profile = platform.Profile; Assert.IsNotNull(profile); switch (profile) { case "FULL_PROFILE": case "EMBEDDED_PROFILE": break; default: Assert.Inconclusive("Unknown platform profile: " + profile); break; } string version = platform.Version; StringAssert.Matches(version, new Regex("^OpenCL (1.[12]|2.[01]) .*$")); string name = platform.Name; Assert.IsNotNull(name); Assert.AreNotEqual(string.Empty, name); string vendor = platform.Vendor; Assert.IsNotNull(vendor); Assert.AreNotEqual(string.Empty, vendor); IReadOnlyList<string> extensions = platform.Extensions; Assert.IsNotNull(extensions); foreach (string extension in extensions) { Assert.IsNotNull(extension); Assert.AreNotEqual(string.Empty, extension); } }
/// <summary> /// Create or get the path to a platform specific folder for a game /// </summary> /// <param name="ns">Game namespace</param> /// <param name="platform">Platform folder</param> /// <param name="create">True if we should create the path on disk if it doesn't exist already</param> /// <returns>game's platform's folder path</returns> public static string CreatePlatform(Namespace ns, Platform platform, bool create) { string dir_path = string.Format("{0}{1}\\", CreateGameNamespace(ns), platform.ToString()); if (create && !Directory.Exists(dir_path)) Directory.CreateDirectory(dir_path); return dir_path; }
/// <summary> /// Get the relative path to a platform specific folder for a game /// </summary> /// <param name="ns">Game namespace</param> /// <param name="platform">Platform folder</param> /// <returns>relative game's platform's folder path</returns> public static string GetRelativePath(Namespace ns, Platform platform) { return string.Format("{0}{1}\\", GetRelativePath(ns), platform.ToString()); }
/// <summary> /// Gets a complete platform folder path based on a game's namespace, and its platform /// </summary> /// <param name="ns">Game namespace</param> /// <param name="platform">Platform folder</param> /// <param name="folder">Platform's folder. Must only have one folder flag set.</param> /// <returns></returns> public static string GetPlatformFolderPath(Namespace ns, Platform platform, PlatformFolder folder) { return string.Format("{0}{1}\\{2}\\{3}\\", Program.GamesPath, ns.ToString(), platform.ToString(), folder.ToString().Replace('_', '\\')); }
/// <summary> /// Set the user's platform /// </summary> /// <param name="value">The platform</param> /// <returns>this</returns> public Subject SetPlatform(Platform value) { nvPairs["p"] = value.ToString().ToLower(); return this; }
/// <summary> /// Gets the current game by summoner ID asynchronously. /// </summary> /// <param name="region">Region where to retrieve the data.</param> /// <param name="summonerId">ID of the summoner for which to retrieve current game.</param> /// <returns>Current game of the summoner.</returns> public async Task<CurrentGame> GetCurrentGameAsync(Platform platform, long summonerId) { var json = await requester.CreateRequestAsync( string.Format(CurrentGameRootUrl, platform.ToString()) + string.Format(IdUrl, summonerId), platform.ConvertToRegion()); return (await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<CurrentGame>(json))); }
/// <summary> /// Gets the current game by summoner ID synchronously. /// </summary> /// <param name="platform">Region where to retrieve the data.</param> /// <param name="summonerId">ID of the summoner for which to retrieve current game.</param> /// <returns>Current game of the summoner.</returns> public CurrentGame GetCurrentGame(Platform platform, long summonerId) { var json = requester.CreateRequest( string.Format(CurrentGameRootUrl, platform.ToString()) + string.Format(IdUrl, summonerId), platform.ConvertToRegion()); return JsonConvert.DeserializeObject<CurrentGame>(json); }