trunk 20080912
[gitenigma.git] / src / enigma_mmisocket.h
blob35bc8fd7d17368b461faebba4aa6d392b213bf85
1 #ifndef __ENIGMA_MMISOCKET_H_
2 #define __ENIGMA_MMISOCKET_H_
4 #include <sys/socket.h>
5 #include <sys/types.h>
6 #include <sys/un.h>
7 #include <map>
8 #include <lib/dvb/dvbservice.h>
9 #include <enigma_mmi.h>
10 #include <enigma_main.h>
11 #include <enigma_setup.h>
13 class eSocketMMIHandler: public Object
15 int listenfd, connfd, clilen;
16 struct sockaddr_un servaddr;
17 eSocketNotifier *listensn, *connsn;
18 void listenDataAvail(int what);
19 void connDataAvail(int what);
20 void initiateMMI();
21 void setupOpened( eSetupWindow *setup, int *entrynum );
22 void closeConn();
23 const char *sockname;
24 char *name;
25 public:
26 const char *getName() const { return name; }
27 Signal2<void, const char*, int> mmi_progress;
28 int send_to_mmisock( void *, size_t );
29 eSocketMMIHandler();
30 ~eSocketMMIHandler();
33 class eSocketMMI : public enigmaMMI
35 eSocketMMIHandler *handler;
36 void beginExec();
37 void sendAnswer( AnswerType ans, int param, unsigned char *data );
38 static std::map<eSocketMMIHandler*,eSocketMMI*> exist;
39 public:
40 static eSocketMMI *getInstance( eSocketMMIHandler *handler );
41 eSocketMMI(eSocketMMIHandler *handler);
44 #endif // __ENIGMA_MMISOCKET_H_