From 145baf3eddb7d3580b39ca1fefecba8f5d941656 Mon Sep 17 00:00:00 2001 From: yukihane Date: Wed, 21 Sep 2011 19:54:56 +0900 Subject: [PATCH] =?utf8?q?=E3=82=AA=E3=83=97=E3=82=B7=E3=83=A7=E3=83=8A?= =?utf8?q?=E3=83=AB=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=81=AE=E5=BC=95?= =?utf8?q?=E6=95=B0=E5=AE=9A=E7=BE=A9=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- vhook/framehook.c | 36 ++++++++++++++++++++++-------------- vhook/framehook.h | 12 +++++++----- vhook/main.h | 11 +++++------ 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/vhook/framehook.c b/vhook/framehook.c index f6da2b2..b1b5ca1 100644 --- a/vhook/framehook.c +++ b/vhook/framehook.c @@ -121,21 +121,29 @@ int init_setting(FILE*log,const toolbox *tbox,SETTING* setting,int argc, char *a setting->aspect_mode = 0; int i; char* arg; - for(i=0;icomment[0].path && strncmp(FRAMEHOOK_OPT_DATA_USER, arg, FRAMEHOOK_OPT_DATA_USER_LEN) == 0) { - char* data = arg + FRAMEHOOK_OPT_DATA_USER_LEN; - setting->comment[0].path = data; - setting->comment[0].enable = TRUE; - fprintf(log, "[framehook/init]User Comment data path:%s\n", setting->comment[0].path); - fflush(log); - } else if (!setting->comment[1].path && strncmp(FRAMEHOOK_OPT_DATA_OWNER, arg, FRAMEHOOK_OPT_DATA_OWNER_LEN) == 0) { - char* data = arg + FRAMEHOOK_OPT_DATA_OWNER_LEN; - setting->comment[1].path = data; - setting->comment[1].enable = TRUE; - fprintf(log, "[framehook/init]Owner Comment data path:%s\n", setting->comment[1].path); - fflush(log); - }else if(!setting->font_path && strncmp(FRAMEHOOK_OPT_FONT,arg,FRAMEHOOK_OPT_FONT_LEN) == 0){ + int hit_comment = FALSE; + for (int j = 0; j < N_COMMENT_TYPE; j++) { + const char* const prefix = FRAMEHOOK_OPT_DATA[j]; + const int prefix_len = strlen(prefix); + SETTING_COMMENT* const comset = &setting->comment[j]; + if (!comset->path && strncmp(prefix, arg, prefix_len)) { + const char* data = arg + prefix_len; + comset->path = data; + comset->enable = TRUE; + fprintf(log, "[framehook/init]Comment data[%d] path:%s\n", + j, comset->path); + fflush(log); + hit_comment = TRUE; + break; + } + } + if (hit_comment) { + continue; + } + + if(!setting->font_path && strncmp(FRAMEHOOK_OPT_FONT,arg,FRAMEHOOK_OPT_FONT_LEN) == 0){ char* font = arg+FRAMEHOOK_OPT_FONT_LEN; setting->font_path = font; fprintf(log,"[framehook/init]Font path:%s\n",setting->font_path); diff --git a/vhook/framehook.h b/vhook/framehook.h index c6e1dfc..031d2cf 100644 --- a/vhook/framehook.h +++ b/vhook/framehook.h @@ -3,11 +3,13 @@ /*Framehookに渡されるオプション用の定義*/ -#define FRAMEHOOK_OPT_DATA_USER "--data-user:" -#define FRAMEHOOK_OPT_DATA_USER_LEN strlen(FRAMEHOOK_OPT_DATA_USER) - -#define FRAMEHOOK_OPT_DATA_OWNER "--data-owner:" -#define FRAMEHOOK_OPT_DATA_OWNER_LEN strlen(FRAMEHOOK_OPT_DATA_OWNER) +/** + * コメント付与に関するパラメータ. + * 要素数はmain.hのN_COMMENT_TYPEと関連があるので注意. + */ +const char* const FRAMEHOOK_OPT_DATA[] = { + "--data-user:", "--data-owner:", "--data-optional:", "--data-owner-opt:" +}; #define FRAMEHOOK_OPT_FONT "--font:" #define FRAMEHOOK_OPT_FONT_LEN strlen(FRAMEHOOK_OPT_FONT) diff --git a/vhook/main.h b/vhook/main.h index e1de37c..d74b705 100644 --- a/vhook/main.h +++ b/vhook/main.h @@ -7,11 +7,11 @@ #include "chat/chat.h" #include "chat/chat_slot.h" -//typedef enum { -// USER, OWNER, USER_OPT, OWNER_OPT -//} COMMENT_TYPE; - -#define N_COMMENT_TYPE 2 +/** + * コメント中間ファイル数. つまりオーバレイするコメントの種類数. + * 並びはframehook.hで定義している情報に依存することに注意. + */ +#define N_COMMENT_TYPE 4 struct COMMDATA { int enable; @@ -49,7 +49,6 @@ typedef struct { } SETTING_COMMENT; typedef struct SETTING{ - // CommentType数分。 SETTING_COMMENT comment[N_COMMENT_TYPE]; const char* font_path; int video_length; -- 2.11.0