OSDN Git Service

オプショナルコメントの引数定義を追加
[coroid/inqubus.git] / vhook / framehook.c
index 99035e4..b1b5ca1 100644 (file)
@@ -108,10 +108,7 @@ int init_setting(FILE*log,const toolbox *tbox,SETTING* setting,int argc, char *a
        /*以降オプション*/
        
        //コメントを見せるか否か?
-       setting->enable_user_comment = FALSE;
-       setting->enable_owner_comment = FALSE;
-       setting->data_user_path = NULL;
-       setting->data_owner_path = NULL;
+    memset(setting->comment, 0x00, sizeof(setting->comment));
        //一般的な設定
        setting->font_path = NULL;
        setting->font_index = 0;
@@ -121,23 +118,32 @@ int init_setting(FILE*log,const toolbox *tbox,SETTING* setting,int argc, char *a
        setting->show_video = FALSE;
        setting->fontsize_fix=FALSE;
        setting->opaque_comment=FALSE;
+    setting->aspect_mode = 0;
        int i;
        char* arg;
-       for(i=0;i<argc;i++){
-               arg = argv[i];
-               if(!setting->data_user_path && strncmp(FRAMEHOOK_OPT_DATA_USER,arg,FRAMEHOOK_OPT_DATA_USER_LEN) == 0){
-                       char* data_user = arg+FRAMEHOOK_OPT_DATA_USER_LEN;
-                       setting->data_user_path = data_user;
-                       setting->enable_user_comment = TRUE;
-                       fprintf(log,"[framehook/init]User Comment data path:%s\n",setting->data_user_path);
-                       fflush(log);
-               }else if(!setting->data_owner_path && strncmp(FRAMEHOOK_OPT_DATA_OWNER,arg,FRAMEHOOK_OPT_DATA_OWNER_LEN) == 0){
-                       char* data_owner = arg+FRAMEHOOK_OPT_DATA_OWNER_LEN;
-                       setting->data_owner_path = data_owner;
-                       setting->enable_owner_comment = TRUE;
-                       fprintf(log,"[framehook/init]Owner Comment data path:%s\n",setting->data_owner_path);
-                       fflush(log);
-               }else if(!setting->font_path && strncmp(FRAMEHOOK_OPT_FONT,arg,FRAMEHOOK_OPT_FONT_LEN) == 0){
+    for (i = 0; i < argc; i++) {
+        arg = argv[i];
+        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);
@@ -170,9 +176,13 @@ int init_setting(FILE*log,const toolbox *tbox,SETTING* setting,int argc, char *a
                        fputs("[framehook/init]enable opaque comment.\n",log);
                        fflush(log);
                        setting->opaque_comment=TRUE;
-               }
-       }
-       //引数を正しく入力したか否かのチェック
+        } else if (strncmp(FRAMEHOOK_OPT_ASPECT_MODE, arg, FRAMEHOOK_OPT_ASPECT_MODE_LEN) == 0) {
+            setting->aspect_mode = MAX(0, atoi(arg + FRAMEHOOK_OPT_ASPECT_MODE_LEN));
+            fprintf(log, "[framehook/init]aspect mode:%d\n", setting->aspect_mode);
+            fflush(log);
+        }
+    }
+       //引数を正しく入力したか否かのチェック
        //ここでチェックしているの以外は、デフォルト設定で逃げる。
        if(!setting->font_path){
                fputs("[framehook/init]please set FONT PATH.\n",log);