Skip to content

Instantly share code, notes, and snippets.

@trueroad
Last active May 19, 2022 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trueroad/32607d0699e8ea8336846ff390a8d45d to your computer and use it in GitHub Desktop.
Save trueroad/32607d0699e8ea8336846ff390a8d45d to your computer and use it in GitHub Desktop.
世界樹 7.5 で拡張子 .midi のスタンダード MIDI ファイルを「開く」と「名前を付けて保存」ダイアログでも扱えるようにするパッチ
世界樹 7.5 で拡張子 .midi のスタンダード MIDI ファイルを
「開く」と「名前を付けて保存」ダイアログでも扱えるようにするパッチ
このパッチは一つの方法のご提案です。
このパッチを使うには下記 URL のパッチを先に当ててください。
https://gist.github.com/trueroad/2b963111a8662432f9ecf47ae705ed43
また、リソーススクリプト(*.rc のファイル)は
UTF-16 のようでしたが diff では扱いにくかったので
勝手ながらすべて一旦 UTF-8 に変換してしまいました。
そのためこのパッチでは `#pragma code_page(65001)` を入れて
UTF-8 であることを示すようにしてあります。
このパッチを使うにはすべて UTF-8 に変換してから当ててください。
https://ja.osdn.net/projects/openmidiproject/forums/13724/45890/
--- Sekaiju7.5/src/SekaijuDocManager.cpp.org
+++ Sekaiju7.5/src/SekaijuDocManager.cpp
@@ -71,7 +71,9 @@
CString strFilterSKJ[3];
CString strFilterWRK[3];
CString strFilterCHY[3];
+ CString strFilterMIDMIDI[3];
CString strFilterMID[3];
+ CString strFilterMIDI[3];
CString strFilterCSV[3];
CString strFilterMMML[3];
CString strFilterVSQ[3];
@@ -87,9 +89,12 @@
VERIFY (strFilterCHY[0].LoadString (IDS_CHERRY_SEQUENCE_FILES_AD_CHY));
VERIFY (strFilterCHY[1].LoadString (IDS_AD_CHY));
VERIFY (strFilterCHY[2].LoadString (IDS_D_CHY));
- VERIFY (strFilterMID[0].LoadString (IDS_STANDARD_MIDI_FILES_AD_MID));
+ VERIFY (strFilterMIDMIDI[0].LoadString (IDS_STANDARD_MIDI_FILES_AD_MID_AD_MIDI));
+ VERIFY (strFilterMIDMIDI[1].LoadString (IDS_AD_MID_AD_MIDI));
VERIFY (strFilterMID[1].LoadString (IDS_AD_MID));
VERIFY (strFilterMID[2].LoadString (IDS_D_MID));
+ VERIFY (strFilterMIDI[1].LoadString (IDS_AD_MIDI));
+ VERIFY (strFilterMIDI[2].LoadString (IDS_D_MIDI));
VERIFY (strFilterCSV[0].LoadString (IDS_MIDI_CSV_FILES_AD_CSV));
VERIFY (strFilterCSV[1].LoadString (IDS_AD_CSV));
VERIFY (strFilterCSV[2].LoadString (IDS_D_CSV));
@@ -104,9 +109,9 @@
// 拡張子フィルター追加設定
if (bOpenFileDialog == TRUE) {
- strFilter += strFilterAllMIDI[0]; // すべてのMIDIシーケンス(*.skj;*.wrk;*.chy;*.mid;*.csv;*.vsq)
+ strFilter += strFilterAllMIDI[0]; // すべてのMIDIシーケンス(*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.vsq)
strFilter += (TCHAR)_T('\0');
- strFilter += strFilterAllMIDI[1]; // *.skj;*.chy;*.mid;*.csv;*.vsq
+ strFilter += strFilterAllMIDI[1]; // *.skj;*.chy;*.mid;*.midi;*.csv;*.vsq
strFilter += (TCHAR)_T('\0');
}
strFilter += strFilterSKJ[0]; // すべてのMIDIシーケンス(*.skj)
@@ -123,9 +128,9 @@
strFilter += (TCHAR)_T('\0');
strFilter += strFilterCHY[1]; // *.chy
strFilter += (TCHAR)_T('\0');
- strFilter += strFilterMID[0]; // スタンダードMIDIファイル(*.mid)
+ strFilter += strFilterMIDMIDI[0]; // スタンダードMIDIファイル(*.mid;*.midi)
strFilter += (TCHAR)_T('\0');
- strFilter += strFilterMID[1]; // *.mid
+ strFilter += strFilterMIDMIDI[1]; // *.mid;*.midi
strFilter += (TCHAR)_T('\0');
strFilter += strFilterCSV[0]; // MIDICSVファイル(*.csv)
strFilter += (TCHAR)_T('\0');
@@ -169,6 +174,7 @@
// フィルターコンボボックスのデフォルト選択(20100613修正)
CString strExt = strFileName.Right (4);
+ CString strExt5 = strFileName.Right (5);
if (bOpenFileDialog) {
if (strExt.CompareNoCase (strFilterSKJ[1].Right(4)) == 0) { // *.skj
theFileDlg.m_ofn.nFilterIndex = 1;
@@ -182,6 +188,9 @@
else if (strExt.CompareNoCase (strFilterMID[1].Right(4)) == 0) { // *.mid
theFileDlg.m_ofn.nFilterIndex = 4;
}
+ else if (strExt5.CompareNoCase (strFilterMIDI[1].Right(5)) == 0) { // *.midi
+ theFileDlg.m_ofn.nFilterIndex = 4;
+ }
else if (strExt.CompareNoCase (strFilterCSV[1].Right(4)) == 0) { // *.csv
theFileDlg.m_ofn.nFilterIndex = 5;
}
@@ -202,6 +211,9 @@
else if (strExt.CompareNoCase (strFilterMID[1].Right(4)) == 0) { // *.mid
theFileDlg.m_ofn.nFilterIndex = 3;
}
+ else if (strExt5.CompareNoCase (strFilterMIDI[1].Right(5)) == 0) { // *.mid
+ theFileDlg.m_ofn.nFilterIndex = 3;
+ }
else if (strExt.CompareNoCase (strFilterCSV[1].Right(4)) == 0) { // *.csv
theFileDlg.m_ofn.nFilterIndex = 4;
}
@@ -238,7 +250,8 @@
strFileName += strFilterCHY[2];
}
else if (theFileDlg.m_ofn.nFilterIndex == 3 &&
- (strFileName.Right (4)).CompareNoCase (strFilterMID[2]) != 0) { // .mid
+ (strFileName.Right (4)).CompareNoCase (strFilterMID[2]) != 0 &&
+ (strFileName.Right (5)).CompareNoCase (strFilterMIDI[2]) != 0) { // .mid, .midi
strFileName += strFilterMID[2];
}
else if (theFileDlg.m_ofn.nFilterIndex == 4 &&
--- Sekaiju7.5/src/Resource.h.org
+++ Sekaiju7.5/src/Resource.h
@@ -953,9 +953,13 @@
#define IDS_CHERRY_SEQUENCE_FILES_AD_CHY 0x1E20
#define IDS_AD_CHY 0x1E21
#define IDS_D_CHY 0x1E22
-#define IDS_STANDARD_MIDI_FILES_AD_MID 0x1E30
+//#define IDS_STANDARD_MIDI_FILES_AD_MID 0x1E30
#define IDS_AD_MID 0x1E31
#define IDS_D_MID 0x1E32
+#define IDS_STANDARD_MIDI_FILES_AD_MID_AD_MIDI 0x1E33
+#define IDS_AD_MID_AD_MIDI 0x1E34
+#define IDS_AD_MIDI 0x1E35
+#define IDS_D_MIDI 0x1E36
#define IDS_MIDI_CSV_FILES_AD_CSV 0x1E40
#define IDS_AD_CSV 0x1E41
#define IDS_D_CSV 0x1E42
--- Sekaiju7.5/SekaijuRes/SekaijuRes.utf8.rc.org
+++ Sekaiju7.5/SekaijuRes/SekaijuRes.rc
@@ -4,6 +4,8 @@
// (C)2002-2014 kuzu / OpenMIDIProject
//******************************************************************************
+#pragma code_page(65001)
+
/* This Source Code Form is subject to the terms of the Mozilla Public */
/* License, v. 2.0. If a copy of the MPL was not distributed with this */
/* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
--- Sekaiju7.5/SekaijuRes/SekaijuJpn.utf8.rc.org
+++ Sekaiju7.5/SekaijuRes/SekaijuJpn.rc
@@ -4,6 +4,8 @@
// (C)2002-2021 おーぷんMIDIぷろじぇくと/くず
//******************************************************************************
+#pragma code_page(65001)
+
/* This Source Code Form is subject to the terms of the Mozilla Public */
/* License, v. 2.0. If a copy of the MPL was not distributed with this */
/* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@@ -4098,9 +4100,9 @@
// ファイルダイアログ用文字列
STRINGTABLE DISCARDABLE {
IDS_ALL_MIDI_SEQUENCE_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "すべてのMIDIシーケンス (*.skj;*.wrk;*.chy;*.mid;*.csv;*.mmml;*.vsq)"
+ "すべてのMIDIシーケンス (*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.mmml;*.vsq)"
IDS_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "*.skj;*.wrk;*.chy;*.mid;*.csv;*mmml;*.vsq"
+ "*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*mmml;*.vsq"
IDS_SEKAIJU_SEQUENCE_FILES_AD_SKJ
"世界樹シーケンスファイル (*.skj)"
IDS_AD_SKJ
@@ -4113,12 +4115,18 @@
"*.chy"
IDS_D_CHY
".chy"
- IDS_STANDARD_MIDI_FILES_AD_MID
- "スタンダードMIDIファイル (*.mid)"
+ IDS_STANDARD_MIDI_FILES_AD_MID_AD_MIDI
+ "スタンダードMIDIファイル (*.mid;*.midi)"
+ IDS_AD_MID_AD_MIDI
+ "*.mid;*.midi"
IDS_AD_MID
"*.mid"
IDS_D_MID
".mid"
+ IDS_AD_MIDI
+ "*.midi"
+ IDS_D_MIDI
+ ".midi"
IDS_MIDI_CSV_FILES_AD_CSV
"MIDICSVファイル (*.csv)"
IDS_AD_CSV
--- Sekaiju7.5/SekaijuRes/SekaijuEnu.utf8.rc.org
+++ Sekaiju7.5/SekaijuRes/SekaijuEnu.rc
@@ -4,6 +4,8 @@
// (C)2002-2021 kuzu / OpenMIDIProject
//******************************************************************************
+#pragma code_page(65001)
+
/* This Source Code Form is subject to the terms of the Mozilla Public */
/* License, v. 2.0. If a copy of the MPL was not distributed with this */
/* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@@ -4076,9 +4078,9 @@
// Strings Tables for File Dialog
STRINGTABLE DISCARDABLE {
IDS_ALL_MIDI_SEQUENCE_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "All MIDI sequence (*.skj;*.wrk;*.chy;*.mid;*.csv;*.mmml;*.vsq)"
+ "All MIDI sequence (*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.mmml;*.vsq)"
IDS_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "*.skj;*.wrk;*.chy;*.mid;*.csv;*.mmml;*.vsq"
+ "*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.mmml;*.vsq"
IDS_SEKAIJU_SEQUENCE_FILES_AD_SKJ
"Sekaiju Sequence Files (*.skj)"
IDS_AD_SKJ
@@ -4091,12 +4093,18 @@
"*.chy"
IDS_D_CHY
".chy"
- IDS_STANDARD_MIDI_FILES_AD_MID
- "Standard MIDI Files (*.mid)"
+ IDS_STANDARD_MIDI_FILES_AD_MID_AD_MIDI
+ "Standard MIDI Files (*.mid;*.midi)"
+ IDS_AD_MID_AD_MIDI
+ "*.mid;*.midi"
IDS_AD_MID
"*.mid"
IDS_D_MID
".mid"
+ IDS_AD_MIDI
+ "*.midi"
+ IDS_D_MIDI
+ ".midi"
IDS_MIDI_CSV_FILES_AD_CSV
"MIDICSV Files (*.csv)"
IDS_AD_CSV
--- Sekaiju7.5/SekaijuRes/SekaijuChs.utf8.rc.org
+++ Sekaiju7.5/SekaijuRes/SekaijuChs.rc
@@ -4,6 +4,8 @@
// (C)2002-2021 开源MIDI项目/kuzu
//******************************************************************************
+#pragma code_page(65001)
+
/* This Source Code Form is subject to the terms of the Mozilla Public */
/* License, v. 2.0. If a copy of the MPL was not distributed with this */
/* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
@@ -4085,9 +4087,9 @@
// 为文件打开/保存对话框
STRINGTABLE DISCARDABLE {
IDS_ALL_MIDI_SEQUENCE_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "所有的MIDI序列 (*.skj;*.wrk;*.chy;*.mid;*.csv;*.mmml;*.vsq)"
+ "所有的MIDI序列 (*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.mmml;*.vsq)"
IDS_AD_SKJ_AD_WRK_AD_CHY_AD_MID_AD_MMML_AD_VSQ
- "*.skj;*.wrk;*.chy;*.mid;*.csv;*.mmml;*.vsq"
+ "*.skj;*.wrk;*.chy;*.mid;*.midi;*.csv;*.mmml;*.vsq"
IDS_SEKAIJU_SEQUENCE_FILES_AD_SKJ
"世界树序列文件 (*.skj)"
IDS_AD_SKJ
@@ -4100,12 +4102,18 @@
"*.chy"
IDS_D_CHY
".chy"
- IDS_STANDARD_MIDI_FILES_AD_MID
- "标准MIDI文件 (*.mid)"
+ IDS_STANDARD_MIDI_FILES_AD_MID_AD_MIDI
+ "标准MIDI文件 (*.mid;*.midi)"
+ IDS_AD_MID_AD_MIDI
+ "*.mid;*.midi"
IDS_AD_MID
"*.mid"
IDS_D_MID
".mid"
+ IDS_AD_MIDI
+ "*.midi"
+ IDS_D_MIDI
+ ".midi"
IDS_MIDI_CSV_FILES_AD_CSV
"MIDICSV文件 (*.csv)"
IDS_AD_CSV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment