Merge branch 'bug_615_replace_rawfile' into experimental
[vuplus_dvbapp] / lib / mmi / mmi_ui.h
1 #ifndef __mmi_ui_h
2 #define __mmi_ui_h
3
4 #include <string>
5                 /* avoid warnigs :) */
6 #undef _POSIX_C_SOURCE
7 #define _POSIX_C_SOURCE 200112L
8 #include <lib/python/python.h>
9
10 #ifndef SWIG
11 struct slot_ui_data
12 {
13         std::string appName;
14         int state;
15         ePyObject mmiScreen;
16         int mmiTuplePos;
17         int mmiScreenReady;
18 };
19 #endif
20
21 class eMMI_UI: public Object
22 {
23         int m_max_slots;
24         virtual void stateChanged(int)=0;
25 protected:
26         slot_ui_data *slotdata;
27         eMMI_UI(int max_slots);
28         virtual ~eMMI_UI();
29 public:
30         int getState(int slot);
31         void setState(int slot, int state);
32         std::string getAppName(int slot);
33         void setAppName(int slot, const char *name);
34 #ifndef SWIG
35         virtual void setInit(int slot)=0;
36         virtual void setReset(int slot)=0;
37         virtual int startMMI(int slot)=0;
38         virtual int stopMMI(int slot)=0;
39         virtual int answerMenu(int slot, int answer)=0;
40         virtual int answerEnq(int slot, char *val)=0;
41         virtual int cancelEnq(int slot)=0;
42         virtual int getMMIState(int slot)=0;
43 #endif
44         int availableMMI(int slot);
45         PyObject *getMMIScreen(int slot);
46 #ifndef SWIG
47         int processMMIData(int slot, const unsigned char *tag, const void *data, int len);
48         int mmiScreenClose(int slot, int timeout);
49         int mmiScreenEnq(int slot, int blind, int answerLen, char *text);
50         int mmiScreenBegin(int slot, int listmenu);
51         int mmiScreenAddText(int slot, int type, char *value);
52         int mmiScreenFinish(int slot);
53         void mmiSessionDestroyed(int slot);
54 #endif
55 };
56
57 #endif