private void Open_File_B_Click(object sender, System.Windows.RoutedEventArgs e) { if (IsClosing) { return; } OpenFileDialog ofd = new OpenFileDialog() { Title = "サウンドファイルを選択してください。", Filter = "サウンドファイル(*.bnk;*.pck)|*.bnk;*.pck", Multiselect = false }; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { string Ex = Path.GetExtension(ofd.FileName); Sound_List.Items.Clear(); Change_List.Items.Clear(); Change_Sound_Full_Name.Clear(); if (Wwise_Bnk != null) { Wwise_Bnk.Bank_Clear(); } if (Wwise_Pck != null) { Wwise_Pck.Pck_Clear(); } if (Ex == ".bnk") { Wwise_Bnk = new Wwise_File_Extract_V2(ofd.FileName); foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names()) { Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID); } IsPCKFile = false; } else if (Ex == ".pck") { Wwise_Pck = new Wwise_File_Extract_V1(ofd.FileName); foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID()) { Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID); } IsPCKFile = true; } } catch (Exception e1) { Sub_Code.Error_Log_Write(e1.Message); Message_Feed_Out("エラー:ファイルを読み取れませんでした。"); } } }
private void Open_PCK_B_Click(object sender, RoutedEventArgs e) { if (IsClosing || IsBusy) { return; } System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog() { Title = ".pckファイルを選択してください。", Multiselect = true, Filter = ".pckファイル(*.pck)|*.pck" }; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { foreach (string FileNames in ofd.FileNames) { string Select_Name = Path.GetFileName(FileNames); foreach (string File_Now in PCK_File) { if (Path.GetFileName(File_Now) == Select_Name) { MessageBox.Show(Select_Name + "は既に追加されています。別のファイル名を指定する必要があります。"); continue; } } Wwise_File_Extract_V1 p = new Wwise_File_Extract_V1(FileNames); int Count = p.Wwise_Get_File_Count(); if (Count == 0) { MessageBox.Show(Select_Name + "にサウンドファイルが含まれていませんでした。"); p.Pck_Clear(); continue; } p.Pck_Clear(); PCK_File.Add(FileNames); Info_List.Items.Add("追加:" + Select_Name); } Info_List.Items[1] = "PCKファイル数:" + PCK_File.Count + "個"; } catch { Message_Feed_Out("選択したファイルは破損している可能性があります。"); } } }
private void Content_Load_B_Click(object sender, RoutedEventArgs e) { if (IsClosing) { return; } OpenFileDialog ofd = new OpenFileDialog() { Title = ".wbeファイルを選択してください。", Filter = ".wbeファイル(*.wbe)|*.wbe" }; if (ofd.ShowDialog() == DialogResult.OK) { try { StreamReader str = Sub_Code.File_Decrypt_To_Stream(ofd.FileName, "Bank_Editor_Change_Sound_Save"); string Open_File = str.ReadLine(); if (Path.GetExtension(Open_File) == ".bnk") { Sound_List.Items.Clear(); Wwise_Bnk = new Wwise_File_Extract_V2(Open_File); foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names()) { Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID); } IsPCKFile = false; } else if (Path.GetExtension(Open_File) == ".pck") { Sound_List.Items.Clear(); Wwise_Pck = new Wwise_File_Extract_V1(Open_File); foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID()) { Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID); } IsPCKFile = true; } else { throw new Exception("ファイル形式が違います。対応しているファイル形式は.bnk、または.pckのみです。"); } Change_List.Items.Clear(); Change_Sound_Full_Name.Clear(); string line; while ((line = str.ReadLine()) != null) { int Index = int.Parse(line.Substring(0, line.IndexOf(':'))); string File_Name = line.Substring(line.IndexOf(':') + 1); Change_List.Items.Add(Sound_List.Items[Index]); Change_Sound_Full_Name.Add(File_Name); } str.Close(); } catch (Exception e1) { Sub_Code.Error_Log_Write(e1.Message); Message_Feed_Out("正常に読み込めませんでした。"); } } }
private async void Open_BNK_B_Click(object sender, RoutedEventArgs e) { if (IsClosing || IsBusy) { return; } System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog() { Title = ".bnkファイルを選択してください。", Multiselect = false, Filter = ".bnkファイル(*.bnk)|*.bnk" }; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { IsBusy = true; string PCK_File_Path = Path.GetDirectoryName(ofd.FileName) + "/" + Path.GetFileNameWithoutExtension(ofd.FileName) + ".pck"; if (PCK_Mode_C.IsChecked.Value && !File.Exists(PCK_File_Path)) { Message_Feed_Out(Path.GetFileNameWithoutExtension(ofd.FileName) + ".pckが見つかりませんでした。"); IsBusy = false; return; } Bass.BASS_ChannelStop(Stream); Bass.BASS_StreamFree(Stream); if (Directory.Exists(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special")) { Sub_Code.Directory_Delete(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special"); } Message_T.Text = ".bnkファイルを解析しています..."; await Task.Delay(50); p = new Wwise_Class.BNK_Parse(ofd.FileName); List <uint> Event_List = p.Get_BNK_Event_ID(); Event_Type_L.Items.Clear(); Sound_L.Items.Clear(); foreach (uint ID in Event_List) { Event_Type_L.Items.Add((Event_Type_L.Items.Count + 1) + ":" + ID); } Event_List.Clear(); if (PCK_Mode_C.IsChecked.Value) { Wwise_PCK = new Wwise_File_Extract_V1(PCK_File_Path); IsPCKMode = true; } else { Wwise_BNK = new Wwise_File_Extract_V2(ofd.FileName); IsPCKMode = false; } if (!Directory.Exists(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special")) { Directory.CreateDirectory(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special"); } File_Name_T.Text = Path.GetFileName(ofd.FileName); Message_Feed_Out(".bnkファイルをロードしました。"); } catch (Exception e1) { Sub_Code.Error_Log_Write(e1.Message); if (Wwise_PCK != null) { Wwise_PCK.Pck_Clear(); } if (Wwise_BNK != null) { Wwise_BNK.Bank_Clear(); } if (p != null) { p.Clear(); } Wwise_PCK = null; Wwise_BNK = null; p = null; IsPCKMode = false; File_Name_T.Text = ""; Event_Type_L.Items.Clear(); Sound_L.Items.Clear(); Message_Feed_Out("エラーが発生しました。詳しくはError_Log.txtを参照してください。"); } } IsBusy = false; }