Changeset 16138 for titan/plugins/tmc
- Timestamp:
- 05/29/12 19:50:19 (12 years ago)
- Location:
- titan/plugins/tmc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/plugins/tmc/mediadb.h
r15743 r16138 2 2 #define MEDIADB_H 3 3 4 struct mediadbfilter 5 { 6 struct mediadb* node; 7 struct mediadbfilter* prev; 8 struct mediadbfilter* next; 9 }; 10 4 11 struct mediadb 5 12 { 6 char* name; 13 char* id; 14 int type; 15 char* title; 16 char* year; 17 char* released; 18 char* runtime; 19 char* genre; 20 char* director; 21 char* writer; 22 char* actors; 23 char* plot; 24 char* poster; 25 char* rating; 26 char* votes; 7 27 char* file; 8 char* pic;9 28 struct mediadb* prev; 10 29 struct mediadb* next; … … 12 31 13 32 struct mediadb *mediadb = NULL; 33 struct mediadbfilter *mediadbfilter = NULL; 34 35 struct mediadbfilter* getlastmediadbfilter(struct mediadbfilter* node) 36 { 37 debug(1000, "in"); 38 struct mediadbfilter *prev = NULL; 39 40 while(node != NULL) 41 { 42 prev = node; 43 node = node->next; 44 } 45 46 debug(1000, "out"); 47 return prev; 48 } 14 49 15 50 struct mediadb* getlastmediadb(struct mediadb* node) … … 120 155 } 121 156 122 struct mediadb* addmediadb(char *line, int count, struct mediadb* last) 123 { 124 //debug(1000, "in"); 125 struct mediadb *newnode = NULL, *prev = NULL, *node = mediadb; 126 char *name = NULL, *file = NULL, *pic = NULL; 127 int ret = 0; 128 129 if(line == NULL) return NULL; 130 131 newnode = (struct mediadb*)malloc(sizeof(struct mediadb)); 157 struct mediadbfilter* addmediadbfilter(struct mediadb* mnode, int count, struct mediadbfilter* last) 158 { 159 struct mediadbfilter *newnode = NULL, *prev = NULL, *node = mediadbfilter; 160 161 if(mnode == NULL) return NULL; 162 163 newnode = (struct mediadbfilter*)malloc(sizeof(struct mediadbfilter)); 132 164 if(newnode == NULL) 133 165 { … … 136 168 } 137 169 138 name = malloc(256); 139 if(name == NULL) 140 { 141 err("no memory"); 142 free(newnode); 143 return NULL; 144 } 145 file = malloc(256); 146 if(file == NULL) 147 { 148 err("no memory"); 149 free(name); 150 free(newnode); 151 return NULL; 152 } 153 pic = malloc(256); 154 if(pic == NULL) 155 { 156 err("no memory"); 157 free(file); 158 free(name); 159 free(newnode); 160 return NULL; 161 } 162 163 memset(newnode, 0, sizeof(struct mediadb)); 164 165 //ret = sscanf(line, "%[^#]#%lu#%d#%d#%d#%"SCNu8"#%"SCNu8"#%"SCNu8"#%"SCNu16"#%"SCNu16"#%"SCNu8, name, &newnode->transponderid, &newnode->providerid, &newnode->serviceid, &newnode->servicetype, &newnode->flag, &newnode->videocodec, &newnode->audiocodec, &newnode->videopid, &newnode->audiopid, &newnode->protect); 166 ret = sscanf(line, "%[^#]#%[^#]#%[^#]", name, file, pic); 167 if(ret != 3) 168 { 169 if(count > 0) 170 { 171 err("mediadb line %d not ok or double", count); 172 } 173 else 174 { 175 err("add mediadb"); 176 } 177 free(pic); 178 free(file); 179 free(name); 180 free(newnode); 181 return NULL; 182 } 183 184 newnode->name = ostrcat(name, "", 1, 0); 185 newnode->file = ostrcat(file, "", 1, 0); 186 newnode->pic = ostrcat(pic, "", 1, 0); 187 188 //modifymediadbcache(newnode->serviceid, newnode->transponderid, newnode); 170 memset(newnode, 0, sizeof(struct mediadbfilter)); 171 172 newnode->node = mnode; 189 173 190 174 if(last == NULL) 191 175 { 192 while(node != NULL && strcasecmp(newnode->n ame, node->name) > 0)176 while(node != NULL && strcasecmp(newnode->node->title, node->node->title) > 0) 193 177 { 194 178 prev = node; … … 203 187 204 188 if(prev == NULL) 205 mediadb = newnode;189 mediadbfilter = newnode; 206 190 else 207 191 { … … 216 200 } 217 201 218 struct mediadb* createmediadb(char* name, unsigned long transponderid, int providerid, int serviceid, int servicetype, int flag, int videocodec, int audiocodec, int videopid, int audiopid, int protect) 202 struct mediadb* addmediadb(char *line, int count, struct mediadb* last) 203 { 204 //debug(1000, "in"); 205 struct mediadb *newnode = NULL, *prev = NULL, *node = mediadb; 206 char *id = NULL, *title = NULL, *year = NULL, *released = NULL; 207 char *runtime = NULL, *genre = NULL, *director = NULL, *writer = NULL; 208 char *actors = NULL, *plot = NULL, *poster = NULL, *rating = NULL; 209 char *votes = NULL, *file = NULL; 210 int ret = 0; 211 212 if(line == NULL) return NULL; 213 214 newnode = (struct mediadb*)malloc(sizeof(struct mediadb)); 215 if(newnode == NULL) 216 { 217 err("no memory"); 218 return NULL; 219 } 220 221 id = malloc(256); 222 if(id == NULL) 223 { 224 err("no memory"); 225 free(newnode); 226 return NULL; 227 } 228 title = malloc(256); 229 if(title == NULL) 230 { 231 err("no memory"); 232 freemediadbcontent(newnode); 233 free(newnode); 234 return NULL; 235 } 236 year = malloc(256); 237 if(year == NULL) 238 { 239 err("no memory"); 240 freemediadbcontent(newnode); 241 free(newnode); 242 return NULL; 243 } 244 released = malloc(256); 245 if(released == NULL) 246 { 247 err("no memory"); 248 freemediadbcontent(newnode); 249 free(newnode); 250 return NULL; 251 } 252 runtime = malloc(256); 253 if(runtime == NULL) 254 { 255 err("no memory"); 256 freemediadbcontent(newnode); 257 free(newnode); 258 return NULL; 259 } 260 genre = malloc(256); 261 if(genre == NULL) 262 { 263 err("no memory"); 264 freemediadbcontent(newnode); 265 free(newnode); 266 return NULL; 267 } 268 director = malloc(256); 269 if(director == NULL) 270 { 271 err("no memory"); 272 freemediadbcontent(newnode); 273 free(newnode); 274 return NULL; 275 } 276 writer = malloc(256); 277 if(writer == NULL) 278 { 279 err("no memory"); 280 freemediadbcontent(newnode); 281 free(newnode); 282 return NULL; 283 } 284 actors = malloc(256); 285 if(actors == NULL) 286 { 287 err("no memory"); 288 freemediadbcontent(newnode); 289 free(newnode); 290 return NULL; 291 } 292 plot = malloc(256); 293 if(plot == NULL) 294 { 295 err("no memory"); 296 freemediadbcontent(newnode); 297 free(newnode); 298 return NULL; 299 } 300 poster = malloc(256); 301 if(poster == NULL) 302 { 303 err("no memory"); 304 freemediadbcontent(newnode); 305 free(newnode); 306 return NULL; 307 } 308 rating = malloc(256); 309 if(rating == NULL) 310 { 311 err("no memory"); 312 freemediadbcontent(newnode); 313 free(newnode); 314 return NULL; 315 } 316 votes = malloc(256); 317 if(votes == NULL) 318 { 319 err("no memory"); 320 freemediadbcontent(newnode); 321 free(newnode); 322 return NULL; 323 } 324 file = malloc(256); 325 if(file == NULL) 326 { 327 err("no memory"); 328 freemediadbcontent(newnode); 329 free(newnode); 330 return NULL; 331 } 332 333 memset(newnode, 0, sizeof(struct mediadb)); 334 335 ret = sscanf(line, "%[^#]#%d#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]#%[^#]", id, &newnode->type, title, year, released, runtime, genre, director, writer, actors, plot, poster, rating, votes, file); 336 if(ret != 15) 337 { 338 if(count > 0) 339 { 340 err("mediadb line %d not ok or double", count); 341 } 342 else 343 { 344 err("add mediadb"); 345 } 346 freemediadbcontent(newnode); 347 free(newnode); 348 return NULL; 349 } 350 351 newnode->id = ostrcat(id, NULL, 1, 0); 352 newnode->title = ostrcat(title, NULL, 1, 0); 353 newnode->year = ostrcat(year, NULL, 1, 0); 354 newnode->released = ostrcat(released, NULL, 1, 0); 355 newnode->runtime = ostrcat(runtime, NULL, 1, 0); 356 newnode->genre = ostrcat(genre, NULL, 1, 0); 357 newnode->director = ostrcat(director, NULL, 1, 0); 358 newnode->writer = ostrcat(writer, NULL, 1, 0); 359 newnode->actors = ostrcat(actors, NULL, 1, 0); 360 newnode->plot = ostrcat(plot, NULL, 1, 0); 361 newnode->poster = ostrcat(poster, NULL, 1, 0); 362 newnode->rating = ostrcat(rating, NULL, 1, 0); 363 newnode->votes = ostrcat(votes, NULL, 1, 0); 364 newnode->file = ostrcat(file, NULL, 1, 0); 365 366 //modifymediadbcache(newnode->serviceid, newnode->transponderid, newnode); 367 368 if(last == NULL) 369 { 370 while(node != NULL) 371 { 372 prev = node; 373 node = node->next; 374 } 375 } 376 else 377 { 378 prev = last; 379 node = last->next; 380 } 381 382 if(prev == NULL) 383 mediadb = newnode; 384 else 385 { 386 prev->next = newnode; 387 newnode->prev = prev; 388 } 389 newnode->next = node; 390 if(node != NULL) node->prev = newnode; 391 392 //debug(1000, "out"); 393 return newnode; 394 } 395 396 struct mediadb* createmediadb(char* id, int type, char* title, char* year, char* released, char* runtime, char* genre, char* director, char* writer, char* actors, char* plot, char* poster, char* rating, char* votes, char* file) 219 397 { 220 398 struct mediadb* mnode = NULL; 221 399 char* tmpstr = NULL; 222 400 223 tmpstr = ostrcat(tmpstr, name, 1, 0); 224 tmpstr = ostrcat(tmpstr, "#", 1, 0); 225 tmpstr = ostrcat(tmpstr, olutoa(transponderid), 1, 1); 226 tmpstr = ostrcat(tmpstr, "#", 1, 0); 227 tmpstr = ostrcat(tmpstr, oitoa(providerid), 1, 1); 228 tmpstr = ostrcat(tmpstr, "#", 1, 0); 229 tmpstr = ostrcat(tmpstr, oitoa(serviceid), 1, 1); 230 tmpstr = ostrcat(tmpstr, "#", 1, 0); 231 tmpstr = ostrcat(tmpstr, oitoa(servicetype), 1, 1); 232 tmpstr = ostrcat(tmpstr, "#", 1, 0); 233 tmpstr = ostrcat(tmpstr, oitoa(flag), 1, 1); 234 tmpstr = ostrcat(tmpstr, "#", 1, 0); 235 tmpstr = ostrcat(tmpstr, oitoa(videocodec), 1, 1); 236 tmpstr = ostrcat(tmpstr, "#", 1, 0); 237 tmpstr = ostrcat(tmpstr, oitoa(audiocodec), 1, 1); 238 tmpstr = ostrcat(tmpstr, "#", 1, 0); 239 tmpstr = ostrcat(tmpstr, oitoa(videopid), 1, 1); 240 tmpstr = ostrcat(tmpstr, "#", 1, 0); 241 tmpstr = ostrcat(tmpstr, oitoa(audiopid), 1, 1); 242 tmpstr = ostrcat(tmpstr, "#", 1, 0); 243 tmpstr = ostrcat(tmpstr, oitoa(protect), 1, 1); 401 tmpstr = ostrcat(tmpstr, id, 1, 0); 402 tmpstr = ostrcat(tmpstr, "#", 1, 0); 403 tmpstr = ostrcat(tmpstr, oitoa(type), 1, 1); 404 tmpstr = ostrcat(tmpstr, "#", 1, 0); 405 tmpstr = ostrcat(tmpstr, title, 1, 0); 406 tmpstr = ostrcat(tmpstr, "#", 1, 0); 407 tmpstr = ostrcat(tmpstr, year, 1, 0); 408 tmpstr = ostrcat(tmpstr, "#", 1, 0); 409 tmpstr = ostrcat(tmpstr, released, 1, 0); 410 tmpstr = ostrcat(tmpstr, "#", 1, 0); 411 tmpstr = ostrcat(tmpstr, runtime, 1, 0); 412 tmpstr = ostrcat(tmpstr, "#", 1, 0); 413 tmpstr = ostrcat(tmpstr, genre, 1, 0); 414 tmpstr = ostrcat(tmpstr, "#", 1, 0); 415 tmpstr = ostrcat(tmpstr, director, 1, 0); 416 tmpstr = ostrcat(tmpstr, "#", 1, 0); 417 tmpstr = ostrcat(tmpstr, writer, 1, 0); 418 tmpstr = ostrcat(tmpstr, "#", 1, 0); 419 tmpstr = ostrcat(tmpstr, actors, 1, 0); 420 tmpstr = ostrcat(tmpstr, "#", 1, 0); 421 tmpstr = ostrcat(tmpstr, plot, 1, 0); 422 tmpstr = ostrcat(tmpstr, "#", 1, 0); 423 tmpstr = ostrcat(tmpstr, poster, 1, 0); 424 tmpstr = ostrcat(tmpstr, "#", 1, 0); 425 tmpstr = ostrcat(tmpstr, rating, 1, 0); 426 tmpstr = ostrcat(tmpstr, "#", 1, 0); 427 tmpstr = ostrcat(tmpstr, votes, 1, 0); 428 tmpstr = ostrcat(tmpstr, "#", 1, 0); 429 tmpstr = ostrcat(tmpstr, file, 1, 0); 244 430 245 431 mnode = addmediadb(tmpstr, 1, NULL); … … 292 478 fclose(fd); 293 479 return 0; 480 } 481 482 void freemediadbcontent(struct mediadb* node) 483 { 484 if(node == NULL) return; 485 486 free(node->id); node->id = NULL; 487 free(node->title); node->title = NULL; 488 free(node->year); node->year = NULL; 489 free(node->released); node->released = NULL; 490 free(node->runtime); node->runtime = NULL; 491 free(node->genre); node->genre = NULL; 492 free(node->director); node->director = NULL; 493 free(node->writer); node->writer = NULL; 494 free(node->actors); node->actors = NULL; 495 free(node->plot); node->plot = NULL; 496 free(node->poster); node->poster = NULL; 497 free(node->rating); node->rating = NULL; 498 free(node->votes); node->votes = NULL; 499 free(node->file); node->file = NULL; 500 } 501 502 int delmediadbfilter(struct mediadbfilter* mnode, int flag) 503 { 504 debug(1000, "in"); 505 int ret = 1; 506 struct mediadbfilter *node = mediadbfilter, *prev = mediadbfilter; 507 508 while(node != NULL) 509 { 510 if(node == mnode) 511 { 512 ret = 0; 513 if(node == mediadbfilter) 514 { 515 mediadbfilter = node->next; 516 if(mediadbfilter != NULL) 517 mediadbfilter->prev = NULL; 518 } 519 else 520 { 521 prev->next = node->next; 522 if(node->next != NULL) 523 node->next->prev = prev; 524 } 525 526 free(node); 527 node = NULL; 528 529 break; 530 } 531 532 prev = node; 533 node = node->next; 534 } 535 536 debug(1000, "out"); 537 return ret; 294 538 } 295 539 … … 319 563 320 564 //delmediadbcache(node->serviceid, node->transponderid); 321 322 free(node->name); 323 node->name = NULL; 565 freemediadbcontent(node); 324 566 325 567 free(node); … … 335 577 debug(1000, "out"); 336 578 return ret; 579 } 580 581 void freemediadbfilter(int flag) 582 { 583 debug(1000, "in"); 584 struct mediadbfilter *node = mediadbfilter, *prev = mediadbfilter; 585 586 while(node != NULL) 587 { 588 prev = node; 589 node = node->next; 590 if(prev != NULL) 591 delmediadbfilter(prev, flag); 592 } 593 debug(1000, "out"); 337 594 } 338 595 … … 368 625 while(node != NULL) 369 626 { 370 ret = fprintf(fd, "%s#% s#%s\n", node->name, node->file, node->pic);627 ret = fprintf(fd, "%s#%d#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s\n", node->id, node->type, node->title, node->year, node->released, node->runtime, node->genre, node->director, node->writer, node->actors, node->plot, node->poster, node->rating, node->votes, node->file); 371 628 if(ret < 0) 372 629 { … … 381 638 } 382 639 640 void createmediadbfilter(int type, int sort) 641 { 642 struct mediadb* node = mediadb; 643 644 freemediadbfilter(0); 645 while(node != NULL) 646 { 647 if(node->type == type) 648 { 649 addmediadbfilter(node, 1, NULL); 650 } 651 node = node->next; 652 } 653 } 654 383 655 #endif -
titan/plugins/tmc/tmc.c
r15934 r16138 2 2 #include "../titan/debug.h" 3 3 #include "../titan/header.h" 4 #include "mediadb.h" 4 5 #include "tmc.h" 5 6 -
titan/plugins/tmc/tmc.h
r15978 r16138 2 2 #define TMC_H 3 3 4 struct mediadbfilter* mediadbfilterpos = NULL; 5 6 //Mainmenu 4 7 int menu0pos = 0; 5 char* menu0[] = {"skin/tmcsettings.png", "skin/tmcpicture.png", "skin/tmcvideo.png", "skin/tmcaudio.png", "skin/tmcbtn.png"}; 6 char* menu0txt[] = {"Settings", "Picture", "Video", "Audio", ""}; 7 8 char* menu0[] = {"skin/tmcsettings.png", "skin/tmcpicture.png", "skin/tmcvideo.png", "skin/tmcaudio.png", "skin/tmcexit.png"}; 9 char* menu0txt[] = {"Settings", "Picture", "Video", "Audio", "Exit"}; 10 11 //Settings 8 12 int menu1pos = 0; 9 13 char* menu1[] = {"skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png"}; 10 char* menu1txt[] = {"S1", "S2", "S3", "S4", "S5"}; 11 14 char* menu1txt[] = {"", "", "", "", ""}; 15 16 //Picture 12 17 int menu2pos = 0; 13 char* menu2[] = {"skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png"}; 14 char* menu2txt[] = {"P1", "P2", "P3", "P4", "P5"}; 15 18 char* menu2[] = {"skin/tmcsearch.png", "skin/tmccategory.png", "skin/tmcall.png", "skin/tmcrandom.png", "skin/tmcone.png", "skin/tmcback.png"}; 19 char* menu2txt[] = {"Search", "Category", "All", "Random", "Single", "Back"}; 20 21 //Video 16 22 int menu3pos = 0; 17 char* menu3[] = {"skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png"}; 18 char* menu3txt[] = {"V1", "V2", "V3", "V4", "V5"}; 19 23 char* menu3[] = {"skin/tmcsearch.png", "skin/tmccategory.png", "skin/tmcall.png", "skin/tmcback.png", "skin/tmcbtn.png"}; 24 char* menu3txt[] = {"Search", "Category", "All", "Back", ""}; 25 26 //Audio 20 27 int menu4pos = 0; 21 char* menu4[] = {"skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png"}; 22 char* menu4txt[] = {"A1", "A2", "A3", "A4", "A5"}; 28 char* menu4[] = {"skin/tmcsearch.png", "skin/tmccategory.png", "skin/tmcall.png", "skin/tmcrandom.png", "skin/tmcone.png", "skin/tmcback.png"}; 29 char* menu4txt[] = {"Search", "Category", "All", "Random", "Single", "Back"}; 30 31 //Input 32 int menu5pos = 0; 33 char* menu5[] = {"skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png", "skin/tmcbtn.png"}; 34 char* menu5txt[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"}; 23 35 24 36 //flag 0: draw only … … 27 39 void tmcpicscroll(struct skin* tmcpic1, struct skin* tmcpic2, struct skin* tmcpic3, struct skin* tmcpic4, struct skin* tmcpic5, int flag) 28 40 { 29 /* 30 int id = 0, max = 0; 31 char** menu = NULL, **menutxt = NULL; 32 int *menupos; 33 34 if(menuid == 0) 35 { 36 menu = menu0; 37 menutxt = menu0txt; 38 max = (sizeof(menu0) / sizeof(char*)) - 1; 39 menupos = &menu0pos; 40 } 41 else if(menuid == 1) 42 { 43 menu = menu1; 44 menutxt = menu1txt; 45 max = (sizeof(menu1) / sizeof(char*)) - 1; 46 menupos = &menu1pos; 47 } 48 else if(menuid == 2) 49 { 50 menu = menu2; 51 menutxt = menu2txt; 52 max = (sizeof(menu2) / sizeof(char*)) - 1; 53 menupos = &menu2pos; 54 } 55 else if(menuid == 3) 56 { 57 menu = menu3; 58 menutxt = menu3txt; 59 max = (sizeof(menu3) / sizeof(char*)) - 1; 60 menupos = &menu3pos; 61 } 62 else if(menuid == 4) 63 { 64 menu = menu4; 65 menutxt = menu4txt; 66 max = (sizeof(menu4) / sizeof(char*)) - 1; 67 menupos = &menu4pos; 68 } 69 70 if(flag == 1) (*menupos)++; 71 if(flag == 2) (*menupos)--; 72 73 if(*menupos < 0) *menupos = max; 74 if(*menupos > max) *menupos = 0; 75 76 id = *menupos; 77 78 if(id > max) id = 0; 79 changepic(tmcpic1, menu[id]); 80 id++; 81 82 if(id > max) id = 0; 83 changepic(tmcpic2, menu[id]); 84 id++; 85 86 if(id > max) id = 0; 87 changepic(tmcpic3, menu[id]); 88 id++; 89 90 if(id > max) id = 0; 91 changepic(tmcpic4, menu[id]); 92 id++; 93 94 if(id > max) id = 0; 95 changepic(tmcpic5, menu[id]); 41 int count = 0; 42 struct mediadbfilter* node = mediadbfilterpos; 43 char* tmpstr = NULL; 44 45 while(1) 46 { 47 if(flag == 0 && count == 0) 48 { 49 if(node == NULL) node = mediadbfilter; 50 mediadbfilterpos = node; 51 } 52 if(flag == 1 && count == 0) 53 { 54 if(node == NULL) node = mediadbfilter; 55 if(node != NULL) node = node->next; 56 if(node == NULL) node = mediadbfilter; 57 mediadbfilterpos = node; 58 } 59 if(flag == 2 && count == 0) 60 { 61 if(node == NULL) node = getlastmediadbfilter(mediadbfilter); 62 if(node != NULL) node = node->prev; 63 if(node == NULL) node = getlastmediadbfilter(mediadbfilter); 64 mediadbfilterpos = node; 65 } 66 if(count != 0) 67 { 68 if(node == NULL) node = mediadbfilter; 69 if(node != NULL) node = node->next; 70 if(node == NULL) node = mediadbfilter; 71 } 72 73 if(node != NULL && node->node != NULL) 74 { 75 tmpstr = ostrcat(getconfig("imdb_directory", NULL), "/", 0, 0); 76 tmpstr = ostrcat(tmpstr, node->node->poster, 1, 0); 77 if(count == 0) changepic(tmcpic1, tmpstr); 78 if(count == 1) changepic(tmcpic2, tmpstr); 79 if(count == 2) changepic(tmcpic3, tmpstr); 80 if(count == 3) changepic(tmcpic4, tmpstr); 81 if(count == 4) changepic(tmcpic5, tmpstr); 82 free(tmpstr); tmpstr = NULL; 83 } 84 count++; if(count > 4) break; 85 } 96 86 97 87 drawscreen(tmcpic1, 1); … … 100 90 drawscreen(tmcpic4, 1); 101 91 drawscreen(tmcpic5, 0); 102 */103 92 } 104 93 … … 111 100 char** menu = NULL, **menutxt = NULL; 112 101 int *menupos = 0; 113 102 char* tmpstr = NULL; 114 103 115 104 if(menuid == 0) … … 148 137 menupos = &menu4pos; 149 138 } 139 else if(menuid == 5) 140 { 141 menu = menu5; 142 menutxt = menu5txt; 143 max = (sizeof(menu5) / sizeof(char*)) - 1; 144 menupos = &menu5pos; 145 } 150 146 151 147 if(flag == 1) (*menupos)++; … … 158 154 159 155 if(id > max) id = 0; 160 156 tmpstr = ostrcat("%pluginpath%/tmc/", menu[id], 0, 0); 161 157 changepic(tmcmenu1, tmpstr); 162 free(tmpstr); tmpstr = NULL; 158 free(tmpstr); tmpstr = NULL; 159 if(menuid == 5) 160 changetext(tmcmenu1, menutxt[id]); 161 else 162 changetext(tmcmenu1, NULL); 163 163 id++; 164 164 165 165 if(id > max) id = 0; 166 166 tmpstr = ostrcat("%pluginpath%/tmc/", menu[id], 0, 0); 167 167 changepic(tmcmenu2, tmpstr); 168 free(tmpstr); tmpstr = NULL; 168 free(tmpstr); tmpstr = NULL; 169 if(menuid == 5) 170 changetext(tmcmenu2, menutxt[id]); 171 else 172 changetext(tmcmenu2, NULL); 169 173 id++; 170 174 171 175 if(id > max) id = 0; 172 176 tmpstr = ostrcat("%pluginpath%/tmc/", menu[id], 0, 0); 173 177 changepic(tmcmenu3, tmpstr); 174 free(tmpstr); tmpstr = NULL; 175 changetext(tmcmenutxt, _(menutxt[id])); 176 changename(tmcmenutxt, menutxt[id]); 178 free(tmpstr); tmpstr = NULL; 179 if(menuid == 5) 180 changetext(tmcmenu3, menutxt[id]); 181 else 182 { 183 changetext(tmcmenu3, NULL); 184 changetext(tmcmenutxt, _(menutxt[id])); 185 changename(tmcmenutxt, menutxt[id]); 186 } 177 187 id++; 178 188 179 189 if(id > max) id = 0; 180 190 tmpstr = ostrcat("%pluginpath%/tmc/", menu[id], 0, 0); 181 191 changepic(tmcmenu4, tmpstr); 182 free(tmpstr); tmpstr = NULL; 192 free(tmpstr); tmpstr = NULL; 193 if(menuid == 5) 194 changetext(tmcmenu4, menutxt[id]); 195 else 196 changetext(tmcmenu4, NULL); 183 197 id++; 184 198 185 199 if(id > max) id = 0; 186 200 tmpstr = ostrcat("%pluginpath%/tmc/", menu[id], 0, 0); 187 201 changepic(tmcmenu5, tmpstr); 188 free(tmpstr); tmpstr = NULL; 202 free(tmpstr); tmpstr = NULL; 203 if(menuid == 5) 204 changetext(tmcmenu5, menutxt[id]); 205 else 206 changetext(tmcmenu5, NULL); 189 207 190 208 if(active == 1) … … 215 233 void screentmcmenu() 216 234 { 217 int rcret = 0, menuid = 0, active = 1;235 int rcret = 0, menuid = 0, oldmenuid = 0, active = 1; 218 236 struct skin* tmcbg = getscreen("tmcbg"); 219 237 struct skin* tmcmenutxt = getscreen("tmcmenutxt"); … … 229 247 struct skin* tmcpic5 = getscreen("tmcpic5"); 230 248 249 mediadbfilterpos = NULL; 231 250 menu0pos = 0; 232 251 menu1pos = 0; … … 243 262 tmcmenuscroll(menuid, active, tmcmenutxt, tmcmenu1, tmcmenu2, tmcmenu3, tmcmenu4, tmcmenu5, 0); 244 263 264 readmediadb(getconfig("mediadbfile", NULL)); 265 245 266 while(1) 246 267 { 247 268 rcret = waitrc(NULL, 0, 0); 248 269 249 if( rcret == getrcconfigint("rcmenu", NULL))270 if(menuid != 0 && rcret == getrcconfigint("rcmenu", NULL)) 250 271 { 251 272 if(active == 1) … … 263 284 { 264 285 if(menuid == 0) break; 265 else menuid = 0; 286 menuid = oldmenuid; 287 oldmenuid = 0; 266 288 267 289 tmcmenuscroll(menuid, active, tmcmenutxt, tmcmenu1, tmcmenu2, tmcmenu3, tmcmenu4, tmcmenu5, 0); … … 275 297 tmcmenuscroll(menuid, active, tmcmenutxt, tmcmenu1, tmcmenu2, tmcmenu3, tmcmenu4, tmcmenu5, 1); 276 298 else 277 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 0);299 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 1); 278 300 continue; 279 301 } … … 284 306 tmcmenuscroll(menuid, active, tmcmenutxt, tmcmenu1, tmcmenu2, tmcmenu3, tmcmenu4, tmcmenu5, 2); 285 307 else 286 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 0);308 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 2); 287 309 continue; 288 310 } … … 292 314 if(active == 1) 293 315 { 294 if(ostrcmp("Settings", tmcmenutxt->name) == 0) menuid = 1; 295 else if(ostrcmp("Picture", tmcmenutxt->name) == 0) menuid = 2; 296 else if(ostrcmp("Video", tmcmenutxt->name) == 0) menuid = 3; 297 else if(ostrcmp("Audio", tmcmenutxt->name) == 0) menuid = 4; 316 if(ostrcmp("Exit", tmcmenutxt->name) == 0) 317 break; 318 if(ostrcmp("Settings", tmcmenutxt->name) == 0) 319 { 320 menuid = 1; 321 } 322 if(ostrcmp("Search", tmcmenutxt->name) == 0) 323 { 324 oldmenuid = menuid; 325 menuid = 5; 326 } 327 if(ostrcmp("Back", tmcmenutxt->name) == 0) 328 { 329 menuid = oldmenuid; 330 oldmenuid = 0; 331 } 332 else if(ostrcmp("Picture", tmcmenutxt->name) == 0) 333 { 334 menuid = 2; 335 mediadbfilterpos = NULL; 336 createmediadbfilter(2, 0); 337 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 0); 338 } 339 else if(ostrcmp("Video", tmcmenutxt->name) == 0) 340 { 341 menuid = 3; 342 mediadbfilterpos = NULL; 343 createmediadbfilter(0, 0); 344 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 0); 345 } 346 else if(ostrcmp("Audio", tmcmenutxt->name) == 0) 347 { 348 menuid = 4; 349 mediadbfilterpos = NULL; 350 createmediadbfilter(1, 0); 351 tmcpicscroll(tmcpic1, tmcpic2, tmcpic3, tmcpic4, tmcpic5, 0); 352 } 298 353 299 354 tmcmenuscroll(menuid, active, tmcmenutxt, tmcmenu1, tmcmenu2, tmcmenu3, tmcmenu4, tmcmenu5, 0); … … 303 358 } 304 359 360 freemediadbfilter(0); 361 freemediadb(0); 305 362 clearscreen(tmcbg); 306 363 }
Note: See TracChangeset
for help on using the changeset viewer.