Skip to content

Commit 8ea5ac6

Browse files
committed
2004-02-18
1 parent 115bc1b commit 8ea5ac6

File tree

7 files changed

+200
-11
lines changed

7 files changed

+200
-11
lines changed

delogo.rc

+19-4
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,27 @@ FONT 9, "
7070
PUSHBUTTON "CANCEL", IDCANCEL, 80,30,50,14, BS_CENTER|BS_VCENTER
7171
}
7272

73+
//////////////////////////////////////////////////////////////////////
74+
// ������\���_�C�A���O
75+
//
76+
STR_DLG DIALOG 0,0, 175,75
77+
CAPTION "���ߐ����S Avisynth�X�N���v�g"
78+
STYLE WS_VISIBLE | WS_POPUP | WS_CAPTION | DS_MODALFRAME | WS_SYSMENU
79+
FONT 9, "�l�r �o�S�V�b�N"
80+
{
81+
EDITTEXT ID_SHOW_STRING, 0,0,175,52, ES_LEFT|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE|ES_READONLY
82+
83+
84+
PUSHBUTTON "�N���b�v�{�[�h�ɃR�s�[", ID_COPY_STRING, 20,57,80,14, BS_CENTER|BS_VCENTER
85+
DEFPUSHBUTTON "OK", IDOK, 105,57,50,14, BS_CENTER|BS_VCENTER
86+
}
87+
7388
//////////////////////////////////////////////////////////////////////
7489
// VERSION INFO
7590
//
7691
VS_VIRSION_INFO VERSIONINFO
77-
FILEVERSION 0,0,7,2
78-
PRODUCTVERSION 0,0,7
92+
FILEVERSION 0,0,8,0
93+
PRODUCTVERSION 0,0,8
7994
FILEFLAGSMASK 0x3FL
8095
FILEFLAGS 0x0L
8196
FILEOS VOS__WINDOWS32
@@ -88,12 +103,12 @@ VS_VIRSION_INFO VERSIONINFO
88103
{
89104
// VALUE "Comments", "���S�T���v���񋟎ҕ�W��\0"
90105
VALUE "FileDescription", "���ߐ����S �t�B���^ Plugin for AviUtl 0.98\0"
91-
VALUE "FileVersion", "0.0.7.2\0"
106+
VALUE "FileVersion", "0.0.8.0\0"
92107
VALUE "InternalName", "deLogo\0"
93108
VALUE "LegalCopyright", "(C) MakKi\0"
94109
VALUE "OriginalFilename", "delogo.aup\0"
95110
VALUE "ProductName", "���ߐ����S �t�B���^\0"
96-
VALUE "ProductVersion", "0.07b\0"
111+
VALUE "ProductVersion", "0.08\0"
97112
}
98113
}
99114
BLOCK "VarFileInfo"

filter.c

+69-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*********************************************************************
22
* 透過性ロゴ(BSマークとか)除去フィルタ
3-
* ver 0.07b
3+
* ver 0.08
44
*
55
* 2003
66
* 02/01: 製作開始
@@ -56,17 +56,19 @@
5656
* 10/20: SSE2使用のrgb2ycがバグもちなので、自前でRGB->YCbCrするようにした。
5757
* 位置X/Yの最大・最小値を拡張した。(0.07a)
5858
* 10/25: 位置調整で-200以下にすると落ちるバグ修正。(0.07b)
59+
* 2004
60+
* 02/18: AviSynthスクリプトを吐くボタン追加。(0.08)
5961
*
6062
*********************************************************************/
6163

