예제 #1
0
			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;
			}
예제 #2
0
        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);
            }
        }
예제 #3
0
		/// <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;
		}
예제 #4
0
		/// <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()); }
예제 #5
0
		/// <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;
 }
예제 #7
0
 /// <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)));
 }
예제 #8
0
 /// <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);
 }