1
1
/*********************************************************************
2
2
* 透過性ロゴ(BSマークとか)除去フィルタ
3
- * ver 0.08
3
+ * ver 0.08a
4
4
*
5
5
* 2003
6
6
* 02/01: 製作開始
58
58
* 10/25: 位置調整で-200以下にすると落ちるバグ修正。(0.07b)
59
59
* 2004
60
60
* 02/18: AviSynthスクリプトを吐くボタン追加。(0.08)
61
+ * 04/17: ロゴデータファイル読み込み時にデータが一つも無い時エラーを出さないようにした。
62
+ * 開始・終了の最大値を4096まで増やした。(0.08a)
61
63
*
62
64
*********************************************************************/
63
65
@@ -167,15 +169,15 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
167
169
// FILTER_DLL構造体
168
170
//----------------------------
169
171
char filter_name [] = LOGO_FILTER_NAME ;
170
- char filter_info [] = LOGO_FILTER_NAME " ver 0.08 by MakKi" ;
172
+ char filter_info [] = LOGO_FILTER_NAME " ver 0.08a by MakKi" ;
171
173
#define track_N 10
172
174
#if track_N
173
175
TCHAR * track_name [] = { "位置 X" , "位置 Y" ,
174
176
"深度" , "Y" , "Cb" , "Cr" ,
175
177
"開始" , "FadeIn" , "FadeOut" , "終了" }; // トラックバーの名前
176
178
int track_default [] = { 0 , 0 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }; // トラックバーの初期値
177
179
int track_s [] = { LOGO_XY_MIN , LOGO_XY_MIN , 0 , -100 , -100 , -100 , 0 , 0 , 0 , 0 }; // トラックバーの下限値
178
- int track_e [] = { LOGO_XY_MAX , LOGO_XY_MAX , 256 , 100 , 100 , 100 , 256 , 256 , 256 , 256 }; // トラックバーの上限値
180
+ int track_e [] = { LOGO_XY_MAX , LOGO_XY_MAX , 256 , 100 , 100 , 100 , 4096 , 256 , 256 , 4096 }; // トラックバーの上限値
179
181
#endif
180
182
#define check_N 2
181
183
#if check_N
@@ -590,6 +592,7 @@ static void on_wm_filter_exit(FILTER* fp)
590
592
DWORD dw ;
591
593
HANDLE hFile ;
592
594
void * data ;
595
+ LOGO_FILE_HEADER lfh ;
593
596
594
597
if (lstrlen (logodata_file )== 0 ){ // ロゴデータファイル名がないとき
595
598
if (!fp -> exfunc -> dlg_get_load_name (logodata_file ,LDP_FILTER ,LDP_DEFAULT )){
@@ -623,8 +626,10 @@ static void on_wm_filter_exit(FILTER* fp)
623
626
SetFilePointer (hFile ,0 , 0 , FILE_BEGIN ); // 先頭へ
624
627
625
628
// ヘッダ書き込み
629
+ ZeroMemory (& lfh ,sizeof (lfh ));
630
+ strcpy (lfh .str ,LOGO_FILE_HEADER_STR );
626
631
dw = 0 ;
627
- WriteFile (hFile ,LOGO_FILE_HEADER , 32 ,& dw ,NULL );
632
+ WriteFile (hFile ,& lfh , sizeof ( LOGO_FILE_HEADER ) ,& dw ,NULL );
628
633
if (dw != 32 ){ // 書き込み失敗
629
634
MessageBox (fp -> hwnd ,"ロゴデータ保存に失敗しました(1)" ,filter_name ,MB_OK |MB_ICONERROR );
630
635
}
@@ -642,10 +647,11 @@ static void on_wm_filter_exit(FILTER* fp)
642
647
n ++ ;
643
648
}
644
649
645
- SetFilePointer (hFile ,31 , 0 , FILE_BEGIN ); // 先頭から31byteへ
650
+ lfh .logonum = n ;
651
+ SetFilePointer (hFile ,0 , 0 , FILE_BEGIN ); // 先頭へ
646
652
dw = 0 ;
647
- WriteFile (hFile ,& n , 1 ,& dw ,NULL );
648
- if (dw != 1 )
653
+ WriteFile (hFile ,& lfh , sizeof ( lfh ) ,& dw ,NULL );
654
+ if (dw != sizeof ( lfh ) )
649
655
MessageBox (fp -> hwnd ,"ロゴデータ保存に失敗しました(3)" ,filter_name ,MB_OK |MB_ICONERROR );
650
656
}
651
657
@@ -958,11 +964,12 @@ static void del_combo_item(int num)
958
964
static void read_logo_pack (char * fname ,FILTER * fp )
959
965
{
960
966
HANDLE hFile ;
967
+ LOGO_FILE_HEADER lfh ;
961
968
LOGO_HEADER lgh ;
962
969
DWORD readed = 0 ;
963
970
ULONG ptr ;
964
971
void * data ;
965
- unsigned char num ; // ファイルに含まれるデータの数
972
+ // unsigned char num; // ファイルに含まれるデータの数
966
973
int i ;
967
974
int same ;
968
975
char message [255 ];
@@ -974,19 +981,19 @@ static void read_logo_pack(char *fname,FILTER *fp)
974
981
MessageBox (fp -> hwnd ,"ロゴデータファイルが見つかりません" ,filter_name ,MB_OK |MB_ICONERROR );
975
982
return ;
976
983
}
977
- if (GetFileSize (hFile , NULL )< sizeof (LOGO_HEADER )){ // サイズ確認
984
+ if (GetFileSize (hFile , NULL )< sizeof (LOGO_FILE_HEADER )){ // サイズ確認
978
985
CloseHandle (hFile );
979
986
MessageBox (fp -> hwnd ,"ロゴデータファイルが不正です" ,filter_name ,MB_OK |MB_ICONERROR );
980
987
return ;
981
988
}
982
989
983
- SetFilePointer (hFile ,31 , 0 , FILE_BEGIN ); // 先頭から31byteへ
984
- ReadFile (hFile ,& num , 1 ,& readed ,NULL ); // データ数取得
990
+ // SetFilePointer(hFile,31, 0, FILE_BEGIN); // 先頭から31byteへ
991
+ ReadFile (hFile ,& lfh , sizeof ( LOGO_FILE_HEADER ) ,& readed ,NULL ); // ファイルヘッダ取得
985
992
986
993
logodata_n = 0 ; // 書き込みデータカウンタ
987
994
logodata = NULL ;
988
995
989
- for (i = 0 ;i < num ;i ++ ){
996
+ for (i = 0 ;i < lfh . logonum ;i ++ ){
990
997
991
998
// LOGO_HEADER 読み込み
992
999
readed = 0 ;
0 commit comments