6264
/* ToDo:
6365
* ・ロゴデータの作成・編集機能
64-
* ・フェードイン・アウトに対応すべきなんだろうなぁ
6566
*
6667
* MEMO:
6768
* ・ロゴの拡大縮小ルーチン自装しないとだめかなぁ。
6869
* →必要なさげ。当面は自装しない。
6970
* ・ロゴ作成・編集は別アプリにしてしまおうか…
71+
* 使用公開してるし、誰か作ってくれないかなぁ(他力本願)
7072
* ・ロゴ除去モードとロゴ付加モードを切り替えられるようにしようかな
7173
* →付けてみた
7274
* ・解析プラグからデータを受け取るには…独自WndMsg登録してSendMessageで送ってもらう
@@ -98,10 +100,12 @@
98100
#include "optdlg.h"
99101
#include "resource.h"
100102
#include "send_lgd.h"
103+
#include "strdlg.h"
101104

102105

103106
#define ID_BUTTON_OPTION 40001
104107
#define ID_COMBO_LOGO 40002
108+
#define ID_BUTTON_SYNTH 40003
105109

106110
#define Abs(x) ((x>0)? x:-x)
107111
#define Clamp(n,l,h) ((n<l) ? l : (n>h) ? h : n)
@@ -122,6 +126,7 @@ typedef struct {
122126
HFONT font;
123127
HWND cb_logo;
124128
HWND bt_opt;
129+
HWND bt_synth;
125130
} FILTER_DIALOG;
126131

127132
FILTER_DIALOG dialog;
@@ -153,6 +158,7 @@ static BOOL create_adj_exdata(FILTER *fp,LOGO_HEADER *adjdata,const LOGO_HEADER
153158
static int find_logo(const char *logo_name);
154159

155160
static BOOL on_option_button(FILTER* fp);
161+
static BOOL on_avisynth_button(FILTER* fp,void* editp);
156162

157163
BOOL func_proc_eraze_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
158164
BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
@@ -161,7 +167,7 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
161167
// FILTER_DLL構造体
162168
//----------------------------
163169
char filter_name[] = LOGO_FILTER_NAME;
164-
char filter_info[] = LOGO_FILTER_NAME" ver 0.07b by MakKi";
170+
char filter_info[] = LOGO_FILTER_NAME" ver 0.08 by MakKi";
165171
#define track_N 10
166172
#if track_N
167173
TCHAR *track_name[] = { "位置 X", "位置 Y",
@@ -540,6 +546,10 @@ BOOL func_WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, void *
540546
change_param();
541547
return TRUE;
542548
}
549+
break;
550+
551+
case ID_BUTTON_SYNTH: // AviSynthボタン
552+
return on_avisynth_button(fp,editp);
543553
}
544554
break;
545555

@@ -666,6 +676,11 @@ static void init_dialog(HWND hwnd,HINSTANCE hinst)
666676
dialog.bt_opt = CreateWindow("BUTTON", "オプション", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_VCENTER,
667677
240,ITEM_Y, 63,20, hwnd, (HMENU)ID_BUTTON_OPTION, hinst, NULL);
668678
SendMessage(dialog.bt_opt, WM_SETFONT, (WPARAM)dialog.font, 0);
679+
680+
// AviSynthボタン
681+
dialog.bt_synth = CreateWindow("BUTTON", "AviSynth", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_VCENTER,
682+
240,ITEM_Y-25, 63,20, hwnd, (HMENU)ID_BUTTON_SYNTH, hinst, NULL);
683+
SendMessage(dialog.bt_synth, WM_SETFONT, (WPARAM)dialog.font, 0);
669684
}
670685

671686
/*--------------------------------------------------------------------
@@ -1110,4 +1125,55 @@ static void set_sended_data(void* data,FILTER* fp)
11101125
lstrcpy(fp->ex_data_ptr,ptr); // 拡張領域にロゴ名をコピー
11111126
}
11121127

1128+
1129+
/*--------------------------------------------------------------------
1130+
* on_avisynth_button() AviSynthボタン動作
1131+
*-------------------------------------------------------------------*/
1132+
static BOOL on_avisynth_button(FILTER* fp,void *editp)
1133+
{
1134+
char str[STRDLG_MAXSTR];
1135+
int s,e;
1136+
1137+
// スクリプト生成
1138+
wsprintf(str,"%sLOGO(logofile=\"%s\",\r\n"
1139+
"\\ logoname=\"%s\"",
1140+
(fp->check[0]? "Add":"Erase"),logodata_file,fp->ex_data_ptr);
1141+
1142+
if(fp->track[LOGO_X] || fp->track[LOGO_Y])
1143+
wsprintf(str,"%s,\r\n\\ pos_x=%d, pos_y=%d",
1144+
str,fp->track[LOGO_X],fp->track[LOGO_Y]);
1145+
1146+
if(fp->track[LOGO_YDP]!=128 || fp->track[LOGO_PY] || fp->track[LOGO_CB] || fp->track[LOGO_CR])
1147+
wsprintf(str,"%s,\r\n\\ depth=%d, yc_y=%d, yc_u=%d, yc_v=%d",
1148+
str,fp->track[LOGO_YDP],fp->track[LOGO_PY],fp->track[LOGO_CB],fp->track[LOGO_CR]);
1149+
1150+
1151+
if(fp->exfunc->get_frame_n(editp)){ // 画像が読み込まれているとき
1152+
fp->exfunc->get_select_frame(editp,&s,&e); // 選択範囲取得
1153+
wsprintf(str,"%s,\r\n\\ start=%d",str, s+fp->track[LOGO_STRT]);
1154+
1155+
if(fp->track[LOGO_FIN] || fp->track[LOGO_FOUT])
1156+
wsprintf(str,"%s, fadein=%d, fadeout=%d",str,fp->track[LOGO_FIN],fp->track[LOGO_FOUT]);
1157+
1158+
wsprintf(str,"%s, end=%d",str,e-fp->track[LOGO_END]);
1159+
}
1160+
else{
1161+
if(fp->track[LOGO_FIN] || fp->track[LOGO_FOUT])
1162+
wsprintf(str,"%s,\r\n\\ fadein=%d, fadeout=%d",str,fp->track[LOGO_FIN],fp->track[LOGO_FOUT]);
1163+
}
1164+
1165+
wsprintf(str,"%s)\r\n",str);
1166+
1167+
1168+
EnableWindow(dialog.bt_synth,FALSE); // synthボタン無効化
1169+
1170+
// ダイアログ呼び出し
1171+
DialogBoxParam(fp->dll_hinst,"STR_DLG",GetWindow(fp->hwnd,GW_OWNER),StrDlgProc,(LPARAM)str);
1172+
1173+
EnableWindow(dialog.bt_synth,TRUE); // synthボタン無効化解除
1174+
1175+
return TRUE;
1176+
}
1177+
1178+
11131179
//*/

