00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef MMSRCPARSER_H_
00034 #define MMSRCPARSER_H_
00035
00036 #include "mmsconfig/mmsconfigdata.h"
00037 #include "mmstools/mmserror.h"
00038 #include <libxml/parser.h>
00039
00040 class MMSRcParser {
00041 private:
00042 typedef enum {
00043 THROUGH_GRAPHICS_MODE_NORMAL = 0,
00044 THROUGH_GRAPHICS_MODE_VIDEOLAYER,
00045 THROUGH_GRAPHICS_MODE_GRAPHICSLAYER
00046 } THROUGH_GRAPHICS_MODE;
00047
00048 MMSConfigDataGlobal global;
00049 MMSConfigDataDB configdb, datadb;
00050 MMSConfigDataGraphics graphics;
00051 MMSConfigDataLanguage language;
00052
00053 void checkVersion(xmlNode* node);
00054 void throughGlobal(xmlNode* node);
00055 void throughDBSettings(xmlNode* node);
00056
00057 void check_outputtype(MMSFBOutputType outputtype, xmlChar *parname, xmlChar *parvalue);
00058 void get_outputtype(THROUGH_GRAPHICS_MODE mode, xmlChar *parname, xmlChar *parvalue);
00059 void get_xres(THROUGH_GRAPHICS_MODE mode, xmlChar *parvalue);
00060 void get_yres(THROUGH_GRAPHICS_MODE mode, xmlChar *parvalue);
00061 void get_xpos(THROUGH_GRAPHICS_MODE mode, xmlChar *parvalue);
00062 void get_ypos(THROUGH_GRAPHICS_MODE mode, xmlChar *parvalue);
00063 void throughGraphics(xmlNode* node, THROUGH_GRAPHICS_MODE mode = THROUGH_GRAPHICS_MODE_NORMAL);
00064
00065 void throughLanguage(xmlNode* node);
00066 void throughFile(xmlNode* node);
00067
00068 void updateConfigParms(MMSConfigData *config, char *ap);
00069
00070 public:
00071 MMSRcParser();
00072 ~MMSRcParser();
00073
00074 void parseFile(string filename);
00075
00076 void getMMSRc(MMSConfigDataGlobal **global = NULL,
00077 MMSConfigDataDB **configdb = NULL,
00078 MMSConfigDataDB **datadb = NULL,
00079 MMSConfigDataGraphics **graphics = NULL,
00080 MMSConfigDataLanguage **language = NULL);
00081
00082 void getMMSRc(MMSConfigDataGlobal *global = NULL,
00083 MMSConfigDataDB *configdb = NULL,
00084 MMSConfigDataDB *datadb = NULL,
00085 MMSConfigDataGraphics *graphics = NULL,
00086 MMSConfigDataLanguage *language = NULL);
00087
00088 void updateConfig(MMSConfigData *config, string args, int argc = 0, char *argv[] = NULL);
00089 };
00090
00091 MMS_CREATEERROR(MMSRcParserError);
00092
00093 #endif