• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

Windows Apps


コミットメタ情報

リビジョン1c079051d403e921a23ecc9fcd9684ea6f4cbab9 (tree)
日時2014-06-27 07:07:30
作者oga <oga@mxg....>
コミッターoga

ログメッセージ

midilib V0.50-12 Rev 1 step. fix (reverse 1 quater note)

変更サマリ

差分

Binary files a/wkeyboard/Release/wkeyboard.exe and b/wkeyboard/Release/wkeyboard.exe differ
--- a/wkeyboard/midilib.c
+++ b/wkeyboard/midilib.c
@@ -130,7 +130,7 @@ int chlist[MAX_CHLIST];/* channel list V0.14-A */
130130 /* V0.13-A start */
131131 int hd_format = 0; /* MTHeader Format */
132132 int hd_track = 0; /* MTHeader Track */
133-u_int hd_dtime = 0; /* MTHeader DeltaTime */
133+u_int hd_dtime = 0; /* MTHeader DeltaTime(DeltaTime of Quarter note) */
134134 /* V0.13-A end */
135135
136136 /* tempo is global value */
@@ -1434,6 +1434,33 @@ void RewPlay(int delta_pos)
14341434 }
14351435
14361436 /*
1437+ * RewTrackPos() V0.50-12-A
1438+ * 指定tick位置までtrackの現在ポインタを戻す
1439+ *
1440+ * IN tick : 戻す先のtick位置
1441+ *
1442+ * member val
1443+ * #IN gmeasure
1444+ * IN trkno
1445+ * IN playdat[][]
1446+ *
1447+ */
1448+void RewTrackPos(int atick)
1449+{
1450+ int trk;
1451+
1452+ dlog1("RewTrackPos(%d)\n", atick);
1453+ memset(pos, 0, sizeof(pos));
1454+ for (trk = 0; trk < trkno; trk++) {
1455+ while (playdat[trk][pos[trk]*2] <= MS2DELTA(atick)) {
1456+ ++pos[trk];
1457+ }
1458+ dlog2("RewTrackPos: trk=%d pos=%d\n", trk, pos[trk]);
1459+ }
1460+
1461+}
1462+
1463+/*
14371464 * StopAllNotes
14381465 * Stop All Notes for PAUSE, STOP
14391466 */
@@ -1538,10 +1565,13 @@ rewind:
15381565 }
15391566 if (playctrl == CMD_BACKSTEP) { /* V0.50-12-A start */
15401567 pause = 2; /* go to next note */
1541- tick = tick - tempo*(tempo/1000)/hd_dtime; /* 4分音符分戻る */
1568+ dlog3("BACKSTEP: tick(%d) - %d /hd_dtime=%d\n", tick, hd_dtime*(tempo/1000)/hd_dtime, hd_dtime);
1569+ tick = tick - hd_dtime*(tempo/1000)/hd_dtime; /* 4分音符分戻る */
15421570 if (tick < 0) tick = 0;
1543- playctrl = 0; /* clear playctrl */
1544- } /* V0.50-12-A start */
1571+ RewTrackPos(tick);
1572+ playctrl = 0; /* clear playctrl */
1573+ break;
1574+ } /* V0.50-12-A end */
15451575 if (playctrl == CMD_STOP) {
15461576 pause = 0;
15471577 }