source: titan/titan/listedit.h @ 24291

Last change on this file since 24291 was 23662, checked in by nit, 11 years ago

[titan] add sat to bouquet copy

File size: 4.3 KB
Line 
1#ifndef LISTEDIT_H
2#define LISTEDIT_H
3
4int screenlistedit(int list, struct channel* chnode, void* aktlist)
5{
6        int rcret = 0, ret = NOMODE, startchannel = 0;
7        struct skin* listedit = getscreen("listedit");
8        struct skin* listbox = getscreennode(listedit, "listbox");
9        struct skin* cpmode = getscreennode(listedit, "cpmode");
10        struct skin* rmmode = getscreennode(listedit, "rmmode");
11        struct skin* movemode = getscreennode(listedit, "movemode");
12        struct skin* protectmode = getscreennode(listedit, "protectmode");
13        struct skin* addmode = getscreennode(listedit, "addmode");
14        struct skin* editmode = getscreennode(listedit, "editmode");
15        struct skin* sortmode = getscreennode(listedit, "sortmode");
16        struct skin* setstartchannel = getscreennode(listedit, "setstartchannel");
17        struct skin* delstartchannel = getscreennode(listedit, "delstartchannel");
18        struct skin* load = getscreen("loading");
19        char* newentry = NULL, *tmpstr = NULL, *tmpnr = NULL;
20
21        listbox->aktline = 1;
22        listbox->aktpage = -1;
23
24        cpmode->hidden = NO;
25        rmmode->hidden = NO;
26        movemode->hidden = NO;
27        protectmode->hidden = NO;
28        addmode->hidden = YES;
29        editmode->hidden = YES;
30        sortmode->hidden = YES;
31        setstartchannel->hidden = YES;
32        delstartchannel->hidden = YES;
33
34        if(list == SATCHANNEL || list == PROVIDERCHANNEL || list == AZCHANNEL)
35                movemode->hidden = YES;
36        if(list == SATLIST || list == PROVIDERLIST || list == MAINBOUQUETLIST)
37        {
38                cpmode->hidden = YES;
39                protectmode->hidden = YES;
40        }
41        if(list == SATLIST || list == PROVIDERLIST)
42                cpmode->hidden = NO;
43        if(list == MAINBOUQUETLIST)
44        {
45                addmode->hidden = NO;
46                editmode->hidden = NO;
47        }
48
49        if(list == ALLCHANNEL || list == SATCHANNEL || list == PROVIDERCHANNEL || list == AZCHANNEL || list == BOUQUETCHANNEL)
50        {
51                if(chnode != NULL)
52                {
53                        startchannel = 1;
54                        setstartchannel->hidden = NO;
55                }
56                delstartchannel->hidden = NO;
57                editmode->hidden = NO;
58                sortmode->hidden = NO;
59        }
60
61        drawscreen(listedit, 0, 0);
62        addscreenrc(listedit, listbox);
63
64        while(1)
65        {
66                rcret = waitrc(listedit, 0, 0);
67       
68                if(rcret == getrcconfigint("rcexit", NULL)) break;
69                if(rcret == getrcconfigint("rcok", NULL) && listbox->select != NULL)
70                {
71                        if(ostrcmp(listbox->select->name, "movemode") == 0)
72                                ret = MVMODE;
73                        if(ostrcmp(listbox->select->name, "rmmode") == 0)
74                                ret = RMMODE;
75                        if(ostrcmp(listbox->select->name, "cpmode") == 0)
76                                ret = CPMODE;
77                        if(ostrcmp(listbox->select->name, "protectmode") == 0)
78                                ret = PROTECTMODE;
79                        if(ostrcmp(listbox->select->name, "editmode") == 0)
80                                ret = EDITMODE;
81                        if(ostrcmp(listbox->select->name, "addmode") == 0)
82                        {
83                                newentry = textinput(NULL, "bouquet");
84                                if(newentry != NULL)
85                                {
86                                        newentry = stringreplacechar(newentry, '#', '_');
87                                        tmpstr = ostrcat(newentry, "#", 0, 0);
88                                        tmpnr = oitoa(status.servicetype);
89                                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 0);
90                                        free(tmpnr); tmpnr = NULL;
91                                        tmpstr = ostrcat(tmpstr, "#", 1, 0);
92                                       
93                                        char* dname = realpath(getconfig("bouquetfile", NULL), NULL);
94                                        if(dname != NULL)
95                                        {
96                                                dname = dirname(dname);
97                                                tmpstr = ostrcat(tmpstr, dname, 1, 0);
98                                                free(dname); dname = NULL;
99
100                                                tmpstr = ostrcat(tmpstr, "/", 1, 0);
101                                                tmpstr = ostrcat(tmpstr, "bouquets.", 1, 0);
102                                                tmpstr = ostrcat(tmpstr, newentry, 1, 1);
103                                                addmainbouquet(tmpstr, 1, NULL);
104                                        }
105                                        free(tmpstr); tmpstr = NULL;
106                                }
107                        }
108                        if(startchannel == 1 && ostrcmp(listbox->select->name, "setstartchannel") == 0)
109                        {
110                                addconfig("startchannellist", getconfig("channellist", NULL));
111                                addconfigint("startserviceid", chnode->serviceid);
112                                addconfigllu("starttransponderid", chnode->transponderid);
113                                addconfig("startservicetype", getconfig("servicetype", NULL));
114                        }
115                        if(startchannel == 1 && ostrcmp(listbox->select->name, "delstartchannel") == 0)
116                        {
117                                delconfig("startchannellist");
118                                delconfig("startserviceid");
119                                delconfig("starttransponderid");
120                                delconfig("startservicetype");
121                        }
122                        if(ostrcmp(listbox->select->name, "sortmode") == 0)
123                        {
124                                drawscreen(load, 0, 0);
125                                if(list == BOUQUETCHANNEL)
126                                {
127                                        if(aktlist != NULL)
128                                        {
129                                                sortbouquet(&((struct mainbouquet*)aktlist)->bouquet);
130                                                recalcbouquetnr();
131                                        }
132                                }
133                                else
134                                        sortchannel();
135                                clearscreen(load);
136                        }
137                        break;
138                }
139        }
140
141        delownerrc(listedit);
142        clearscreen(listedit);
143
144        if(ret == NOMODE) status.moveblockcount = 0;
145        return ret;
146}
147
148#endif
Note: See TracBrowser for help on using the repository browser.