|
1 | 1 | /*********************************************************************
|
2 | 2 | * 透過性ロゴ(BSマークとか)除去フィルタ
|
3 |
| -* ver 0.08a |
| 3 | +* ver 0.09a |
4 | 4 | *
|
5 | 5 | * 2003
|
6 | 6 | * 02/01: 製作開始
|
|
61 | 61 | * 04/17: ロゴデータファイル読み込み時にデータが一つも無い時エラーを出さないようにした。
|
62 | 62 | * 開始・終了の最大値を4096まで増やした。(0.08a)
|
63 | 63 | * 09/19: スタックを無駄遣いしていたのを修正。
|
64 |
| -* 開始・フェードイン・アウト・終了の初期値をロゴデータに保存できるようにした。 |
| 64 | +* 開始・フェードイン・アウト・終了の初期値をロゴデータに保存できるようにした。(0.09) |
| 65 | +* 2005 |
| 66 | +* 04/18: フィルタ名、パラメタ名を変更できるようにした。(0.09a) |
65 | 67 | *
|
66 | 68 | *********************************************************************/
|
67 | 69 |
|
@@ -170,7 +172,7 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
|
170 | 172 | // FILTER_DLL構造体
|
171 | 173 | //----------------------------
|
172 | 174 | char filter_name[] = LOGO_FILTER_NAME;
|
173 |
| -char filter_info[] = LOGO_FILTER_NAME" ver 0.09 by MakKi"; |
| 175 | +char filter_info[] = LOGO_FILTER_NAME" ver 0.09a by MakKi"; |
174 | 176 | #define track_N 10
|
175 | 177 | #if track_N
|
176 | 178 | TCHAR *track_name[] = { "位置 X", "位置 Y",
|
@@ -1195,4 +1197,65 @@ static BOOL on_avisynth_button(FILTER* fp,void *editp)
|
1195 | 1197 | }
|
1196 | 1198 |
|
1197 | 1199 |
|
| 1200 | + |
| 1201 | +/********************************************************************* |
| 1202 | +* DLLMain |
| 1203 | +*********************************************************************/ |
| 1204 | +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) |
| 1205 | +{ |
| 1206 | +#define TRACK_N track_N |
| 1207 | +#define CHECK_N check_N |
| 1208 | +#define FILTER_NAME_MAX 32 |
| 1209 | +#define FILTER_TRACK_MAX 16 |
| 1210 | +#define FILTER_CHECK_MAX 32 |
| 1211 | + |
| 1212 | + //FILTER filter = ::filter; |
| 1213 | + static char *strings[1+TRACK_N+CHECK_N]; |
| 1214 | + char key[16]; |
| 1215 | + char ini_name[MAX_PATH]; |
| 1216 | + int i; |
| 1217 | + |
| 1218 | + switch(fdwReason){ |
| 1219 | + case DLL_PROCESS_ATTACH: // 開始時 |
| 1220 | + // iniファイル名を取得 |
| 1221 | + GetModuleFileName(hinstDLL,ini_name,MAX_PATH-4); |
| 1222 | + strcat(ini_name,".ini"); |
| 1223 | + |
| 1224 | + // フィルタ名 |
| 1225 | + strings[0] = malloc(FILTER_NAME_MAX); |
| 1226 | + if(strings[0]==NULL) break; |
| 1227 | + GetPrivateProfileString("string","name",filter.name,strings[0],FILTER_NAME_MAX,ini_name); |
| 1228 | + filter.name = strings[0]; |
| 1229 | + |
| 1230 | + // トラック名 |
| 1231 | + for(i=0;i<TRACK_N;i++){ |
| 1232 | + strings[i+1] = malloc(FILTER_TRACK_MAX); |
| 1233 | + if(strings[i+1]==NULL) break; |
| 1234 | + wsprintf(key,"track%d",i); |
| 1235 | + GetPrivateProfileString("string",key,filter.track_name[i],strings[i+1],FILTER_TRACK_MAX,ini_name); |
| 1236 | + filter.track_name[i] = strings[i+1]; |
| 1237 | + } |
| 1238 | + |
| 1239 | + // チェック名 |
| 1240 | + for(i=0;i<CHECK_N;i++){ |
| 1241 | + strings[i+TRACK_N+1] = malloc(FILTER_CHECK_MAX); |
| 1242 | + if(strings[i+TRACK_N+1]==NULL) break; |
| 1243 | + wsprintf(key,"check%d",i); |
| 1244 | + GetPrivateProfileString("string",key,filter.check_name[i],strings[i+TRACK_N+1],FILTER_CHECK_MAX,ini_name); |
| 1245 | + filter.check_name[i] = strings[i+TRACK_N+1]; |
| 1246 | + } |
| 1247 | + break; |
| 1248 | + |
| 1249 | + case DLL_PROCESS_DETACH: // 終了時 |
| 1250 | + // stringsを破棄 |
| 1251 | + for(i=0;i<1+TRACK_N+CHECK_N && strings[i];i++) |
| 1252 | + free(strings[i]); |
| 1253 | + break; |
| 1254 | + |
| 1255 | + case DLL_THREAD_ATTACH: |
| 1256 | + case DLL_THREAD_DETACH: |
| 1257 | + break; |
| 1258 | + } |
| 1259 | + return TRUE; |
| 1260 | +} |
1198 | 1261 | //*/
|
0 commit comments