private void buttonChoose_Click(object sender, EventArgs e) { folderBrowserDialog.SelectedPath = ""; if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { Injector.SetMultimedia(folderBrowserDialog.SelectedPath); textBoxShortName.Text = Injector.MultimediaTitle; labelSize.Text = "Size: " + Useful.GetFileSizeWithUnit(Injector.MultimediaSize); labelId.Text = "Title ID: " + Injector.TitleId; } }
public void LoadBase(string path) { NUSContent.Format format = NUSContent.GetFormat(path); if (format == NUSContent.Format.Decrypted) { ValidateBase(path); if (Directory.Exists(BasePath)) { Directory.Delete(BasePath, true); Base = null; } if (Useful.DirectoryCopy(path, BasePath, true)) { Base = GetLoadedBase(); } else { throw new Exception("Could not load base \"" + path + "\"."); } } else if (format == NUSContent.Format.Encrypted) { ValidateEncryptedBase(path); if (Directory.Exists(BasePath)) { Directory.Delete(BasePath, true); Base = null; } Directory.CreateDirectory(BasePath); NUSContent.Decrypt(path, BasePath); Base = GetLoadedBase(); } else { StringBuilder strBuilder = new StringBuilder(); strBuilder.AppendLine("The folder not contains a valid NUS content."); strBuilder.AppendLine("If it is an unpackaged (decrypted) NUS content, then:"); strBuilder.AppendLine("The \"" + path + "\\code\" folder not exist."); strBuilder.AppendLine("Or \"" + path + "\\content\" folder not exist."); strBuilder.AppendLine("Or \"" + path + "\\meta\" folder not exist."); strBuilder.AppendLine("If it is an packaged (encrypted) NUS content, then:"); strBuilder.AppendLine("The \"" + path + "\\title.tmd\" file not exist."); strBuilder.AppendLine("Or \"" + path + "\\title.tik\" file not exist."); strBuilder.AppendLine("Or \"" + path + "\\title.cert\" file not exist."); throw new Exception(strBuilder.ToString()); } }
public static string ValidFilename(string filename) { char[] array = Useful.Windows1252ToASCII(filename, '_').ToCharArray(); char[] invalid = Path.GetInvalidFileNameChars(); for (int i = 0; i < array.Length; i++) { foreach (char c in invalid) { if (array[i] == c) { array[i] = '_'; } } } return(new string(array)); }
public void SetMultimedia(string multimediaPath) { if (Directory.Exists(multimediaPath)) { byte[] namesStruct = Encoding.UTF8.GetBytes(Useful.GetFolderNamesStruct(multimediaPath)); Id = Cll.Security.ComputeCRC32(namesStruct, 0, namesStruct.Length); MultimediaPath = multimediaPath; MultimediaSize = Useful.GetFolderSize(multimediaPath); MultimediaTitle = Path.GetFileName(multimediaPath); } else { MultimediaPath = null; MultimediaSize = 0; MultimediaTitle = ""; } }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.AppendLine("File name: \"" + FileName + "\""); sb.AppendLine("Size: " + Useful.GetFileSizeWithUnit(Size)); sb.AppendLine("Format: " + Format); sb.AppendLine("Duration: " + GetTimeFormat((int)Duration)); sb.AppendLine("Bit rate: " + GetBitrateFormat(Bitrate)); sb.AppendLine("Title: \"" + Title + "\""); for (int i = 0; i < MediaInfo.Length; i++) { sb.AppendLine("Stream " + i + ": ["); sb.AppendLine(MediaInfo[i].ToString()); sb.AppendLine("]"); } return(sb.ToString()); }
protected string GetValidOutputPath(string outputPath, string shortName) { if (!Directory.Exists(outputPath)) { throw new Exception("The output path \"" + outputPath + "\" not exist."); } if (shortName.Length == 0) { throw new Exception("The short name is empty."); } char[] array = Useful.Windows1252ToASCII(shortName, '_').ToCharArray(); char[] invalid = Path.GetInvalidFileNameChars(); for (int i = 0; i < array.Length; i++) { foreach (char c in invalid) { if (array[i] == c) { array[i] = '_'; } } } string folderName = new string(array); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append(outputPath); strBuilder.Append("\\"); strBuilder.Append(folderName); strBuilder.Append(" ["); strBuilder.Append(TitleId); strBuilder.Append("]"); return(strBuilder.ToString()); }
protected void InjectMeta(string shortName, string longName) { string titleId = TitleId; byte[] id = Useful.StrHexToByteArray(titleId, ""); XmlWriterSettings xmlSettings = new XmlWriterSettings { Encoding = new UTF8Encoding(false), Indent = true, IndentChars = " ", NewLineChars = "\n", NewLineHandling = NewLineHandling.Replace }; XmlDocument xmlApp = new XmlDocument(); XmlDocument xmlMeta = new XmlDocument(); xmlApp.Load(BasePath + "\\code\\app.xml"); xmlMeta.Load(BasePath + "\\meta\\meta.xml"); XmlNode app_title_id = xmlApp.SelectSingleNode("app/title_id"); XmlNode app_group_id = xmlApp.SelectSingleNode("app/group_id"); XmlNode meta_product_code = xmlMeta.SelectSingleNode("menu/product_code"); XmlNode meta_title_id = xmlMeta.SelectSingleNode("menu/title_id"); XmlNode meta_group_id = xmlMeta.SelectSingleNode("menu/group_id"); XmlNode meta_longname_ja = xmlMeta.SelectSingleNode("menu/longname_ja"); XmlNode meta_longname_en = xmlMeta.SelectSingleNode("menu/longname_en"); XmlNode meta_longname_fr = xmlMeta.SelectSingleNode("menu/longname_fr"); XmlNode meta_longname_de = xmlMeta.SelectSingleNode("menu/longname_de"); XmlNode meta_longname_it = xmlMeta.SelectSingleNode("menu/longname_it"); XmlNode meta_longname_es = xmlMeta.SelectSingleNode("menu/longname_es"); XmlNode meta_longname_zhs = xmlMeta.SelectSingleNode("menu/longname_zhs"); XmlNode meta_longname_ko = xmlMeta.SelectSingleNode("menu/longname_ko"); XmlNode meta_longname_nl = xmlMeta.SelectSingleNode("menu/longname_nl"); XmlNode meta_longname_pt = xmlMeta.SelectSingleNode("menu/longname_pt"); XmlNode meta_longname_ru = xmlMeta.SelectSingleNode("menu/longname_ru"); XmlNode meta_longname_zht = xmlMeta.SelectSingleNode("menu/longname_zht"); XmlNode meta_shortname_ja = xmlMeta.SelectSingleNode("menu/shortname_ja"); XmlNode meta_shortname_en = xmlMeta.SelectSingleNode("menu/shortname_en"); XmlNode meta_shortname_fr = xmlMeta.SelectSingleNode("menu/shortname_fr"); XmlNode meta_shortname_de = xmlMeta.SelectSingleNode("menu/shortname_de"); XmlNode meta_shortname_it = xmlMeta.SelectSingleNode("menu/shortname_it"); XmlNode meta_shortname_es = xmlMeta.SelectSingleNode("menu/shortname_es"); XmlNode meta_shortname_zhs = xmlMeta.SelectSingleNode("menu/shortname_zhs"); XmlNode meta_shortname_ko = xmlMeta.SelectSingleNode("menu/shortname_ko"); XmlNode meta_shortname_nl = xmlMeta.SelectSingleNode("menu/shortname_nl"); XmlNode meta_shortname_pt = xmlMeta.SelectSingleNode("menu/shortname_pt"); XmlNode meta_shortname_ru = xmlMeta.SelectSingleNode("menu/shortname_ru"); XmlNode meta_shortname_zht = xmlMeta.SelectSingleNode("menu/shortname_zht"); app_title_id.InnerText = titleId; app_group_id.InnerText = "0000" + id[5].ToString("X2") + id[6].ToString("X2"); meta_product_code.InnerText = "WUP-N-WUMI"; meta_title_id.InnerText = titleId; meta_group_id.InnerText = "0000" + id[5].ToString("X2") + id[6].ToString("X2"); meta_longname_ja.InnerText = longName; meta_longname_en.InnerText = longName; meta_longname_fr.InnerText = longName; meta_longname_de.InnerText = longName; meta_longname_it.InnerText = longName; meta_longname_es.InnerText = longName; meta_longname_zhs.InnerText = longName; meta_longname_ko.InnerText = longName; meta_longname_nl.InnerText = longName; meta_longname_pt.InnerText = longName; meta_longname_ru.InnerText = longName; meta_longname_zht.InnerText = longName; meta_shortname_ja.InnerText = shortName; meta_shortname_en.InnerText = shortName; meta_shortname_fr.InnerText = shortName; meta_shortname_de.InnerText = shortName; meta_shortname_it.InnerText = shortName; meta_shortname_es.InnerText = shortName; meta_shortname_zhs.InnerText = shortName; meta_shortname_ko.InnerText = shortName; meta_shortname_nl.InnerText = shortName; meta_shortname_pt.InnerText = shortName; meta_shortname_ru.InnerText = shortName; meta_shortname_zht.InnerText = shortName; XmlWriter app = XmlWriter.Create(BasePath + "\\code\\app.xml", xmlSettings); XmlWriter meta = XmlWriter.Create(BasePath + "\\meta\\meta.xml", xmlSettings); xmlApp.Save(app); xmlMeta.Save(meta); app.Close(); meta.Close(); }
protected void CopyBase(string outPath) { Useful.DirectoryCopy(BasePath, outPath, true); if (Directory.Exists(Path.Combine(outPath, "content", "app", ".tern-defs"))) { Directory.Delete(Path.Combine(outPath, "content", "app", ".tern-defs"), true); } if (Directory.Exists(Path.Combine(outPath, "content", "app", "plugins"))) { Directory.Delete(Path.Combine(outPath, "content", "app", "plugins"), true); } if (Directory.Exists(Path.Combine(outPath, "content", "app", "www"))) { Directory.Delete(Path.Combine(outPath, "content", "app", "www"), true); } if (File.Exists(Path.Combine(outPath, "content", "app", ".gitignore"))) { File.Delete(Path.Combine(outPath, "content", "app", ".gitignore")); } if (File.Exists(Path.Combine(outPath, "content", "app", ".jscodehints"))) { File.Delete(Path.Combine(outPath, "content", "app", ".jscodehints")); } if (File.Exists(Path.Combine(outPath, "content", "app", "appinfo.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "appinfo.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.additions.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.additions.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.android.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.android.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.chrome.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.chrome.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.ios.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.ios.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.windows.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.windows.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.windows8.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.windows8.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "intelxdk.config.wp81.xml"))) { File.Delete(Path.Combine(outPath, "content", "app", "intelxdk.config.wp81.xml")); } if (File.Exists(Path.Combine(outPath, "content", "app", "xdk-publish-meta-data.json"))) { File.Delete(Path.Combine(outPath, "content", "app", "xdk-publish-meta-data.json")); } }