ebba9a6277306c814ca56e156e1338a64e8d76cd
[vuplus_dvbapp] / lib / python / Plugins / Extensions / SocketMMI / src / socket_mmi.h
1 #ifndef __socket_mmi_h
2 #define __socket_mmi_h
3
4 #include <string>
5 #include <lib/mmi/mmi_ui.h>
6 #include <lib/python/connections.h>
7
8 #ifndef SWIG
9 #include <lib/base/buffer.h>
10 #include <lib/base/ebase.h>
11 #include <sys/socket.h>
12 #include <sys/types.h>
13 #include <sys/un.h>
14 class eSocketMMIHandler: public Object
15 {
16         eIOBuffer buffer;
17         int listenfd, connfd, clilen;
18         struct sockaddr_un servaddr;
19         eSocketNotifier *listensn, *connsn;
20         void listenDataAvail(int what);
21         void connDataAvail(int what);
22         void closeConn();
23         const char *sockname;
24         char *name;
25 public:
26         const char *getName() const { return name; }
27         Signal4<int, int, const unsigned char*, const void *, int> mmi_progress;
28         int send_to_mmisock( void *, size_t );
29         bool connected() { return !!connsn; }
30         eSocketMMIHandler();
31         ~eSocketMMIHandler();
32 };
33 #endif
34
35 class eSocket_UI: public eMMI_UI
36 {
37         eSocketMMIHandler handler;
38         static eSocket_UI *instance;
39 #ifdef SWIG
40         eSocket_UI();
41         ~eSocket_UI();
42 #endif
43         void stateChanged(int val) { socketStateChanged(val); }
44 public:
45         PSignal1<void,int> socketStateChanged;
46 #ifndef SWIG
47         eSocket_UI();
48 #endif
49         static eSocket_UI *getInstance();
50         void setInit(int slot);
51         void setReset(int slot);
52         int startMMI(int slot);
53         int stopMMI(int slot);
54         int answerMenu(int slot, int answer);
55         int answerEnq(int slot, char *val);
56         int cancelEnq(int slot);
57         int getState(int slot);
58         int getMMIState(int slot);
59         const char *getName(int) const { return handler.getName() ? handler.getName() : "MMI Socket"; }
60 };
61
62 #endif