OSDN Git Service

コメント, 投稿者コメントの情報保持部分を配列に変更
authoryukihane <yukihane.feather@gmail.com>
Wed, 21 Sep 2011 09:40:33 +0000 (18:40 +0900)
committeryukihane <yukihane.feather@gmail.com>
Wed, 21 Sep 2011 17:27:07 +0000 (02:27 +0900)
vhook/framehook.c
vhook/main.c
vhook/main.h
vhook/process.c

index a9ab1cd..f6da2b2 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;
@@ -124,20 +121,20 @@ 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;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);
+       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){
                        char* font = arg+FRAMEHOOK_OPT_FONT_LEN;
                        setting->font_path = font;
index 4e459d3..e246e2a 100644 (file)
@@ -33,12 +33,12 @@ int init(FILE* log){
  */
 int initData(DATA* data,FILE* log,const SETTING* setting){
        int i;
-    data->user_comment.common = data;
-    data->owner_comment.common = data;
-       data->user_comment.enable = setting->enable_user_comment;
-       data->owner_comment.enable = setting->enable_owner_comment;
-       data->user_comment.opaque_comment = setting->opaque_comment;
-    data->owner_comment.opaque_comment = 1; // オーナコメントは常に不透明
+    data->comment[0].common = data;
+    data->comment[1].common = data;
+       data->comment[0].enable = setting->comment[0].enable;
+       data->comment[1].enable = setting->comment[1].enable;
+       data->comment[0].opaque_comment = setting->opaque_comment;
+    data->comment[1].opaque_comment = 1; // オーナコメントは常に不透明
        data->log = log;
        data->fontsize_fix = setting->fontsize_fix;
        data->show_video = setting->show_video;
@@ -75,17 +75,17 @@ int initData(DATA* data,FILE* log,const SETTING* setting){
        /*
         * ユーザコメント
         */
-       if(data->user_comment.enable){
+       if(data->comment[0].enable){
                fputs("[main/init]User Comment is enabled.\n",log);
                //コメントデータ
-               if(initChat(log,&data->user_comment.chat,setting->data_user_path,&data->user_comment.slot,data->video_length)){
+               if(initChat(log,&data->comment[0].chat,setting->comment[0].path,&data->comment[0].slot,data->video_length)){
                        fputs("[main/init]initialized comment.\n",log);
                }else{
                        fputs("[main/init]failed to initialize comment.",log);
                        return FALSE;
                }
                //コメントスロット
-               if(initChatSlot(log,&data->user_comment.slot,setting->user_slot_max,&data->user_comment.chat)){
+               if(initChatSlot(log,&data->comment[0].slot,setting->user_slot_max,&data->comment[0].chat)){
                        fputs("[main/init]initialized comment slot.\n",log);
                }else{
                        fputs("[main/init]failed to initialize comment slot.",log);
@@ -95,10 +95,10 @@ int initData(DATA* data,FILE* log,const SETTING* setting){
        /*
         * オーナコメント
         */
-       if(data->owner_comment.enable){
+       if(data->comment[1].enable){
                fputs("[main/init]Owner Comment is enabled.\n",log);
                //コメントデータ
-               if(initChat(log,&data->owner_comment.chat,setting->data_owner_path,&data->owner_comment.slot,data->video_length)){
+               if(initChat(log,&data->comment[1].chat,setting->comment[1].path,&data->comment[1].slot,data->video_length)){
                        fputs("[main/init]initialized comment.\n",log);
                }else{
                        fputs("[main/init]failed to initialize comment.",log);
@@ -106,7 +106,7 @@ int initData(DATA* data,FILE* log,const SETTING* setting){
                }
                //コメントスロット
         // TODO とりあえず最大数は1024にしておくが...
-               if(initChatSlot(log,&data->owner_comment.slot,1024,&data->owner_comment.chat)){
+               if(initChatSlot(log,&data->comment[1].slot,1024,&data->comment[1].chat)){
                        fputs("[main/init]initialized comment slot.\n",log);
                }else{
                        fputs("[main/init]failed to initialize comment slot.",log);
@@ -157,14 +157,14 @@ int main_process(DATA* data,SDL_Surface* surf,const int now_vpos){
 int closeData(DATA* data){
        int i;
        //ユーザコメントが有効なら開放
-       if(data->user_comment.enable){
-               closeChat(&data->user_comment.chat);
-               closeChatSlot(&data->user_comment.slot);
+       if(data->comment[0].enable){
+               closeChat(&data->comment[0].chat);
+               closeChatSlot(&data->comment[0].slot);
        }
        //オーナコメントが有効なら開放
-       if(data->owner_comment.enable){
-               closeChat(&data->owner_comment.chat);
-               closeChatSlot(&data->owner_comment.slot);
+       if(data->comment[1].enable){
+               closeChat(&data->comment[1].chat);
+               closeChatSlot(&data->comment[1].slot);
        }
     //フォント開放
        for(i=0;i<CMD_FONT_MAX;i++){
index fffd1a4..e1de37c 100644 (file)
@@ -7,6 +7,12 @@
 #include "chat/chat.h"
 #include "chat/chat_slot.h"
 
+//typedef enum {
+//    USER, OWNER, USER_OPT, OWNER_OPT
+//} COMMENT_TYPE;
+
+#define N_COMMENT_TYPE 2
+
 struct COMMDATA {
     int enable;
     CHAT chat;
@@ -26,9 +32,8 @@ struct DATA{
 //     CHAT_SLOT slot;
 //     //投稿者コメント
 //     int enable_owner_comment;
-        COMMDATA user_comment;
-        COMMDATA owner_comment;
-       
+    COMMDATA comment[N_COMMENT_TYPE];
+
        //一般的なデータ
        int shadow_kind;
        int show_video;
@@ -38,9 +43,14 @@ struct DATA{
     int aspect_mode;
 };
 
+typedef struct {
+    const char* path;
+    int enable;
+} SETTING_COMMENT;
+
 typedef struct SETTING{
-       const char* data_user_path;
-       const char* data_owner_path;
+    // CommentType数分。
+    SETTING_COMMENT comment[N_COMMENT_TYPE];
        const char* font_path;
        int video_length;
        int font_index;
@@ -48,8 +58,6 @@ typedef struct SETTING{
        int owner_slot_max;
        int shadow_kind;
        /*TRUE OR FALSE*/
-       int enable_user_comment;
-       int enable_owner_comment;
        int show_video;
        int fontsize_fix;
        int opaque_comment;
index f9d260e..8c6541c 100644 (file)
@@ -7,15 +7,15 @@
 //プロセス
 int process(DATA* data,SDL_Surface* surf,const int now_vpos){
        //ユーザコメント
-       if(data->user_comment.enable){
-               if(!chat_process(&data->user_comment,surf,now_vpos)){
+       if(data->comment[0].enable){
+               if(!chat_process(&data->comment[0],surf,now_vpos)){
                        fputs("[process/process]failed to process comment.\n",data->log);
                        return FALSE;
                }
        }
        //オーナコメント
-       if(data->owner_comment.enable){
-               if(!chat_process(&data->owner_comment,surf,now_vpos)){
+       if(data->comment[1].enable){
+               if(!chat_process(&data->comment[1],surf,now_vpos)){
                        fputs("[process/process]failed to process comment.\n",data->log);
                        return FALSE;
                }