SHOW:
|
|
- or go back to the newest paste.
| 1 | #include "../include/configbutton.h" | |
| 2 | #include <stdio.h> | |
| 3 | #include <stdlib.h> | |
| 4 | ||
| 5 | typedef struct {
| |
| 6 | int tvout_mode; | |
| 7 | char command[256]; | |
| 8 | } INTERNAL; | |
| 9 | ||
| 10 | ||
| 11 | const char *label[32] = { "PAL, Main Layer", "PAL, HW Scaler", "NTSC, Main Layer", "NTSC, HW Scaler", "Disable TV-out", "Configure TV-out" };
| |
| 12 | ||
| 13 | ||
| 14 | int activate(void *internal) {
| |
| 15 | INTERNAL *ip = internal; | |
| 16 | system(ip->command); | |
| 17 | /*switch (ip->tvout_mode) {
| |
| 18 | case 0: // PAL, Layer 0 | |
| 19 | system("sudo -n /usr/pandora/scripts/op_tvout.sh -t pal -l 0");
| |
| 20 | break; | |
| 21 | case 1: // PAL, Layer 1 | |
| 22 | system("sudo -n /usr/pandora/scripts/op_tvout.sh -t pal -l 1");
| |
| 23 | break; | |
| 24 | case 2: // NTSC, Layer 0 | |
| 25 | system("sudo -n /usr/pandora/scripts/op_tvout.sh -t ntsc -l 0");
| |
| 26 | break; | |
| 27 | case 3: // NTSC, Layer 1 | |
| 28 | system("sudo -n /usr/pandora/scripts/op_tvout.sh -t ntsc -l 1");
| |
| 29 | break; | |
| 30 | case 4: // Disable | |
| 31 | system("sudo -n /usr/pandora/scripts/op_tvout.sh -d");
| |
| 32 | break; | |
| 33 | default: // Configure | |
| 34 | system("/usr/pandora/scripts/TVoutConfig.py &");
| |
| 35 | break; | |
| 36 | }*/ | |
| 37 | ||
| 38 | return 0; | |
| 39 | } | |
| 40 | ||
| 41 | ||
| 42 | int getinfo(PLUGIN_INFO *info) {
| |
| 43 | int i; | |
| 44 | struct PLUGIN_SUBMENU *sub; | |
| 45 | INTERNAL *internal; | |
| 46 | ||
| 47 | if (info->submenu == NULL) {
| |
| 48 | info->label = malloc(128); | |
| 49 | // Open TV-Out profile | |
| 50 | FILE * file; | |
| 51 | file = fopen("/etc/pandora/conf/tvout-profiles.conf", "r");
| |
| 52 | char buff[256]; | |
| 53 | if(file) | |
| 54 | {
| |
| 55 | i = 0; int modeCount = 0; | |
| 56 | while( fgets(buff, sizeof (buff), file) != NULL ) | |
| 57 | {
| |
| 58 | ||
| 59 | // If an even line it's a labal | |
| 60 | if((i % 2) == 0) | |
| 61 | {
| |
| 62 | sub = malloc(sizeof(struct PLUGIN_SUBMENU)); | |
| 63 | sub->next = info->submenu; | |
| 64 | sub->icon_path = "/usr/share/icons/pandora/tvout.png"; | |
| 65 | sub->visible = 1; | |
| 66 | sub->label = buff; | |
| 67 | } | |
| 68 | else // It's a command! | |
| 69 | {
| |
| 70 | internal = malloc(sizeof(INTERNAL)); | |
| 71 | internal->tvout_mode = modeCount++; | |
| 72 | // We now need to build the command | |
| 73 | char isEnabled[5]; | |
| 74 | char region[4]; | |
| 75 | char format[10]; | |
| 76 | int layer; | |
| 77 | int x; | |
| 78 | int y; | |
| 79 | int width; | |
| 80 | int height; | |
| 81 | - | if(scanf ("%s %s %s %d %d %d %d %d",isEnabled,region,format,layer,x,y,width,height) > 0)
|
| 81 | + | if(sscanf (buff,"%s %s %s %d %d %d %d %d",isEnabled,region,format,&layer,&x,&y,&width,&height) > 0) |
| 82 | {
| |
| 83 | - | char base[256]; |
| 83 | + | char base[256]; |
| 84 | - | base = "sudo -n /usr/pandora/scripts/op_tvout.sh -"; |
| 84 | + | char* pBase = base; |
| 85 | - | if(isEnabled == "True") |
| 85 | + | pBase = "sudo -n /usr/pandora/scripts/op_tvout.sh -"; |
| 86 | - | isEnabled = "t"; |
| 86 | + | if(isEnabled == "True") |
| 87 | - | else |
| 87 | + | {
|
| 88 | - | isEnabled = "f"; |
| 88 | + | isEnabled[0] = 't'; |
| 89 | - | sprintf(internal->command, "%s%s %s -c %s -l %d",/* %d %d %d %d",*/base,isEnabled,region,format,layer);/*,x,y,width,height); */ |
| 89 | + | } |
| 90 | else | |
| 91 | {
| |
| 92 | isEnabled[0] = 'f'; | |
| 93 | } | |
| 94 | isEnabled[1] = '\0'; | |
| 95 | sprintf(internal->command, "%s%s %s -c %s -l %d",/* %d %d %d %d",*/base,isEnabled,region,format,layer);/*,x,y,width,height); */ | |
| 96 | } | |
| 97 | sub->internal = internal; | |
| 98 | info->submenu = sub; | |
| 99 | } | |
| 100 | ++i; | |
| 101 | } | |
| 102 | fclose(file); | |
| 103 | } | |
| 104 | else // Backup plan | |
| 105 | {
| |
| 106 | for (i = 5; i >= 0; i--) {
| |
| 107 | sub = malloc(sizeof(struct PLUGIN_SUBMENU)); | |
| 108 | sub->next = info->submenu; | |
| 109 | sub->label = label[i]; | |
| 110 | sub->icon_path = "/usr/share/icons/pandora/tvout.png"; | |
| 111 | sub->visible = 1; | |
| 112 | internal = malloc(sizeof(INTERNAL)); | |
| 113 | internal->tvout_mode = i; | |
| 114 | sub->internal = internal; | |
| 115 | info->submenu = sub; | |
| 116 | } | |
| 117 | } | |
| 118 | } | |
| 119 | ||
| 120 | info->label = "TV-out"; | |
| 121 | info->icon_path = "/usr/share/icons/pandora/tvout.png"; | |
| 122 | ||
| 123 | info->sort_hint = 10; | |
| 124 | ||
| 125 | return 0; | |
| 126 | } |