yoshy - 0.2.1.0 ソースを格納
@@ -75,7 +75,7 @@ | ||
75 | 75 | #define CODEC_TYPE_VORBIS "Vorbis" |
76 | 76 | #define CODEC_TYPE_MP3 "MP3" |
77 | 77 | |
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)) | |
79 | 79 | |
80 | 80 | #if !defined(ENABLE_MSN) |
81 | 81 | #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component" |
@@ -90,7 +90,7 @@ | ||
90 | 90 | #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中") |
91 | 91 | #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中") |
92 | 92 | #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定" |
93 | -#define PLUGIN_VERSION "0.2.0.1mod" | |
93 | +#define PLUGIN_VERSION "0.2.1.0" | |
94 | 94 | |
95 | 95 | #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)" |
96 | 96 |
@@ -120,12 +120,16 @@ | ||
120 | 120 | #define FORCE_RESENT_MODE 0 |
121 | 121 | //#define DISABLE_KICK_GEN_MIXI_LOOP |
122 | 122 | |
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 | |
126 | 126 | |
127 | -//#define CONTROL_SEND_TIMING | |
127 | +#define REQUIRED_MINIMUM_TIME 8 | |
128 | +#define SEND_TIME_RATE_LOWERBOUND 0 | |
129 | +#define REQUIRED_MAXIMUM_TIME 0 | |
128 | 130 | |
131 | +#define CONTROL_SEND_TIMING | |
132 | + | |
129 | 133 | //#define ENABLE_MSN |
130 | 134 | |
131 | 135 | #if IS_FB2K_VER09 |
@@ -981,7 +985,7 @@ | ||
981 | 985 | #else |
982 | 986 | if(true) { |
983 | 987 | #endif |
984 | - return 0; | |
988 | + return GEN_MIXI_REQUIRED_SECONDS; | |
985 | 989 | } |
986 | 990 | return m_playLength; |
987 | 991 | } |
@@ -3143,7 +3147,6 @@ | ||
3143 | 3147 | TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called.")); |
3144 | 3148 | |
3145 | 3149 | m_previous_sec = -1.0; |
3146 | - m_bPassLowerBoundTime = false; | |
3147 | 3150 | m_bPassThesholdTime = false; |
3148 | 3151 | } |
3149 | 3152 |
@@ -3151,8 +3154,15 @@ | ||
3151 | 3154 | { |
3152 | 3155 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called.")); |
3153 | 3156 | |
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 | |
3154 | 3163 | if(m_bPassThesholdTime == true) return false; |
3155 | 3164 | |
3165 | + // set base position for elapsed seconds | |
3156 | 3166 | if(m_previous_sec < 0.0) { |
3157 | 3167 | m_previous_sec = sec - 1.0; |
3158 | 3168 | } |
@@ -3159,35 +3169,16 @@ | ||
3159 | 3169 | |
3160 | 3170 | double elapsedTime = sec - m_previous_sec; |
3161 | 3171 | |
3162 | - double lowerBoundTime = pfc_string_to_float(cfg_send_interval1); | |
3163 | 3172 | double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0; |
3164 | 3173 | 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; | |
3166 | 3175 | |
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) | |
3175 | 3177 | { |
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 | - { | |
3187 | 3178 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"), |
3188 | 3179 | sec, thresholdTime, elapsedTime); |
3189 | 3180 | |
3190 | - if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time | |
3181 | + if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time | |
3191 | 3182 | { |
3192 | 3183 | m_bPassThesholdTime = true; |
3193 | 3184 | return true; |
@@ -3286,7 +3277,6 @@ | ||
3286 | 3277 | double m_previous_sec; |
3287 | 3278 | double m_song_total_sec; |
3288 | 3279 | |
3289 | - bool m_bPassLowerBoundTime; | |
3290 | 3280 | bool m_bPassThesholdTime; |
3291 | 3281 | |
3292 | 3282 | bool m_isDynamic; |
@@ -3502,18 +3492,18 @@ | ||
3502 | 3492 | uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100)); |
3503 | 3493 | uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1); |
3504 | 3494 | 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); | |
3506 | 3496 | |
3507 | 3497 | double pos2 = pfc_string_to_float(cfg_send_interval2); |
3508 | 3498 | uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2); |
3509 | 3499 | |
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); | |
3514 | 3504 | |
3515 | 3505 | 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); | |
3517 | 3507 | |
3518 | 3508 | setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD); |
3519 | 3509 | } |
@@ -3636,9 +3626,9 @@ | ||
3636 | 3626 | } |
3637 | 3627 | else if(hTrackBar == hSendInterval3) |
3638 | 3628 | { |
3639 | - setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos); | |
3629 | + setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60); | |
3640 | 3630 | string8 pos; |
3641 | - float2String(pos, (double)lPos); | |
3631 | + float2String(pos, (double)lPos * 60); | |
3642 | 3632 | cfg_send_interval3 = pos; |
3643 | 3633 | } |
3644 | 3634 | } |
@@ -3903,37 +3893,43 @@ | ||
3903 | 3893 | { |
3904 | 3894 | bool rebootNeeded = false; |
3905 | 3895 | |
3906 | - if(nOldDummyMp3Location != -1) | |
3896 | + do | |
3907 | 3897 | { |
3908 | - if(nOldDummyMp3Location != cfg_dummy_mp3_location) | |
3898 | + if(nOldDummyMp3Location != -1) | |
3909 | 3899 | { |
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 | + { | |
3910 | 3918 | int nRes = ::MessageBox( |
3911 | - NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3919 | + NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3912 | 3920 | _T("今すぐ、foobar2000をシャットダウンしますか?"), |
3913 | 3921 | _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION); |
3914 | 3922 | |
3915 | 3923 | if(nRes == IDYES) { |
3916 | 3924 | rebootNeeded = true; |
3925 | + break; | |
3917 | 3926 | } else { |
3918 | 3927 | rebootNeeded = false; |
3919 | 3928 | } |
3920 | 3929 | } |
3921 | - } | |
3922 | 3930 | |
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); | |
3929 | 3932 | |
3930 | - if(nRes == IDYES) { | |
3931 | - rebootNeeded = true; | |
3932 | - } else { | |
3933 | - rebootNeeded = false; | |
3934 | - } | |
3935 | - } | |
3936 | - | |
3937 | 3933 | nOldDummyMp3Location = (int)cfg_dummy_mp3_location; |
3938 | 3934 | oldGenMixiPath = cfg_gen_mixi_path; |
3939 | 3935 |
@@ -75,7 +75,7 @@ | ||
75 | 75 | #define CODEC_TYPE_VORBIS "Vorbis" |
76 | 76 | #define CODEC_TYPE_MP3 "MP3" |
77 | 77 | |
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)) | |
79 | 79 | |
80 | 80 | #if !defined(ENABLE_MSN) |
81 | 81 | #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component" |
@@ -90,7 +90,7 @@ | ||
90 | 90 | #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中") |
91 | 91 | #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中") |
92 | 92 | #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定" |
93 | -#define PLUGIN_VERSION "0.2.0.1mod" | |
93 | +#define PLUGIN_VERSION "0.2.1.0" | |
94 | 94 | |
95 | 95 | #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)" |
96 | 96 |
@@ -120,12 +120,16 @@ | ||
120 | 120 | #define FORCE_RESENT_MODE 0 |
121 | 121 | //#define DISABLE_KICK_GEN_MIXI_LOOP |
122 | 122 | |
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 | |
126 | 126 | |
127 | -//#define CONTROL_SEND_TIMING | |
127 | +#define REQUIRED_MINIMUM_TIME 8 | |
128 | +#define SEND_TIME_RATE_LOWERBOUND 0 | |
129 | +#define REQUIRED_MAXIMUM_TIME 0 | |
128 | 130 | |
131 | +#define CONTROL_SEND_TIMING | |
132 | + | |
129 | 133 | //#define ENABLE_MSN |
130 | 134 | |
131 | 135 | #if IS_FB2K_VER09 |
@@ -981,7 +985,7 @@ | ||
981 | 985 | #else |
982 | 986 | if(true) { |
983 | 987 | #endif |
984 | - return 0; | |
988 | + return GEN_MIXI_REQUIRED_SECONDS; | |
985 | 989 | } |
986 | 990 | return m_playLength; |
987 | 991 | } |
@@ -3143,7 +3147,6 @@ | ||
3143 | 3147 | TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called.")); |
3144 | 3148 | |
3145 | 3149 | m_previous_sec = -1.0; |
3146 | - m_bPassLowerBoundTime = false; | |
3147 | 3150 | m_bPassThesholdTime = false; |
3148 | 3151 | } |
3149 | 3152 |
@@ -3151,8 +3154,15 @@ | ||
3151 | 3154 | { |
3152 | 3155 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called.")); |
3153 | 3156 | |
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 | |
3154 | 3163 | if(m_bPassThesholdTime == true) return false; |
3155 | 3164 | |
3165 | + // set base position for elapsed seconds | |
3156 | 3166 | if(m_previous_sec < 0.0) { |
3157 | 3167 | m_previous_sec = sec - 1.0; |
3158 | 3168 | } |
@@ -3159,35 +3169,16 @@ | ||
3159 | 3169 | |
3160 | 3170 | double elapsedTime = sec - m_previous_sec; |
3161 | 3171 | |
3162 | - double lowerBoundTime = pfc_string_to_float(cfg_send_interval1); | |
3163 | 3172 | double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0; |
3164 | 3173 | 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; | |
3166 | 3175 | |
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) | |
3175 | 3177 | { |
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 | - { | |
3187 | 3178 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"), |
3188 | 3179 | sec, thresholdTime, elapsedTime); |
3189 | 3180 | |
3190 | - if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time | |
3181 | + if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time | |
3191 | 3182 | { |
3192 | 3183 | m_bPassThesholdTime = true; |
3193 | 3184 | return true; |
@@ -3286,7 +3277,6 @@ | ||
3286 | 3277 | double m_previous_sec; |
3287 | 3278 | double m_song_total_sec; |
3288 | 3279 | |
3289 | - bool m_bPassLowerBoundTime; | |
3290 | 3280 | bool m_bPassThesholdTime; |
3291 | 3281 | |
3292 | 3282 | bool m_isDynamic; |
@@ -3502,18 +3492,18 @@ | ||
3502 | 3492 | uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100)); |
3503 | 3493 | uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1); |
3504 | 3494 | 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); | |
3506 | 3496 | |
3507 | 3497 | double pos2 = pfc_string_to_float(cfg_send_interval2); |
3508 | 3498 | uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2); |
3509 | 3499 | |
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); | |
3514 | 3504 | |
3515 | 3505 | 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); | |
3517 | 3507 | |
3518 | 3508 | setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD); |
3519 | 3509 | } |
@@ -3636,9 +3626,9 @@ | ||
3636 | 3626 | } |
3637 | 3627 | else if(hTrackBar == hSendInterval3) |
3638 | 3628 | { |
3639 | - setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos); | |
3629 | + setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60); | |
3640 | 3630 | string8 pos; |
3641 | - float2String(pos, (double)lPos); | |
3631 | + float2String(pos, (double)lPos * 60); | |
3642 | 3632 | cfg_send_interval3 = pos; |
3643 | 3633 | } |
3644 | 3634 | } |
@@ -3903,37 +3893,43 @@ | ||
3903 | 3893 | { |
3904 | 3894 | bool rebootNeeded = false; |
3905 | 3895 | |
3906 | - if(nOldDummyMp3Location != -1) | |
3896 | + do | |
3907 | 3897 | { |
3908 | - if(nOldDummyMp3Location != cfg_dummy_mp3_location) | |
3898 | + if(nOldDummyMp3Location != -1) | |
3909 | 3899 | { |
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 | + { | |
3910 | 3918 | int nRes = ::MessageBox( |
3911 | - NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3919 | + NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3912 | 3920 | _T("今すぐ、foobar2000をシャットダウンしますか?"), |
3913 | 3921 | _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION); |
3914 | 3922 | |
3915 | 3923 | if(nRes == IDYES) { |
3916 | 3924 | rebootNeeded = true; |
3925 | + break; | |
3917 | 3926 | } else { |
3918 | 3927 | rebootNeeded = false; |
3919 | 3928 | } |
3920 | 3929 | } |
3921 | - } | |
3922 | 3930 | |
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); | |
3929 | 3932 | |
3930 | - if(nRes == IDYES) { | |
3931 | - rebootNeeded = true; | |
3932 | - } else { | |
3933 | - rebootNeeded = false; | |
3934 | - } | |
3935 | - } | |
3936 | - | |
3937 | 3933 | nOldDummyMp3Location = (int)cfg_dummy_mp3_location; |
3938 | 3934 | oldGenMixiPath = cfg_gen_mixi_path; |
3939 | 3935 |
@@ -75,7 +75,7 @@ | ||
75 | 75 | #define CODEC_TYPE_VORBIS "Vorbis" |
76 | 76 | #define CODEC_TYPE_MP3 "MP3" |
77 | 77 | |
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)) | |
79 | 79 | |
80 | 80 | #if !defined(ENABLE_MSN) |
81 | 81 | #define PLUGIN_CAPTION "mixi music plugin for Winamp, bridge component" |
@@ -90,7 +90,7 @@ | ||
90 | 90 | #define DUMMYAMP_HOOK_MODE _T("既存 Winamp API Emulator をフック中") |
91 | 91 | #define DUMMYAMP_STANDALONE_MODE _T("単独で Winamp API をエミュレート中") |
92 | 92 | #define DEBUG_SETTINGS_CAPTION "デバッグ用の設定" |
93 | -#define PLUGIN_VERSION "0.2.0.1mod" | |
93 | +#define PLUGIN_VERSION "0.2.1.0" | |
94 | 94 | |
95 | 95 | #define DEFAULT_DUMMYAMP_TITLE_FORMAT "[%artist% - ]$if(%title%,%title%,%_filename%)" |
96 | 96 |
@@ -120,12 +120,16 @@ | ||
120 | 120 | #define FORCE_RESENT_MODE 0 |
121 | 121 | //#define DISABLE_KICK_GEN_MIXI_LOOP |
122 | 122 | |
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 | |
126 | 126 | |
127 | -//#define CONTROL_SEND_TIMING | |
127 | +#define REQUIRED_MINIMUM_TIME 8 | |
128 | +#define SEND_TIME_RATE_LOWERBOUND 0 | |
129 | +#define REQUIRED_MAXIMUM_TIME 0 | |
128 | 130 | |
131 | +#define CONTROL_SEND_TIMING | |
132 | + | |
129 | 133 | //#define ENABLE_MSN |
130 | 134 | |
131 | 135 | #if IS_FB2K_VER09 |
@@ -981,7 +985,7 @@ | ||
981 | 985 | #else |
982 | 986 | if(true) { |
983 | 987 | #endif |
984 | - return 0; | |
988 | + return GEN_MIXI_REQUIRED_SECONDS; | |
985 | 989 | } |
986 | 990 | return m_playLength; |
987 | 991 | } |
@@ -3143,7 +3147,6 @@ | ||
3143 | 3147 | TRACE_CALLBACK(_T("play_callback_mixi::resetSendTiming - called.")); |
3144 | 3148 | |
3145 | 3149 | m_previous_sec = -1.0; |
3146 | - m_bPassLowerBoundTime = false; | |
3147 | 3150 | m_bPassThesholdTime = false; |
3148 | 3151 | } |
3149 | 3152 |
@@ -3151,8 +3154,15 @@ | ||
3151 | 3154 | { |
3152 | 3155 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - called.")); |
3153 | 3156 | |
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 | |
3154 | 3163 | if(m_bPassThesholdTime == true) return false; |
3155 | 3164 | |
3165 | + // set base position for elapsed seconds | |
3156 | 3166 | if(m_previous_sec < 0.0) { |
3157 | 3167 | m_previous_sec = sec - 1.0; |
3158 | 3168 | } |
@@ -3159,35 +3169,16 @@ | ||
3159 | 3169 | |
3160 | 3170 | double elapsedTime = sec - m_previous_sec; |
3161 | 3171 | |
3162 | - double lowerBoundTime = pfc_string_to_float(cfg_send_interval1); | |
3163 | 3172 | double thresholdTime1 = m_song_total_sec * pfc_string_to_float(cfg_send_interval2) / 100.0; |
3164 | 3173 | 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; | |
3166 | 3175 | |
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) | |
3175 | 3177 | { |
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 | - { | |
3187 | 3178 | TRACE_CALLBACK(_T("play_callback_mixi::checkSendTiming - pos: %5.1f, threshold:%5.1f, elapse:%5.1f"), |
3188 | 3179 | sec, thresholdTime, elapsedTime); |
3189 | 3180 | |
3190 | - if(thresholdTime <= elapsedTime + 3) // add gen_mixi response time | |
3181 | + if(thresholdTime <= elapsedTime + GEN_MIXI_MARGIN_SECONDS) // add gen_mixi response time | |
3191 | 3182 | { |
3192 | 3183 | m_bPassThesholdTime = true; |
3193 | 3184 | return true; |
@@ -3286,7 +3277,6 @@ | ||
3286 | 3277 | double m_previous_sec; |
3287 | 3278 | double m_song_total_sec; |
3288 | 3279 | |
3289 | - bool m_bPassLowerBoundTime; | |
3290 | 3280 | bool m_bPassThesholdTime; |
3291 | 3281 | |
3292 | 3282 | bool m_isDynamic; |
@@ -3502,18 +3492,18 @@ | ||
3502 | 3492 | uSendMessage(hSendInterval2, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(SEND_TIME_RATE_LOWERBOUND, 100)); |
3503 | 3493 | uSendMessage(hSendInterval2, TBM_SETLINESIZE, (WPARAM)0, (LPARAM)1); |
3504 | 3494 | 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); | |
3506 | 3496 | |
3507 | 3497 | double pos2 = pfc_string_to_float(cfg_send_interval2); |
3508 | 3498 | uSendMessage(hSendInterval2, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)pos2); |
3509 | 3499 | |
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); | |
3514 | 3504 | |
3515 | 3505 | 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); | |
3517 | 3507 | |
3518 | 3508 | setDlgVersionInfo(wnd, IDC_VERSION, IDC_BUILD); |
3519 | 3509 | } |
@@ -3636,9 +3626,9 @@ | ||
3636 | 3626 | } |
3637 | 3627 | else if(hTrackBar == hSendInterval3) |
3638 | 3628 | { |
3639 | - setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos); | |
3629 | + setDlgItemFloat(wnd, IDC_SEND_INTERVAL_3RD, (double)lPos * 60); | |
3640 | 3630 | string8 pos; |
3641 | - float2String(pos, (double)lPos); | |
3631 | + float2String(pos, (double)lPos * 60); | |
3642 | 3632 | cfg_send_interval3 = pos; |
3643 | 3633 | } |
3644 | 3634 | } |
@@ -3903,37 +3893,43 @@ | ||
3903 | 3893 | { |
3904 | 3894 | bool rebootNeeded = false; |
3905 | 3895 | |
3906 | - if(nOldDummyMp3Location != -1) | |
3896 | + do | |
3907 | 3897 | { |
3908 | - if(nOldDummyMp3Location != cfg_dummy_mp3_location) | |
3898 | + if(nOldDummyMp3Location != -1) | |
3909 | 3899 | { |
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 | + { | |
3910 | 3918 | int nRes = ::MessageBox( |
3911 | - NULL, _T("ダミーMP3ファイルの生成場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3919 | + NULL, GEN_MIXI_FILE_NAME _T(" の配置場所の変更は、foobar2000本体の再起動後に有効になります。\n\n") | |
3912 | 3920 | _T("今すぐ、foobar2000をシャットダウンしますか?"), |
3913 | 3921 | _T(PLUGIN_CAPTION), MB_YESNO | MB_ICONEXCLAMATION); |
3914 | 3922 | |
3915 | 3923 | if(nRes == IDYES) { |
3916 | 3924 | rebootNeeded = true; |
3925 | + break; | |
3917 | 3926 | } else { |
3918 | 3927 | rebootNeeded = false; |
3919 | 3928 | } |
3920 | 3929 | } |
3921 | - } | |
3922 | 3930 | |
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); | |
3929 | 3932 | |
3930 | - if(nRes == IDYES) { | |
3931 | - rebootNeeded = true; | |
3932 | - } else { | |
3933 | - rebootNeeded = false; | |
3934 | - } | |
3935 | - } | |
3936 | - | |
3937 | 3933 | nOldDummyMp3Location = (int)cfg_dummy_mp3_location; |
3938 | 3934 | oldGenMixiPath = cfg_gen_mixi_path; |
3939 | 3935 |
@@ -13,12 +13,32 @@ | ||
13 | 13 | ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください) |
14 | 14 | |
15 | 15 | |
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 | +-- | |
16 | 35 | ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component) |
17 | 36 | |
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+用 | |
19 | 38 | |
20 | 39 | <更新点> |
21 | -・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正 | |
40 | +・送信タイミング制御処理のロジックを変更し、再度使用可能にした | |
41 | + ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様) | |
22 | 42 | |
23 | 43 | -- |
24 | 44 | 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開) |
@@ -261,3 +281,13 @@ | ||
261 | 281 | <更新点> |
262 | 282 | ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。 |
263 | 283 | |
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 | + |
@@ -13,12 +13,32 @@ | ||
13 | 13 | ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください) |
14 | 14 | |
15 | 15 | |
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 | +-- | |
16 | 35 | ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component) |
17 | 36 | |
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+用 | |
19 | 38 | |
20 | 39 | <更新点> |
21 | -・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正 | |
40 | +・送信タイミング制御処理のロジックを変更し、再度使用可能にした | |
41 | + ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様) | |
22 | 42 | |
23 | 43 | -- |
24 | 44 | 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開) |
@@ -261,3 +281,13 @@ | ||
261 | 281 | <更新点> |
262 | 282 | ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。 |
263 | 283 | |
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 | + |
@@ -13,12 +13,32 @@ | ||
13 | 13 | ・バージョン0.1.8.0よりid3lib.dllが不要になりました。(他のプラグインで使用している可能性がありますので、手動でインストールを行っている方は、id3lib.dllをいったん〜.dll_等にリネームし問題ないことを確認した後に削除してください) |
14 | 14 | |
15 | 15 | |
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 | +-- | |
16 | 35 | ○foo_mixi_feat_winamp (mixi music plugin for Winamp, bridge component) |
17 | 36 | |
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+用 | |
19 | 38 | |
20 | 39 | <更新点> |
21 | -・「%_path_raw%」が「cdda://〜」の場合にストリーミングと判定する不具合を修正 | |
40 | +・送信タイミング制御処理のロジックを変更し、再度使用可能にした | |
41 | + ※制限:送信可能な最小曲長が4秒から8秒に伸びました(gen_mixi_for_winamp側の仕様) | |
22 | 42 | |
23 | 43 | -- |
24 | 44 | 2006/07/26 - 0.0.1.0 - fb2k 0.8.3用 (fb2kコミュでは未公開) |
@@ -261,3 +281,13 @@ | ||
261 | 281 | <更新点> |
262 | 282 | ・id3v2タグ書き込み処理で、ヘッダ部以外のエラーチェックが抜けていたので追加。 |
263 | 283 | |
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 | + |