• R/O
  • SSH
  • HTTPS

foo-mixi: Commit


Commit MetaInfo

Révision68 (tree)
l'heure2009-02-17 02:52:30
Auteuryoshy

Message de Log

yoshy - 0.2.1.0 ソースを格納

Change Summary

Modification

--- src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_9_4_SDK72/foo_mixi_feat_winamp.cpp (revision 67)
+++ src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_9_4_SDK72/foo_mixi_feat_winamp.cpp (revision 68)
@@ -75,7 +75,7 @@
7575 #define CODEC_TYPE_VORBIS "Vorbis"
7676 #define CODEC_TYPE_MP3 "MP3"
7777
78-#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) ( !::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
78+#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) (!::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
7979
8080 #if !defined(ENABLE_MSN)
8181 #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component"
@@ -90,7 +90,7 @@
9090 #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中")
9191 #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中")
9292 #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定"
93-#define PLUGIN_VERSION "0.2.0.1mod"
93+#define PLUGIN_VERSION "0.2.1.0"
9494
9595 #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)"
9696
@@ -120,12 +120,16 @@
120120 #define FORCE_RESENT_MODE 0
121121 //#define DISABLE_KICK_GEN_MIXI_LOOP
122122
123-#define REQUIRED_MINIMUM_TIME 3
124-#define SEND_TIME_RATE_LOWERBOUND 33
125-#define REQUIRED_MAXIMUM_TIME 20
123+#define GEN_MIXI_REQUIRED_SECONDS 6
124+#define GEN_MIXI_TRIGGER_SECONDS 6
125+#define GEN_MIXI_MARGIN_SECONDS 0
126126
127-//#define CONTROL_SEND_TIMING
127+#define REQUIRED_MINIMUM_TIME 8
128+#define SEND_TIME_RATE_LOWERBOUND 0
129+#define REQUIRED_MAXIMUM_TIME 0
128130
131+#define CONTROL_SEND_TIMING
132+
129133 //#define ENABLE_MSN
130134
131135 #if IS_FB2K_VER09
@@ -981,7 +985,7 @@
981985 #else
982986 if(true) {
983987 #endif
984- return 0;
988+ return GEN_MIXI_REQUIRED_SECONDS;
985989 }
986990 return m_playLength;
987991 }
@@ -3143,7 +3147,6 @@
31433147 TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called."));
31443148
31453149 m_previous_sec = -1.0;
3146- m_bPassLowerBoundTime = false;
31473150 m_bPassThesholdTime = false;
31483151 }
31493152
@@ -3151,8 +3154,15 @@
31513154 {
31523155 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called."));
31533156
3157+ double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
3158+
3159+ // target track required minimum threshold seconds
3160+ if(m_song_total_sec < lowerBoundTime) return false;
3161+
3162+ // already passed threshold seconds
31543163 if(m_bPassThesholdTime == true) return false;
31553164
3165+ // set base position for elapsed seconds
31563166 if(m_previous_sec < 0.0) {
31573167 m_previous_sec = sec - 1.0;
31583168 }
@@ -3159,35 +3169,16 @@
31593169
31603170 double elapsedTime = sec - m_previous_sec;
31613171
3162- double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
31633172 double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0;
31643173 double thresholdTime2 = pfc_string_to_float(cfg_send_interval3);
3165- double thresholdTime = min(thresholdTime1, thresholdTime2);
3174+ double thresholdTime = min(thresholdTime1, thresholdTime2) - GEN_MIXI_TRIGGER_SECONDS;
31663175
3167-#if 0
3168- if(lowerBoundTime < 10.0) lowerBoundTime = 10.0;
3169-
3170- if(thresholdTime < 10.0) thresholdTime = 10.0;
3171-#endif
3172- if(thresholdTime < lowerBoundTime) thresholdTime = lowerBoundTime;
3173-
3174- if(m_bPassLowerBoundTime == false)
3176+ if(m_bPassThesholdTime == false)
31753177 {
3176- TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, lowerBound:%5.1f, elapse:%5.1f"),
3177- sec, lowerBoundTime, elapsedTime);
3178-
3179- if(lowerBoundTime <= elapsedTime + 3) // add gen_mixi response time
3180- {
3181- m_bPassLowerBoundTime = true;
3182- }
3183- }
3184-
3185- if((m_bPassLowerBoundTime == true) && (m_bPassThesholdTime == false))
3186- {
31873178 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"),
31883179 sec, thresholdTime, elapsedTime);
31893180
3190- if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time
3181+ if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time
31913182 {
31923183 m_bPassThesholdTime = true;
31933184 return true;
@@ -3286,7 +3277,6 @@
32863277 double m_previous_sec;
32873278 double m_song_total_sec;
32883279
3289- bool m_bPassLowerBoundTime;
32903280 bool m_bPassThesholdTime;
32913281
32923282 bool m_isDynamic;
@@ -3502,18 +3492,18 @@
35023492 uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100));
35033493 uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
35043494 uSendMessage(hSendInterval2, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3505- uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)5, (LPARAM)0);
3495+ uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)10, (LPARAM)0);
35063496
35073497 double pos2 = pfc_string_to_float(cfg_send_interval2);
35083498 uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2);
35093499
3510- uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME, 9999));
3511- uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)10);
3512- uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)100);
3513- uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)1000, (LPARAM)0);
3500+ uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME / 60, 165));
3501+ uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
3502+ uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3503+ uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)20, (LPARAM)0);
35143504
35153505 double pos3 = pfc_string_to_float(cfg_send_interval3);
3516- uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3);
3506+ uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3 / 60);
35173507
35183508 setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD);
35193509 }
@@ -3636,9 +3626,9 @@
36363626 }
36373627 else if(hTrackBar == hSendInterval3)
36383628 {
3639- setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos);
3629+ setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60);
36403630 string8 pos;
3641- float2String(pos, (double)lPos);
3631+ float2String(pos, (double)lPos * 60);
36423632 cfg_send_interval3 = pos;
36433633 }
36443634 }
@@ -3903,37 +3893,43 @@
39033893 {
39043894 bool rebootNeeded = false;
39053895
3906- if(nOldDummyMp3Location != -1)
3896+ do
39073897 {
3908- if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3898+ if(nOldDummyMp3Location != -1)
39093899 {
3900+ if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3901+ {
3902+ int nRes = ::MessageBox(
3903+ NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3904+ _T("今すぐ、foobar2000をシャットダウンしますか?"),
3905+ _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3906+
3907+ if(nRes == IDYES) {
3908+ rebootNeeded = true;
3909+ break;
3910+ } else {
3911+ rebootNeeded = false;
3912+ }
3913+ }
3914+ }
3915+
3916+ if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3917+ {
39103918 int nRes = ::MessageBox(
3911- NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3919+ NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
39123920 _T("今すぐ、foobar2000をシャットダウンしますか?"),
39133921 _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
39143922
39153923 if(nRes == IDYES) {
39163924 rebootNeeded = true;
3925+ break;
39173926 } else {
39183927 rebootNeeded = false;
39193928 }
39203929 }
3921- }
39223930
3923- if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3924- {
3925- int nRes = ::MessageBox(
3926- NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3927- _T("今すぐ、foobar2000をシャットダウンしますか?"),
3928- _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3931+ } while(0);
39293932
3930- if(nRes == IDYES) {
3931- rebootNeeded = true;
3932- } else {
3933- rebootNeeded = false;
3934- }
3935- }
3936-
39373933 nOldDummyMp3Location = (int)cfg_dummy_mp3_location;
39383934 oldGenMixiPath = cfg_gen_mixi_path;
39393935
--- src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_8_3/foo_mixi_feat_winamp.cpp (revision 67)
+++ src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_8_3/foo_mixi_feat_winamp.cpp (revision 68)
@@ -75,7 +75,7 @@
7575 #define CODEC_TYPE_VORBIS "Vorbis"
7676 #define CODEC_TYPE_MP3 "MP3"
7777
78-#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) ( !::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
78+#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) (!::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
7979
8080 #if !defined(ENABLE_MSN)
8181 #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component"
@@ -90,7 +90,7 @@
9090 #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中")
9191 #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中")
9292 #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定"
93-#define PLUGIN_VERSION "0.2.0.1mod"
93+#define PLUGIN_VERSION "0.2.1.0"
9494
9595 #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)"
9696
@@ -120,12 +120,16 @@
120120 #define FORCE_RESENT_MODE 0
121121 //#define DISABLE_KICK_GEN_MIXI_LOOP
122122
123-#define REQUIRED_MINIMUM_TIME 3
124-#define SEND_TIME_RATE_LOWERBOUND 33
125-#define REQUIRED_MAXIMUM_TIME 20
123+#define GEN_MIXI_REQUIRED_SECONDS 6
124+#define GEN_MIXI_TRIGGER_SECONDS 6
125+#define GEN_MIXI_MARGIN_SECONDS 0
126126
127-//#define CONTROL_SEND_TIMING
127+#define REQUIRED_MINIMUM_TIME 8
128+#define SEND_TIME_RATE_LOWERBOUND 0
129+#define REQUIRED_MAXIMUM_TIME 0
128130
131+#define CONTROL_SEND_TIMING
132+
129133 //#define ENABLE_MSN
130134
131135 #if IS_FB2K_VER09
@@ -981,7 +985,7 @@
981985 #else
982986 if(true) {
983987 #endif
984- return 0;
988+ return GEN_MIXI_REQUIRED_SECONDS;
985989 }
986990 return m_playLength;
987991 }
@@ -3143,7 +3147,6 @@
31433147 TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called."));
31443148
31453149 m_previous_sec = -1.0;
3146- m_bPassLowerBoundTime = false;
31473150 m_bPassThesholdTime = false;
31483151 }
31493152
@@ -3151,8 +3154,15 @@
31513154 {
31523155 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called."));
31533156
3157+ double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
3158+
3159+ // target track required minimum threshold seconds
3160+ if(m_song_total_sec < lowerBoundTime) return false;
3161+
3162+ // already passed threshold seconds
31543163 if(m_bPassThesholdTime == true) return false;
31553164
3165+ // set base position for elapsed seconds
31563166 if(m_previous_sec < 0.0) {
31573167 m_previous_sec = sec - 1.0;
31583168 }
@@ -3159,35 +3169,16 @@
31593169
31603170 double elapsedTime = sec - m_previous_sec;
31613171
3162- double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
31633172 double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0;
31643173 double thresholdTime2 = pfc_string_to_float(cfg_send_interval3);
3165- double thresholdTime = min(thresholdTime1, thresholdTime2);
3174+ double thresholdTime = min(thresholdTime1, thresholdTime2) - GEN_MIXI_TRIGGER_SECONDS;
31663175
3167-#if 0
3168- if(lowerBoundTime < 10.0) lowerBoundTime = 10.0;
3169-
3170- if(thresholdTime < 10.0) thresholdTime = 10.0;
3171-#endif
3172- if(thresholdTime < lowerBoundTime) thresholdTime = lowerBoundTime;
3173-
3174- if(m_bPassLowerBoundTime == false)
3176+ if(m_bPassThesholdTime == false)
31753177 {
3176- TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, lowerBound:%5.1f, elapse:%5.1f"),
3177- sec, lowerBoundTime, elapsedTime);
3178-
3179- if(lowerBoundTime <= elapsedTime + 3) // add gen_mixi response time
3180- {
3181- m_bPassLowerBoundTime = true;
3182- }
3183- }
3184-
3185- if((m_bPassLowerBoundTime == true) && (m_bPassThesholdTime == false))
3186- {
31873178 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"),
31883179 sec, thresholdTime, elapsedTime);
31893180
3190- if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time
3181+ if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time
31913182 {
31923183 m_bPassThesholdTime = true;
31933184 return true;
@@ -3286,7 +3277,6 @@
32863277 double m_previous_sec;
32873278 double m_song_total_sec;
32883279
3289- bool m_bPassLowerBoundTime;
32903280 bool m_bPassThesholdTime;
32913281
32923282 bool m_isDynamic;
@@ -3502,18 +3492,18 @@
35023492 uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100));
35033493 uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
35043494 uSendMessage(hSendInterval2, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3505- uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)5, (LPARAM)0);
3495+ uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)10, (LPARAM)0);
35063496
35073497 double pos2 = pfc_string_to_float(cfg_send_interval2);
35083498 uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2);
35093499
3510- uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME, 9999));
3511- uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)10);
3512- uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)100);
3513- uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)1000, (LPARAM)0);
3500+ uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME / 60, 165));
3501+ uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
3502+ uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3503+ uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)20, (LPARAM)0);
35143504
35153505 double pos3 = pfc_string_to_float(cfg_send_interval3);
3516- uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3);
3506+ uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3 / 60);
35173507
35183508 setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD);
35193509 }
@@ -3636,9 +3626,9 @@
36363626 }
36373627 else if(hTrackBar == hSendInterval3)
36383628 {
3639- setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos);
3629+ setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60);
36403630 string8 pos;
3641- float2String(pos, (double)lPos);
3631+ float2String(pos, (double)lPos * 60);
36423632 cfg_send_interval3 = pos;
36433633 }
36443634 }
@@ -3903,37 +3893,43 @@
39033893 {
39043894 bool rebootNeeded = false;
39053895
3906- if(nOldDummyMp3Location != -1)
3896+ do
39073897 {
3908- if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3898+ if(nOldDummyMp3Location != -1)
39093899 {
3900+ if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3901+ {
3902+ int nRes = ::MessageBox(
3903+ NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3904+ _T("今すぐ、foobar2000をシャットダウンしますか?"),
3905+ _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3906+
3907+ if(nRes == IDYES) {
3908+ rebootNeeded = true;
3909+ break;
3910+ } else {
3911+ rebootNeeded = false;
3912+ }
3913+ }
3914+ }
3915+
3916+ if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3917+ {
39103918 int nRes = ::MessageBox(
3911- NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3919+ NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
39123920 _T("今すぐ、foobar2000をシャットダウンしますか?"),
39133921 _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
39143922
39153923 if(nRes == IDYES) {
39163924 rebootNeeded = true;
3925+ break;
39173926 } else {
39183927 rebootNeeded = false;
39193928 }
39203929 }
3921- }
39223930
3923- if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3924- {
3925- int nRes = ::MessageBox(
3926- NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3927- _T("今すぐ、foobar2000をシャットダウンしますか?"),
3928- _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3931+ } while(0);
39293932
3930- if(nRes == IDYES) {
3931- rebootNeeded = true;
3932- } else {
3933- rebootNeeded = false;
3934- }
3935- }
3936-
39373933 nOldDummyMp3Location = (int)cfg_dummy_mp3_location;
39383934 oldGenMixiPath = cfg_gen_mixi_path;
39393935
--- src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_9_X_SDK73/foo_mixi_feat_winamp.cpp (revision 67)
+++ src/foo_mixi_feat_winamp/trunk/foo_mixi_feat_winamp_for_fb2k_0_9_X_SDK73/foo_mixi_feat_winamp.cpp (revision 68)
@@ -75,7 +75,7 @@
7575 #define CODEC_TYPE_VORBIS "Vorbis"
7676 #define CODEC_TYPE_MP3 "MP3"
7777
78-#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) ( !::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
78+#define IS_SUPPORTED_FORMAT_BY_GEN_MIXI(codec) (!::lstrcmpA(codec, CODEC_TYPE_VORBIS) || !::lstrcmpA(codec, CODEC_TYPE_MP3))
7979
8080 #if !defined(ENABLE_MSN)
8181 #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component"
@@ -90,7 +90,7 @@
9090 #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中")
9191 #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中")
9292 #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定"
93-#define PLUGIN_VERSION "0.2.0.1mod"
93+#define PLUGIN_VERSION "0.2.1.0"
9494
9595 #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)"
9696
@@ -120,12 +120,16 @@
120120 #define FORCE_RESENT_MODE 0
121121 //#define DISABLE_KICK_GEN_MIXI_LOOP
122122
123-#define REQUIRED_MINIMUM_TIME 3
124-#define SEND_TIME_RATE_LOWERBOUND 33
125-#define REQUIRED_MAXIMUM_TIME 20
123+#define GEN_MIXI_REQUIRED_SECONDS 6
124+#define GEN_MIXI_TRIGGER_SECONDS 6
125+#define GEN_MIXI_MARGIN_SECONDS 0
126126
127-//#define CONTROL_SEND_TIMING
127+#define REQUIRED_MINIMUM_TIME 8
128+#define SEND_TIME_RATE_LOWERBOUND 0
129+#define REQUIRED_MAXIMUM_TIME 0
128130
131+#define CONTROL_SEND_TIMING
132+
129133 //#define ENABLE_MSN
130134
131135 #if IS_FB2K_VER09
@@ -981,7 +985,7 @@
981985 #else
982986 if(true) {
983987 #endif
984- return 0;
988+ return GEN_MIXI_REQUIRED_SECONDS;
985989 }
986990 return m_playLength;
987991 }
@@ -3143,7 +3147,6 @@
31433147 TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called."));
31443148
31453149 m_previous_sec = -1.0;
3146- m_bPassLowerBoundTime = false;
31473150 m_bPassThesholdTime = false;
31483151 }
31493152
@@ -3151,8 +3154,15 @@
31513154 {
31523155 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called."));
31533156
3157+ double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
3158+
3159+ // target track required minimum threshold seconds
3160+ if(m_song_total_sec < lowerBoundTime) return false;
3161+
3162+ // already passed threshold seconds
31543163 if(m_bPassThesholdTime == true) return false;
31553164
3165+ // set base position for elapsed seconds
31563166 if(m_previous_sec < 0.0) {
31573167 m_previous_sec = sec - 1.0;
31583168 }
@@ -3159,35 +3169,16 @@
31593169
31603170 double elapsedTime = sec - m_previous_sec;
31613171
3162- double lowerBoundTime = pfc_string_to_float(cfg_send_interval1);
31633172 double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0;
31643173 double thresholdTime2 = pfc_string_to_float(cfg_send_interval3);
3165- double thresholdTime = min(thresholdTime1, thresholdTime2);
3174+ double thresholdTime = min(thresholdTime1, thresholdTime2) - GEN_MIXI_TRIGGER_SECONDS;
31663175
3167-#if 0
3168- if(lowerBoundTime < 10.0) lowerBoundTime = 10.0;
3169-
3170- if(thresholdTime < 10.0) thresholdTime = 10.0;
3171-#endif
3172- if(thresholdTime < lowerBoundTime) thresholdTime = lowerBoundTime;
3173-
3174- if(m_bPassLowerBoundTime == false)
3176+ if(m_bPassThesholdTime == false)
31753177 {
3176- TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, lowerBound:%5.1f, elapse:%5.1f"),
3177- sec, lowerBoundTime, elapsedTime);
3178-
3179- if(lowerBoundTime <= elapsedTime + 3) // add gen_mixi response time
3180- {
3181- m_bPassLowerBoundTime = true;
3182- }
3183- }
3184-
3185- if((m_bPassLowerBoundTime == true) && (m_bPassThesholdTime == false))
3186- {
31873178 TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"),
31883179 sec, thresholdTime, elapsedTime);
31893180
3190- if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time
3181+ if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time
31913182 {
31923183 m_bPassThesholdTime = true;
31933184 return true;
@@ -3286,7 +3277,6 @@
32863277 double m_previous_sec;
32873278 double m_song_total_sec;
32883279
3289- bool m_bPassLowerBoundTime;
32903280 bool m_bPassThesholdTime;
32913281
32923282 bool m_isDynamic;
@@ -3502,18 +3492,18 @@
35023492 uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100));
35033493 uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
35043494 uSendMessage(hSendInterval2, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3505- uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)5, (LPARAM)0);
3495+ uSendMessage(hSendInterval2, TBM_SETTICFREQ, (WPARAM)10, (LPARAM)0);
35063496
35073497 double pos2 = pfc_string_to_float(cfg_send_interval2);
35083498 uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2);
35093499
3510- uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME, 9999));
3511- uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)10);
3512- uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)100);
3513- uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)1000, (LPARAM)0);
3500+ uSendMessage(hSendInterval3, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(REQUIRED_MAXIMUM_TIME / 60, 165));
3501+ uSendMessage(hSendInterval3, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1);
3502+ uSendMessage(hSendInterval3, TBM_SETPAGESIZE, (WPARAM)0, (LPARAM)5);
3503+ uSendMessage(hSendInterval3, TBM_SETTICFREQ, (WPARAM)20, (LPARAM)0);
35143504
35153505 double pos3 = pfc_string_to_float(cfg_send_interval3);
3516- uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3);
3506+ uSendMessage(hSendInterval3, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos3 / 60);
35173507
35183508 setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD);
35193509 }
@@ -3636,9 +3626,9 @@
36363626 }
36373627 else if(hTrackBar == hSendInterval3)
36383628 {
3639- setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos);
3629+ setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60);
36403630 string8 pos;
3641- float2String(pos, (double)lPos);
3631+ float2String(pos, (double)lPos * 60);
36423632 cfg_send_interval3 = pos;
36433633 }
36443634 }
@@ -3903,37 +3893,43 @@
39033893 {
39043894 bool rebootNeeded = false;
39053895
3906- if(nOldDummyMp3Location != -1)
3896+ do
39073897 {
3908- if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3898+ if(nOldDummyMp3Location != -1)
39093899 {
3900+ if(nOldDummyMp3Location != cfg_dummy_mp3_location)
3901+ {
3902+ int nRes = ::MessageBox(
3903+ NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3904+ _T("今すぐ、foobar2000をシャットダウンしますか?"),
3905+ _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3906+
3907+ if(nRes == IDYES) {
3908+ rebootNeeded = true;
3909+ break;
3910+ } else {
3911+ rebootNeeded = false;
3912+ }
3913+ }
3914+ }
3915+
3916+ if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3917+ {
39103918 int nRes = ::MessageBox(
3911- NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3919+ NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
39123920 _T("今すぐ、foobar2000をシャットダウンしますか?"),
39133921 _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
39143922
39153923 if(nRes == IDYES) {
39163924 rebootNeeded = true;
3925+ break;
39173926 } else {
39183927 rebootNeeded = false;
39193928 }
39203929 }
3921- }
39223930
3923- if(::strcmp(oldGenMixiPath, cfg_gen_mixi_path) != 0)
3924- {
3925- int nRes = ::MessageBox(
3926- NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n")
3927- _T("今すぐ、foobar2000をシャットダウンしますか?"),
3928- _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION);
3931+ } while(0);
39293932
3930- if(nRes == IDYES) {
3931- rebootNeeded = true;
3932- } else {
3933- rebootNeeded = false;
3934- }
3935- }
3936-
39373933 nOldDummyMp3Location = (int)cfg_dummy_mp3_location;
39383934 oldGenMixiPath = cfg_gen_mixi_path;
39393935
--- src/installer/0_8_3/changes.txt (revision 67)
+++ src/installer/0_8_3/changes.txt (revision 68)
@@ -13,12 +13,32 @@
1313 ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください)
1414
1515
16+<fb2kとSDKバージョンの対応>
17+
18+ダウンロードしたファイルのSDKバージョンとお使いのfoobar2000が正しく対応しているかご確認ください。
19+
20+対応していないSDKバージョンのプラグインをインストールすると、foobar2000の起動時にエラーが発生します。
21+
22+SDK35 - fb2k 0.8.3
23+SDK71 - fb2k 0.9.3未満(従来のSDKバージョン。今回よりリリース対象外)
24+SDK72 - fb2k 0.9.4系
25+SDK73 - fb2k 0.9.5以降
26+
27+SDKバージョンは次の方法で確認することが出来ます。
28+
29+a. ファイル名中の「〜SDKxx〜」の部分
30+b. DLLファイルのプロパティ>詳細>ファイルの説明中の「〜SDKxx〜」の部分
31+c. インストーラのウィンドウタイトルの「〜SDKxx〜」の部分
32+
33+
34+--
1635 ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component)
1736
18-2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
37+2009/02/17 - 0.2.1.0 - fb2k 0.8.3/0.9+用
1938
2039 <更新点>
21-・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
40+・送信タイミング制御処理のロジックを変更し、再度使用可能にした
41+  ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様)
2242
2343 --
2444 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開)
@@ -261,3 +281,13 @@
261281 <更新点>
262282 ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。
263283
284+2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
285+
286+<更新点>
287+・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
288+
289+2009/02/13 - 0.2.0.1mod - fb2k 0.8.3/0.9+用
290+
291+<更新点>
292+・mixi station側の仕様変更に伴い、送信タイミング制御処理を無効化
293+
--- src/installer/0_9_4/changes.txt (revision 67)
+++ src/installer/0_9_4/changes.txt (revision 68)
@@ -13,12 +13,32 @@
1313 ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください)
1414
1515
16+<fb2kとSDKバージョンの対応>
17+
18+ダウンロードしたファイルのSDKバージョンとお使いのfoobar2000が正しく対応しているかご確認ください。
19+
20+対応していないSDKバージョンのプラグインをインストールすると、foobar2000の起動時にエラーが発生します。
21+
22+SDK35 - fb2k 0.8.3
23+SDK71 - fb2k 0.9.3未満(従来のSDKバージョン。今回よりリリース対象外)
24+SDK72 - fb2k 0.9.4系
25+SDK73 - fb2k 0.9.5以降
26+
27+SDKバージョンは次の方法で確認することが出来ます。
28+
29+a. ファイル名中の「〜SDKxx〜」の部分
30+b. DLLファイルのプロパティ>詳細>ファイルの説明中の「〜SDKxx〜」の部分
31+c. インストーラのウィンドウタイトルの「〜SDKxx〜」の部分
32+
33+
34+--
1635 ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component)
1736
18-2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
37+2009/02/17 - 0.2.1.0 - fb2k 0.8.3/0.9+用
1938
2039 <更新点>
21-・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
40+・送信タイミング制御処理のロジックを変更し、再度使用可能にした
41+  ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様)
2242
2343 --
2444 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開)
@@ -261,3 +281,13 @@
261281 <更新点>
262282 ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。
263283
284+2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
285+
286+<更新点>
287+・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
288+
289+2009/02/13 - 0.2.0.1mod - fb2k 0.8.3/0.9+用
290+
291+<更新点>
292+・mixi station側の仕様変更に伴い、送信タイミング制御処理を無効化
293+
--- src/installer/0_9_X/changes.txt (revision 67)
+++ src/installer/0_9_X/changes.txt (revision 68)
@@ -13,12 +13,32 @@
1313 ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください)
1414
1515
16+<fb2kとSDKバージョンの対応>
17+
18+ダウンロードしたファイルのSDKバージョンとお使いのfoobar2000が正しく対応しているかご確認ください。
19+
20+対応していないSDKバージョンのプラグインをインストールすると、foobar2000の起動時にエラーが発生します。
21+
22+SDK35 - fb2k 0.8.3
23+SDK71 - fb2k 0.9.3未満(従来のSDKバージョン。今回よりリリース対象外)
24+SDK72 - fb2k 0.9.4系
25+SDK73 - fb2k 0.9.5以降
26+
27+SDKバージョンは次の方法で確認することが出来ます。
28+
29+a. ファイル名中の「〜SDKxx〜」の部分
30+b. DLLファイルのプロパティ>詳細>ファイルの説明中の「〜SDKxx〜」の部分
31+c. インストーラのウィンドウタイトルの「〜SDKxx〜」の部分
32+
33+
34+--
1635 ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component)
1736
18-2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
37+2009/02/17 - 0.2.1.0 - fb2k 0.8.3/0.9+用
1938
2039 <更新点>
21-・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
40+・送信タイミング制御処理のロジックを変更し、再度使用可能にした
41+  ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様)
2242
2343 --
2444 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開)
@@ -261,3 +281,13 @@
261281 <更新点>
262282 ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。
263283
284+2008/08/16 - 0.2.0.1 - fb2k 0.8.3/0.9+用
285+
286+<更新点>
287+・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正
288+
289+2009/02/13 - 0.2.0.1mod - fb2k 0.8.3/0.9+用
290+
291+<更新点>
292+・mixi station側の仕様変更に伴い、送信タイミング制御処理を無効化
293+
Afficher sur ancien navigateur de dépôt.