Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
世界樹 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