makefile

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LFLAG = -tWD -e$(EXE) -O1 -O2
1212
RFLAG =
1313

1414
EXE = delogo.auf
15-
OBJ = filter.obj optdlg.obj editdlg.obj
15+
OBJ = filter.obj optdlg.obj editdlg.obj strdlg.obj
1616
RES = delogo.res
1717

1818

@@ -32,5 +32,8 @@ optdlg.obj: optdlg.c optdlg.h filter.h logo.h resource.h
3232
editdlg.obj: editdlg.c editdlg.h resource.h
3333
$(CC) $(CFLAG) editdlg.c
3434

35+
strdlg.obj: strdlg.c strdlg.h resource.h
36+
$(CC) $(CFLAG) strdlg.c
37+
3538
$(RES): delogo.rc resource.h
3639
$(RC) $(RFLAG) delogo.rc

readme.txt

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
-----------------------------------------------------------------------
2-
���ߐ����S �t�B���^�v���O�C�� ver0.07b by MakKi
2+
���ߐ����S �t�B���^�v���O�C�� ver0.08 by MakKi
33
-----------------------------------------------------------------------
44

55
�y�@�\�z
@@ -33,7 +33,7 @@
3333
���S�̐F���e�F�������ƒ������܂�
3434

3535
�E�J�n �X���C�_
36-
�擪�̃��S�����̃t���[�������w�肵�܂��B
36+
�擪�̃��S�����̃t���[�������w�肵�܂�
3737

3838
�EFadeIn �X���C�_
3939
�t�F�[�h�C������t���[�������w�肵�܂�
@@ -42,14 +42,17 @@
4242
�t�F�[�h�A�E�g����t���[�������w�肵�܂�
4343

4444
�E�I�� �X���C�_
45-
�I�[�̃��S�����̃t���[�������w�肵�܂��B
45+
�I�[�̃��S�����̃t���[�������w�肵�܂�
4646

4747
�E�R���{�{�b�N�X
4848
�t���܂��͏������郍�S��I�����܂�
4949

5050
�E�I�v�V���� �{�^��
5151
�I�v�V�����_�C�A���O��\�����܂�
5252

53+
�EAviSynth �{�^��
54+
���݂̃p�����[�^����AviSynth�X�N���v�g�𐶐����܂�
55+
5356

5457
���I�v�V�����_�C�A���O
5558

@@ -107,6 +110,7 @@
107110

108111
�y�X�V�����z
109112

113+
2004/02/18 ver 0.08 �EAviSynth�X�N���v�g�𐶐�����@�\��lj�
110114
2003/10/26 ver 0.07b �E�ʒu������-200�����ɂ���Ɨ�����o�O�C���B
111115
2003/10/21 ver 0.07a �E���O��RGB->YCbCr����悤�ɂ����B(SSE2�ł̕s��΍�)
112116
�E�ʒuX/Y�̍ő奍ŏ��l���g�������B

resource.h

+10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
// resorce.h
2+
3+
//////////////////////////////////////////////////////////////////////
4+
// オプションダイアログ
25
#define IDC_STATIC 4100
36
#define IDC_LIST 4102
47
#define IDC_ADD 4103
@@ -19,5 +22,12 @@
1922
#define IDC_SPING 4116
2023
#define IDC_SPINB 4117
2124

25+
//////////////////////////////////////////////////////////////////////
26+
// 編集ダイアログ
2227
#define ID_EDIT_NAME 4201
2328
#define ID_EDIT_NAMETXT 4202
29+
30+
//////////////////////////////////////////////////////////////////////
31+
// 文字列表示ダイアログ
32+
#define ID_SHOW_STRING 4301
33+
#define ID_COPY_STRING 4302

strdlg.c

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*====================================================================
2+
* 編集ダイアログ editdlg.c
3+
*===================================================================*/
4+
#include <windows.h>
5+
#include "resource.h"
6+
#include "strdlg.h"
7+
8+
9+
//----------------------------
10+
// 関数プロトタイプ
11+
//----------------------------
12+
static BOOL CopyTextToClipboard(HWND hwnd,const char* text);
13+
14+
15+
/*====================================================================
16+
* StrDlgProc() コールバックプロシージャ
17+
*===================================================================*/
18+
BOOL CALLBACK StrDlgProc(HWND hdlg,UINT msg,WPARAM wParam,LPARAM lParam)
19+
{
20+
static char str[STRDLG_MAXSTR];
21+
22+
switch(msg){
23+
case WM_INITDIALOG:
24+
SetDlgItemText(hdlg,ID_SHOW_STRING,(const char*)lParam);
25+
lstrcpy(str,(const char*)lParam);
26+
return TRUE;
27+
28+
case WM_COMMAND:
29+
switch(LOWORD(wParam)){
30+
case IDOK:
31+
case IDCANCEL:
32+
EndDialog(hdlg,LOWORD(wParam));
33+
return TRUE;
34+
35+
case ID_COPY_STRING:
36+
CopyTextToClipboard(hdlg,str);
37+
}
38+
break;
39+
}
40+
41+
return FALSE;
42+
}
43+
44+
/*--------------------------------------------------------------------
45+
* CopyTextToClipboard() クリップボードにコピー
46+
*-------------------------------------------------------------------*/
47+
static BOOL CopyTextToClipboard(HWND hwnd,const char* text)
48+
{
49+
HGLOBAL hglbCopy;
50+
char* ptrCopy;
51+
52+
if(!OpenClipboard(hwnd)) return FALSE;
53+
54+
hglbCopy = GlobalAlloc(GMEM_MOVEABLE,lstrlen(text)+1);
55+
if(hglbCopy==NULL){
56+
CloseClipboard();
57+
return FALSE;
58+
}
59+
60+
ptrCopy = (char*)GlobalLock(hglbCopy);
61+
lstrcpy(ptrCopy,text);
62+
GlobalUnlock(hglbCopy);
63+
64+
EmptyClipboard();
65+
SetClipboardData(CF_TEXT,hglbCopy);
66+
CloseClipboard();
67+
68+
return TRUE;
69+
}

strdlg.h

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*====================================================================
2+
* 文字列表示ダイアログ strdlg.h
3+
*===================================================================*/
4+
#ifndef ___STRDLG_H
5+
#define ___STRDLG_H
6+
7+
#include <windows.h>
8+
9+
#define STRDLG_MAXSTR MAX_PATH+256
10+
11+
#ifdef __cplusplus
12+
extern "C" {
13+
#endif
14+
15+
// ダイアログプロシージャ
16+
extern BOOL CALLBACK StrDlgProc(HWND hdlg,UINT msg,WPARAM wParam,LPARAM lParam);
17+
18+
#ifdef __cplusplus
19+
} // End of extern "C"
20+
#endif
21+
22+
#endif

0 commit comments

Comments
 (0)