3 #include <SDL/SDL_ttf.h>
\r
10 *
\83\89\83C
\83u
\83\89\83\8a\8f\89\8aú
\89»
\r
12 int init(FILE* log){
\r
13 fputs("[main/init]initializing libs...\n",log);
\r
15 if(SDL_Init(SDL_INIT_VIDEO)>=0){
\r
16 fputs("[main/init]initialized SDL.\n",log);
\r
18 fputs("[main/init]failed to initialize SDL.\n",log);
\r
22 if(TTF_Init() >= 0){
\r
23 fputs("[main/init]initialized SDL_ttf.\n",log);
\r
25 fputs("[main/init]failed to initialize SDL_ttf.\n",log);
\r
28 fputs("[main/init]initialized libs.\n",log);
\r
32 *
\83f
\81[
\83^
\82Ì
\8f\89\8aú
\89»
\r
34 int initData(DATA* data,FILE* log,const SETTING* setting){
\r
36 data->enable_user_comment = setting->enable_user_comment;
\r
37 data->enable_owner_comment = setting->enable_owner_comment;
\r
39 data->fontsize_fix = setting->fontsize_fix;
\r
40 data->show_video = setting->show_video;
\r
41 data->opaque_comment = setting->opaque_comment;
\r
42 data->shadow_kind = setting->shadow_kind;
\r
43 data->process_first_called=FALSE;
\r
44 data->video_length = setting->video_length;
\r
45 fputs("[main/init]initializing context...\n",log);
\r
46 //
\83t
\83H
\83\93\83g
\r
47 TTF_Font** font = data->font;
\r
48 const char* font_path = setting->font_path;
\r
49 const int font_index = setting->font_index;
\r
50 for(i=0;i<CMD_FONT_MAX;i++){
\r
51 int fontsize = COMMENT_FONT_SIZE[i];
\r
52 if(setting->fontsize_fix){
\r
55 font[i] = TTF_OpenFontIndex(font_path,fontsize,font_index);
\r
56 if(font[i] == NULL){
\r
57 fprintf(log,"[main/init]failed to load font:%s index:[%d].\n",font_path,font_index);
\r
58 //0
\82Å
\82à
\8e\8e\82µ
\82Ä
\82Ý
\82é
\81B
\r
59 fputs("[main/init]retrying to open font at index:0...",log);
\r
60 font[i] = TTF_OpenFontIndex(font_path,fontsize,0);
\r
61 if(font[i] == NULL){
\r
62 fputs("failed.\n",log);
\r
65 fputs("success.\n",log);
\r
68 TTF_SetFontStyle(font[i],TTF_STYLE_BOLD);
\r
70 fputs("[main/init]initialized font.\n",log);
\r
72 *
\83\86\81[
\83U
\83R
\83\81\83\93\83g
\r
74 if(data->enable_user_comment){
\r
75 fputs("[main/init]User Comment is enabled.\n",log);
\r
76 //
\83R
\83\81\83\93\83g
\83f
\81[
\83^
\r
77 if(initChat(log,&data->chat,setting->data_user_path,&data->slot,data->video_length)){
\r
78 fputs("[main/init]initialized comment.\n",log);
\r
80 fputs("[main/init]failed to initialize comment.",log);
\r
83 //
\83R
\83\81\83\93\83g
\83X
\83\8d\83b
\83g
\r
84 if(initChatSlot(log,&data->slot,setting->user_slot_max,&data->chat)){
\r
85 fputs("[main/init]initialized comment slot.\n",log);
\r
87 fputs("[main/init]failed to initialize comment slot.",log);
\r
92 *
\83I
\81[
\83i
\83R
\83\81\83\93\83g
\r
94 if(data->enable_owner_comment){
\r
95 fputs("[main/init]Owner Comment is enabled.\n",log);
\r
99 fputs("[main/init]initialized context.\n",log);
\r
103 *
\89f
\91\9c\82Ì
\95Ï
\8a·
\r
105 int main_process(DATA* data,SDL_Surface* surf,const int now_vpos){
\r
106 FILE* log = data->log;
\r
107 if(!data->process_first_called){
\r
108 fprintf(log,"[main/process]screen size is %dx%d.\n",surf->w,surf->h);
\r
111 /*
\83t
\83B
\83\8b\83^
\82ð
\82©
\82¯
\82é*/
\r
112 if(process(data,surf,now_vpos)){
\r
115 /*
\95Ï
\8a·
\82µ
\82½
\89æ
\91\9c\82ð
\8c©
\82¹
\82é
\81B*/
\r
116 if(data->show_video){
\r
117 if(!data->process_first_called){
\r
118 data->screen = SDL_SetVideoMode(surf->w, surf->h, 24, SDL_HWSURFACE | SDL_DOUBLEBUF);
\r
119 if(data->screen == NULL){
\r
120 fputs("[main/process]failed to initialize screen.\n",log);
\r
125 SDL_BlitSurface(surf,NULL,data->screen,NULL);
\r
126 SDL_Flip(data->screen);
\r
128 while(SDL_PollEvent(&event)){}
\r
130 //
\88ê
\89ñ
\96Ú
\88È
\8d~
\82ÍTRUE
\82É
\82È
\82é
\81B
\r
131 data->process_first_called=TRUE;
\r
136 *
\83f
\81[
\83^
\82Ì
\83N
\83\8d\81[
\83Y
\r
138 int closeData(DATA* data){
\r
140 //
\83\86\81[
\83U
\83R
\83\81\83\93\83g
\82ª
\97L
\8cø
\82È
\82ç
\8aJ
\95ú
\r
141 if(data->enable_user_comment){
\r
142 closeChat(&data->chat);
\r
143 closeChatSlot(&data->slot);
\r
145 //
\83I
\81[
\83i
\83R
\83\81\83\93\83g
\82ª
\97L
\8cø
\82È
\82ç
\8aJ
\95ú
\r
146 if(data->enable_owner_comment){
\r
148 //
\83t
\83H
\83\93\83g
\8aJ
\95ú
\r
149 for(i=0;i<CMD_FONT_MAX;i++){
\r
150 TTF_CloseFont(data->font[i]);
\r
156 *
\83\89\83C
\83u
\83\89\83\8a\83V
\83\83\83b
\83g
\83_
\83E
\83\93\r
159 //SDL
\82ð
\83V
\83\83\83b
\83g
\83_
\83E
\83\93\r
161 //
\93¯
\82¶
\82TTF
\82ð
\83V
\83\83\83b
\83g
\83_
\83E
\83\93\r