setting->aspect_mode = 0;
int i;
char* arg;
- for(i=0;i<argc;i++) {
+ for (i = 0; i < argc; i++) {
arg = argv[i];
- if (!setting->comment[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);
/*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)
#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;
} SETTING_COMMENT;
typedef struct SETTING{
- // CommentType数分。
SETTING_COMMENT comment[N_COMMENT_TYPE];
const char* font_path;
int video_length;