Ignore:
Timestamp:
May 9, 2012, 8:51:01 PM (8 years ago)
Author:
gost
Message:

[titan] lcdperl --> weather forecast added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/plugins/lcdpearl1/lcdpearl1.c

    r15385 r15624  
    33#include "../../titan/header.h"
    44
     5#include "lcd_weather.h"
     6
    57char pluginname[] = "LCD Pearl";
    68char plugindesc[] = "Extensions";
     
    1214
    1315struct stimerthread* LCD_Pearl1thread = NULL;
     16
    1417int firststart = 0;
     18
     19void weather_getline(FILE* fd, char* fileline)
     20{
     21        fgets(fileline, 256, fd);
     22        if(fileline[0] == '#' || fileline[0] == '\n')
     23                return;
     24        if(fileline[strlen(fileline) - 1] == '\n')
     25                fileline[strlen(fileline) - 1] = '\0';
     26        if(fileline[strlen(fileline) - 1] == '\r')
     27                fileline[strlen(fileline) - 1] = '\0';
     28}
    1529
    1630void LCD_start_lcd4linux()
     
    3852{
    3953       
     54        struct skin* LCD_Pearl1 = NULL;
     55        struct skin* day0_t = NULL;
     56        struct skin* day0_i = NULL;
     57        struct skin* day1_t = NULL;
     58        struct skin* day1_i = NULL;
     59        struct skin* day2_t = NULL;
     60        struct skin* day2_i = NULL;
     61        struct skin* day3_t = NULL;
     62        struct skin* day3_i = NULL;
     63        struct skin* akttime = NULL;
     64       
     65       
    4066        char* tmpstr = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *timemerk = NULL, *sendermerk = NULL, *recmerk = NULL;
    41        
    42         struct skin* LCD_Pearl1 = getscreen("LCD_Pearl1");
    43         struct skin* akttime = getscreennode(LCD_Pearl1, "akttime");
     67        FILE *fd = NULL;
     68        char *fileline = NULL;
     69        int weatherwrite = 0;
     70       
     71        if(ostrcmp(getconfig("lcd_pearl1_plugin_wetter", NULL), "yes") == 0)
     72        {
     73                LCD_Pearl1 = getscreen("LCD_Pearl1_Wetter");
     74                day0_t = getscreennode(LCD_Pearl1, "day0_t");
     75                day0_i = getscreennode(LCD_Pearl1, "day0_i");
     76                day1_t = getscreennode(LCD_Pearl1, "day1_t");
     77                day1_i = getscreennode(LCD_Pearl1, "day1_i");
     78                day2_t = getscreennode(LCD_Pearl1, "day2_t");
     79                day2_i = getscreennode(LCD_Pearl1, "day2_i");
     80                day3_t = getscreennode(LCD_Pearl1, "day3_t");
     81                day3_i = getscreennode(LCD_Pearl1, "day3_i");
     82                if(file_exist("/tmp/lcdweather") == 1)
     83                        system("rm /tmp/lcdweather");
     84        }
     85        else
     86                LCD_Pearl1 = getscreen("LCD_Pearl1");   
     87        akttime = getscreennode(LCD_Pearl1, "akttime");
    4488       
    4589        struct skin* LCD_Play = getscreen("LCD_Play");
     
    5195        struct skin* sreverse = getscreennode(LCD_Play, "reverse");
    5296       
    53         struct skin* LCD_MC_Menu = getscreen("LCD_MC_Menu");
    54         struct skin* akttimemc1 = getscreennode(LCD_MC_Menu, "akttime");
     97        //struct skin* LCD_MC_Menu = getscreen("LCD_MC_Menu");
     98        //struct skin* akttimemc1 = getscreennode(LCD_MC_Menu, "akttime");
    5599               
    56100        int put = 0, typemerk = 0, type = 0;
     
    163207                                        if(type == 1)
    164208                                        {
     209                                                // Wettervorhersage
     210                                                if(ostrcmp(getconfig("lcd_pearl1_plugin_wetter", NULL), "yes") == 0)
     211                                                {
     212                                                        if(weatherwrite == 0)
     213                                                        {
     214                                                                if(weatherthread == NULL)
     215                                                                {
     216                                                                        if(file_exist("/tmp/lcdweather") == 0)
     217                                                                                weatherthread = addtimer(&lcd_writeweather, START, 10000, 1, NULL, NULL, NULL);
     218                                                                        else
     219                                                                        {
     220                                                                                fileline = malloc(256);
     221                                                                                if(fileline != NULL)
     222                                                                                {
     223                                                                                        fd = fopen("/tmp/lcdweather", "r");
     224                                                                                        if(fd != NULL)
     225                                                                                        {
     226                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);weather_getline(fd, fileline);
     227                                                                                                weather_getline(fd, fileline);
     228                                                                                                changetext(day0_t, fileline);
     229                                                                                                weather_getline(fd, fileline);
     230                                                                                                weather_getline(fd, fileline);
     231                                                                                                changepic(day0_i, fileline);
     232                                                                                               
     233                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
     234                                                                                                weather_getline(fd, fileline);
     235                                                                                                changetext(day1_t, fileline);
     236                                                                                                weather_getline(fd, fileline);
     237                                                                                                weather_getline(fd, fileline);
     238                                                                                                changepic(day1_i, fileline);
     239                                                                                               
     240                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
     241                                                                                                weather_getline(fd, fileline);
     242                                                                                                changetext(day2_t, fileline);
     243                                                                                                weather_getline(fd, fileline);
     244                                                                                                weather_getline(fd, fileline);
     245                                                                                                changepic(day2_i, fileline);
     246                                                                                               
     247                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
     248                                                                                                weather_getline(fd, fileline);
     249                                                                                                changetext(day3_t, fileline);
     250                                                                                                weather_getline(fd, fileline);
     251                                                                                                weather_getline(fd, fileline);
     252                                                                                                changepic(day3_i, fileline);
     253                                                                                                fclose(fd);
     254                                                                                        }
     255                                                                                        free(fileline); fileline=NULL;
     256                                                                                }
     257                                                                                weatherwrite = 1;
     258                                                                        }                                                               
     259                                                                }
     260                                                        }               
     261                                                }
     262                                               
    165263                                                changetext(akttime, tmpstr);
    166264                                                drawscreen(LCD_Pearl1, 0);
     
    306404        struct skin* listbox = getscreennode(pearl1_main, "listbox");
    307405        struct skin* allmenu = getscreennode(pearl1_main, "allmenu");
     406        struct skin* wettervor = getscreennode(pearl1_main, "wettervor");
    308407        struct skin* b3 = getscreennode(pearl1_main, "b3");
    309408        struct skin* tmp = NULL;
     
    316415  addchoicebox(allmenu, "yes", _("ja"));
    317416        setchoiceboxselection(allmenu, getconfig("write_fb_to_png", NULL));
     417       
     418        addchoicebox(wettervor, "no", _("nein"));
     419  addchoicebox(wettervor, "yes", _("ja"));
     420        setchoiceboxselection(wettervor, getconfig("lcd_pearl1_plugin_wetter", NULL));
    318421       
    319422        if(LCD_Pearl1thread != NULL)
     
    337440                {
    338441                        addconfig("write_fb_to_png", allmenu->ret);
     442                        addconfig("lcd_pearl1_plugin_wetter", wettervor->ret);
     443                        addconfig("lcd_pearl1_plugin_wetter_ort", "Berlin");
    339444                        restart = 1;
    340445                        break;
     
    376481                }
    377482        }
    378         return;
    379 }
    380 
     483}
Note: See TracChangeset for help on using the changeset viewer.