Ignore:
Timestamp:
Jan 13, 2018, 11:57:53 AM (2 years ago)
Author:
gost
Message:

[plugins] sispmctl.. extension step 1

Location:
titan/plugins/sispmctl
Files:
2 edited

Legend:

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

    r41635 r41689  
    2121
    2222        tmpstr = createpluginpath("/sispmctl/skin.xml", 0);
    23         readscreen(tmpstr, 118, 1);
     23        readscreen(tmpstr, 281, 1);
    2424       
    2525       
     
    2929        debug(10, "sispmctl Plugin loaded !!!");
    3030       
    31         sispmctl_start();
     31        sispmctl_start(2);
    3232}
    3333
     
    3535void deinit(void)
    3636{
    37         sispmctl_stop();
     37        sispmctl_stop(2);
    3838        pluginaktiv = 0;
    3939        debug(10, "sispmctl removed !!!");
    40         delmarkedscreen(118);
     40        delmarkedscreen(281);
    4141}
    4242
  • titan/plugins/sispmctl/sispmctl.h

    r41635 r41689  
    233233        struct skin* g1_auto_off = getscreennode(sis_einstellungen, "g1_auto_off");
    234234        struct skin* g1_delay = getscreennode(sis_einstellungen, "g1_delay");
     235        struct skin* g1_delayhard = getscreennode(sis_einstellungen, "g1_delayhard");
    235236       
    236237        struct skin* g2_name = getscreennode(sis_einstellungen, "g2_name");
     
    239240        struct skin* g2_auto_off = getscreennode(sis_einstellungen, "g2_auto_off");
    240241        struct skin* g2_delay = getscreennode(sis_einstellungen, "g2_delay");
     242        struct skin* g2_delayhard = getscreennode(sis_einstellungen, "g2_delayhard");
    241243       
    242244        struct skin* g3_name = getscreennode(sis_einstellungen, "g3_name");
     
    245247        struct skin* g3_auto_off = getscreennode(sis_einstellungen, "g3_auto_off");
    246248        struct skin* g3_delay = getscreennode(sis_einstellungen, "g3_delay");
     249        struct skin* g3_delayhard = getscreennode(sis_einstellungen, "g3_delayhard");
    247250       
    248251        struct skin* g4_name = getscreennode(sis_einstellungen, "g4_name");
     
    251254        struct skin* g4_auto_off = getscreennode(sis_einstellungen, "g4_auto_off");
    252255        struct skin* g4_delay = getscreennode(sis_einstellungen, "g4_delay");
     256        struct skin* g4_delayhard = getscreennode(sis_einstellungen, "g4_delayhard");
    253257       
    254258        struct skin* tmp = NULL;
     
    258262 
    259263  addchoicebox(g1_auto_on, "off", _("off"));
    260         addchoicebox(g1_auto_on, "on", _("on"));
     264        addchoicebox(g1_auto_on, "both", _("both"));
     265        addchoicebox(g1_auto_on, "standby", _("standby"));
     266        addchoicebox(g1_auto_on, "deep", _("deep"));
    261267        setchoiceboxselection(g1_auto_on, getlist(myconfig, "g1_auto_on", NULL));
    262268       
     
    273279        addchoicebox(g1_delay, "2", "2");
    274280        addchoicebox(g1_delay, "3", "3");
    275         addchoicebox(g1_delay, "4", "1");
    276         addchoicebox(g1_delay, "5", "1");
     281        addchoicebox(g1_delay, "4", "4");
     282        addchoicebox(g1_delay, "5", "5");
     283        addchoicebox(g1_delay, "6", "6");
     284        addchoicebox(g1_delay, "7", "7");
     285        addchoicebox(g1_delay, "8", "8");
     286        addchoicebox(g1_delay, "9", "9");
     287        addchoicebox(g1_delay, "10", "10");
    277288        setchoiceboxselection(g1_delay, getlist(myconfig, "g1_delay", NULL));
     289       
     290        addchoicebox(g1_delayhard, "0", "0");
     291        addchoicebox(g1_delayhard, "1", "1");
     292        addchoicebox(g1_delayhard, "2", "2");
     293        addchoicebox(g1_delayhard, "3", "3");
     294        addchoicebox(g1_delayhard, "4", "4");
     295        addchoicebox(g1_delayhard, "5", "5");
     296        setchoiceboxselection(g1_delayhard, getlist(myconfig, "g1_delayhard", NULL));
    278297 
    279298  changemask(g2_name, "abcdefghijklmnopqrstuvwxyz");
     
    281300 
    282301  addchoicebox(g2_auto_on, "off", _("off"));
    283         addchoicebox(g2_auto_on, "on", _("on"));
     302        addchoicebox(g2_auto_on, "both", _("both"));
     303        addchoicebox(g2_auto_on, "standby", _("standby"));
     304        addchoicebox(g2_auto_on, "deep", _("deep"));
    284305        setchoiceboxselection(g2_auto_on, getlist(myconfig, "g2_auto_on", NULL));
    285306       
     
    296317        addchoicebox(g2_delay, "2", "2");
    297318        addchoicebox(g2_delay, "3", "3");
    298         addchoicebox(g2_delay, "4", "1");
    299         addchoicebox(g2_delay, "5", "1");
     319        addchoicebox(g2_delay, "4", "4");
     320        addchoicebox(g2_delay, "5", "5");
     321        addchoicebox(g2_delay, "6", "6");
     322        addchoicebox(g2_delay, "7", "7");
     323        addchoicebox(g2_delay, "8", "8");
     324        addchoicebox(g2_delay, "9", "9");
     325        addchoicebox(g2_delay, "10", "10");
    300326        setchoiceboxselection(g2_delay, getlist(myconfig, "g2_delay", NULL));
     327       
     328        addchoicebox(g2_delayhard, "0", "0");
     329        addchoicebox(g2_delayhard, "1", "1");
     330        addchoicebox(g2_delayhard, "2", "2");
     331        addchoicebox(g2_delayhard, "3", "3");
     332        addchoicebox(g2_delayhard, "4", "4");
     333        addchoicebox(g2_delayhard, "5", "5");
     334        setchoiceboxselection(g2_delayhard, getlist(myconfig, "g2_delayhard", NULL));
    301335       
    302336        changemask(g3_name, "abcdefghijklmnopqrstuvwxyz");
     
    304338 
    305339  addchoicebox(g3_auto_on, "off", _("off"));
    306         addchoicebox(g3_auto_on, "on", _("on"));
     340        addchoicebox(g3_auto_on, "both", _("both"));
     341        addchoicebox(g3_auto_on, "standby", _("standby"));
     342        addchoicebox(g3_auto_on, "deep", _("deep"));
    307343        setchoiceboxselection(g3_auto_on, getlist(myconfig, "g3_auto_on", NULL));
    308344       
     
    319355        addchoicebox(g3_delay, "2", "2");
    320356        addchoicebox(g3_delay, "3", "3");
    321         addchoicebox(g3_delay, "4", "1");
    322         addchoicebox(g3_delay, "5", "1");
     357        addchoicebox(g3_delay, "4", "4");
     358        addchoicebox(g3_delay, "5", "5");
     359        addchoicebox(g3_delay, "6", "6");
     360        addchoicebox(g3_delay, "7", "7");
     361        addchoicebox(g3_delay, "8", "8");
     362        addchoicebox(g3_delay, "9", "9");
     363        addchoicebox(g3_delay, "10", "10");
    323364        setchoiceboxselection(g3_delay, getlist(myconfig, "g3_delay", NULL));
     365       
     366        addchoicebox(g3_delayhard, "0", "0");
     367        addchoicebox(g3_delayhard, "1", "1");
     368        addchoicebox(g3_delayhard, "2", "2");
     369        addchoicebox(g3_delayhard, "3", "3");
     370        addchoicebox(g3_delayhard, "4", "4");
     371        addchoicebox(g3_delayhard, "5", "5");
     372        setchoiceboxselection(g3_delayhard, getlist(myconfig, "g3_delayhard", NULL));
    324373       
    325374        changemask(g4_name, "abcdefghijklmnopqrstuvwxyz");
     
    327376 
    328377  addchoicebox(g4_auto_on, "off", _("off"));
    329         addchoicebox(g4_auto_on, "on", _("on"));
     378        addchoicebox(g4_auto_on, "both", _("both"));
     379        addchoicebox(g4_auto_on, "standby", _("standby"));
     380        addchoicebox(g4_auto_on, "deep", _("deep"));
    330381        setchoiceboxselection(g4_auto_on, getlist(myconfig, "g4_auto_on", NULL));
    331382       
     
    342393        addchoicebox(g4_delay, "2", "2");
    343394        addchoicebox(g4_delay, "3", "3");
    344         addchoicebox(g4_delay, "4", "1");
    345         addchoicebox(g4_delay, "5", "1");
     395        addchoicebox(g4_delay, "4", "4");
     396        addchoicebox(g4_delay, "5", "5");
     397        addchoicebox(g4_delay, "6", "6");
     398        addchoicebox(g4_delay, "7", "7");
     399        addchoicebox(g4_delay, "8", "8");
     400        addchoicebox(g4_delay, "9", "9");
     401        addchoicebox(g4_delay, "10", "10");
    346402        setchoiceboxselection(g4_delay, getlist(myconfig, "g4_delay", NULL));
     403       
     404        addchoicebox(g4_delayhard, "0", "0");
     405        addchoicebox(g4_delayhard, "1", "1");
     406        addchoicebox(g4_delayhard, "2", "2");
     407        addchoicebox(g4_delayhard, "3", "3");
     408        addchoicebox(g4_delayhard, "4", "4");
     409        addchoicebox(g4_delayhard, "5", "5");
     410        setchoiceboxselection(g4_delayhard, getlist(myconfig, "g4_delayhard", NULL));
    347411       
    348412 
     
    365429                        addlist(myconfig, "g1_auto_off", g1_auto_off->ret);
    366430                        addlist(myconfig, "g1_delay", g1_delay->ret);
     431                        addlist(myconfig, "g1_delayhard", g1_delayhard->ret);
    367432
    368433                        addlist(myconfig, "g2_name", g2_name->ret);
     
    371436                        addlist(myconfig, "g2_auto_off", g2_auto_off->ret);
    372437                        addlist(myconfig, "g2_delay", g2_delay->ret);
     438                        addlist(myconfig, "g2_delayhard", g2_delayhard->ret);
    373439                       
    374440                        addlist(myconfig, "g3_name", g3_name->ret);
     
    377443                        addlist(myconfig, "g3_auto_off", g3_auto_off->ret);
    378444                        addlist(myconfig, "g3_delay", g3_delay->ret);
     445                        addlist(myconfig, "g3_delayhard", g3_delayhard->ret);
    379446                       
    380447                        addlist(myconfig, "g4_name", g4_name->ret);
     
    383450                        addlist(myconfig, "g4_auto_off", g4_auto_off->ret);
    384451                        addlist(myconfig, "g4_delay", g4_delay->ret);
     452                        addlist(myconfig, "g4_delayhard", g4_delayhard->ret);
    385453                        writelist(myconfig, sispmctlconf);
    386454                }
     
    391459}
    392460
    393 void sispmctl_start()
     461void sispmctl_start(int flag)
    394462{
    395463        char* cmd = NULL;
     
    398466        {
    399467       
    400                 if(ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "on") == 0 )
     468                if(ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "deep") == 0 && flag == 2))
    401469                {
    402470                        if(ostrcmp(getlist(myconfig, "g1_delay", NULL), "0") == 0)
    403                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o1 > /tmp/helpsis", 0, 0);
    404                         else
    405                         {
    406                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
    407                                 cmd = ostrcat(cmd, getlist(myconfig, "g1_delay", NULL), 1, 0);
    408                                 cmd = ostrcat(cmd, " --Ado on", 1, 0);
     471                        {
     472                                if(ostrcmp(getlist(myconfig, "g1_delayhard", NULL), "0") == 0)
     473                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o1 > /tmp/helpsis", 0, 0);
     474                                else
     475                                {
     476                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
     477                                        cmd = ostrcat(cmd, getlist(myconfig, "g1_delay", NULL), 1, 0);
     478                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
     479                                }
     480                        }
     481                        else
     482                        {
     483                                cmd = ostrcat("(sleep ", getlist(myconfig, "g1_delay", NULL), 0, 0);
     484                                cmd = ostrcat(cmd, "; ", 1, 0);
     485                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     486                                cmd = ostrcat(cmd, " -o1) &", 1, 0);
    409487                        }
    410488                        system(cmd);
     
    412490                        free(cmd); cmd = NULL;
    413491                }
    414                 if(ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "on") == 0)
     492                if(ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "deep") == 0 && flag == 2))
    415493                {
    416494                        if(ostrcmp(getlist(myconfig, "g2_delay", NULL), "0") == 0)
    417                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o2 > /tmp/helpsis", 0, 0);
    418                         else
    419                         {
    420                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
    421                                 cmd = ostrcat(cmd, getlist(myconfig, "g2_delay", NULL), 1, 0);
    422                                 cmd = ostrcat(cmd, " --Ado on", 1, 0);
     495                        {
     496                                if(ostrcmp(getlist(myconfig, "g2_delayhard", NULL), "0") == 0)
     497                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o2 > /tmp/helpsis", 0, 0);
     498                                else
     499                                {
     500                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
     501                                        cmd = ostrcat(cmd, getlist(myconfig, "g2_delay", NULL), 1, 0);
     502                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
     503                                }
     504                        }
     505                        else
     506                        {
     507                                cmd = ostrcat("(sleep ", getlist(myconfig, "g2_delay", NULL), 0, 0);
     508                                cmd = ostrcat(cmd, "; ", 1, 0);
     509                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     510                                cmd = ostrcat(cmd, " -o2) &", 1, 0);                           
    423511                        }
    424512                        system(cmd);
     
    426514                        free(cmd); cmd = NULL;
    427515                }
    428                 if(ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "on") == 0)
     516                if(ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "deep") == 0 && flag == 2))
    429517                {
    430518                        if(ostrcmp(getlist(myconfig, "g3_delay", NULL), "0") == 0)
    431                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o3 > /tmp/helpsis", 0, 0);
    432                         else
    433                         {
    434                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
    435                                 cmd = ostrcat(cmd, getlist(myconfig, "g3_delay", NULL), 1, 0);
    436                                 cmd = ostrcat(cmd, " --Ado on", 1, 0);
     519                        {
     520                                if(ostrcmp(getlist(myconfig, "g3_delayhard", NULL), "0") == 0)
     521                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o3 > /tmp/helpsis", 0, 0);
     522                                else
     523                                {
     524                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
     525                                        cmd = ostrcat(cmd, getlist(myconfig, "g3_delay", NULL), 1, 0);
     526                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
     527                                }
     528                        }
     529                        else
     530                        {
     531                                cmd = ostrcat("(sleep ", getlist(myconfig, "g3_delay", NULL), 0, 0);
     532                                cmd = ostrcat(cmd, "; ", 1, 0);
     533                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     534                                cmd = ostrcat(cmd, " -o3) &", 1, 0);
     535
    437536                        }
    438537                        system(cmd);
     
    440539                        free(cmd); cmd = NULL;
    441540                }
    442                 if(ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "on") == 0)
     541                if(ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "deep") == 0 && flag == 2))
    443542                {
    444543                        if(ostrcmp(getlist(myconfig, "g4_delay", NULL), "0") == 0)
    445                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o4 > /tmp/helpsis", 0, 0);
    446                         else
    447                         {
    448                                 cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
    449                                 cmd = ostrcat(cmd, getlist(myconfig, "g4_delay", NULL), 1, 0);
    450                                 cmd = ostrcat(cmd, " --Ado on", 1, 0);
     544                        {
     545                                if(ostrcmp(getlist(myconfig, "g4_delayhard", NULL), "0") == 0)
     546                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o4 > /tmp/helpsis", 0, 0);
     547                                else
     548                                {
     549                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
     550                                        cmd = ostrcat(cmd, getlist(myconfig, "g4_delay", NULL), 1, 0);
     551                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
     552                                }
     553                        }
     554                        else
     555                        {
     556                                cmd = ostrcat("(sleep ", getlist(myconfig, "g4_delay", NULL), 0, 0);
     557                                cmd = ostrcat(cmd, "; ", 1, 0);
     558                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     559                                cmd = ostrcat(cmd, " -o4) &", 1, 0);                           
    451560                        }
    452561                        system(cmd);
     
    457566}
    458567
    459 void sispmctl_stop()
     568void sispmctl_stop(int flag)
    460569{
    461570        char* cmd = NULL;
    462         if(ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "on") == 0)
     571        int maxsleep = 0;
     572        if(ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "deep") == 0 && flag == 2))
    463573        {
    464574                if(ostrcmp(getlist(myconfig, "g1_delay", NULL), "0") == 0)
    465                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o1 > /tmp/helpsis", 0, 0);
     575                {
     576                        if(ostrcmp(getlist(myconfig, "g1_delayhard", NULL), "0") == 0)
     577                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f1 > /tmp/helpsis", 0, 0);
     578                        else
     579                        {
     580                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
     581                                cmd = ostrcat(cmd, getlist(myconfig, "g1_delay", NULL), 1, 0);
     582                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
     583                        }
     584                }
    466585                else
    467586                {
    468                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
    469                         cmd = ostrcat(cmd, getlist(myconfig, "g1_delay", NULL), 1, 0);
    470                         cmd = ostrcat(cmd, " --Ado off", 1, 0);
     587                        cmd = ostrcat("(sleep ", getlist(myconfig, "g1_delay", NULL), 0, 0);
     588                        cmd = ostrcat(cmd, "; ", 1, 0);
     589                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     590                        cmd = ostrcat(cmd, " -f1) &", 1, 0);
     591                        if(maxsleep < atoi(getlist(myconfig, "g1_delay", NULL)))
     592                                maxsleep = atoi(getlist(myconfig, "g1_delay", NULL));                   
    471593                }
    472594                system(cmd);
     
    474596                free(cmd); cmd = NULL;
    475597        }
    476         if(ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "on") == 0)
     598        if(ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "deep") == 0 && flag == 2))
    477599        {
    478600                if(ostrcmp(getlist(myconfig, "g2_delay", NULL), "0") == 0)
    479                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o2 > /tmp/helpsis", 0, 0);
     601                {
     602                        if(ostrcmp(getlist(myconfig, "g2_delayhard", NULL), "0") == 0)
     603                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f2 > /tmp/helpsis", 0, 0);
     604                        else
     605                        {
     606                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
     607                                cmd = ostrcat(cmd, getlist(myconfig, "g2_delay", NULL), 1, 0);
     608                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
     609                        }
     610                }
    480611                else
    481612                {
    482                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
    483                         cmd = ostrcat(cmd, getlist(myconfig, "g2_delay", NULL), 1, 0);
    484                         cmd = ostrcat(cmd, " --Ado off", 1, 0);
     613                        cmd = ostrcat("(sleep ", getlist(myconfig, "g2_delay", NULL), 0, 0);
     614                        cmd = ostrcat(cmd, "; ", 1, 0);
     615                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     616                        cmd = ostrcat(cmd, " -f2) &", 1, 0);
     617                        if(maxsleep < atoi(getlist(myconfig, "g2_delay", NULL)))
     618                                maxsleep = atoi(getlist(myconfig, "g2_delay", NULL));                   
    485619                }
    486620                system(cmd);
     
    488622                free(cmd); cmd = NULL;
    489623        }
    490         if(ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "on") == 0)
     624        if(ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "deep") == 0 && flag == 2))
    491625        {
    492626                if(ostrcmp(getlist(myconfig, "g3_delay", NULL), "0") == 0)
    493                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o3 > /tmp/helpsis", 0, 0);
     627                {
     628                        if(ostrcmp(getlist(myconfig, "g3_delayhard", NULL), "0") == 0)
     629                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f3 > /tmp/helpsis", 0, 0);
     630                        else
     631                        {
     632                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
     633                                cmd = ostrcat(cmd, getlist(myconfig, "g3_delay", NULL), 1, 0);
     634                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
     635                        }
     636                }
    494637                else
    495638                {
    496                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
    497                         cmd = ostrcat(cmd, getlist(myconfig, "g3_delay", NULL), 1, 0);
    498                         cmd = ostrcat(cmd, " --Ado off", 1, 0);
     639                        cmd = ostrcat("(sleep ", getlist(myconfig, "g3_delay", NULL), 0, 0);
     640                        cmd = ostrcat(cmd, "; ", 1, 0);
     641                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     642                        cmd = ostrcat(cmd, " -f3) &", 1, 0);
     643                        if(maxsleep < atoi(getlist(myconfig, "g3_delay", NULL)))
     644                                maxsleep = atoi(getlist(myconfig, "g3_delay", NULL));                   
    499645                }
    500646                system(cmd);
     
    502648                free(cmd); cmd = NULL;
    503649        }
    504         if(ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "on") == 0)
     650        if(ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "deep") == 0 && flag == 2))
    505651        {
    506652                if(ostrcmp(getlist(myconfig, "g4_delay", NULL), "0") == 0)
    507                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o4 > /tmp/helpsis", 0, 0);
     653                {
     654                        if(ostrcmp(getlist(myconfig, "g4_delayhard", NULL), "0") == 0)
     655                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f4 > /tmp/helpsis", 0, 0);
     656                        else
     657                        {
     658                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
     659                                cmd = ostrcat(cmd, getlist(myconfig, "g4_delay", NULL), 1, 0);
     660                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
     661                        }
     662                }
    508663                else
    509664                {
    510                         cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
    511                         cmd = ostrcat(cmd, getlist(myconfig, "g4_delay", NULL), 1, 0);
    512                         cmd = ostrcat(cmd, " --Ado off", 1, 0);
     665                        cmd = ostrcat("(sleep ", getlist(myconfig, "g4_delay", NULL), 0, 0);
     666                        cmd = ostrcat(cmd, "; ", 1, 0);
     667                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
     668                        cmd = ostrcat(cmd, " -f4) &", 1, 0);
     669                        if(maxsleep < atoi(getlist(myconfig, "g4_delay", NULL)))
     670                                maxsleep = atoi(getlist(myconfig, "g4_delay", NULL));                   
    513671                }
    514672                system(cmd);
     
    516674                free(cmd); cmd = NULL;
    517675        }
     676        if(maxsleep > 0)
     677                sleep(maxsleep);
    518678}
    519679
Note: See TracChangeset for help on using the changeset viewer.