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;
     }
 }
Beispiel #2
0
        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());
            }
        }
Beispiel #3
0
 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));
 }
Beispiel #4
0
 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());
        }
Beispiel #6
0
        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());
        }
Beispiel #7
0
        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();
        }
Beispiel #8
0
        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"));
            }
        }