00001 #include <libxml/encoding.h>
00002 #include <libxml/xmlreader.h>
00003 #include <libxml/xmlwriter.h>
00004 #include "vapiOptions.h"
00005 #include "vapiOperation.h"
00006 #include "vapiXML.h"
00007 #include "vapiOptionsXML.h"
00008
00009 void
00010 vapiOptionsXMLGetOptionsOperation (xmlTextWriter * xmlOutput,
00011 vOptionsSettings * OptionsSettings,
00012 vOptions * Options)
00013 {
00014 if (((vEffectOptions *) Options->CustomOptions)->times > 1)
00015 {
00016 xmlTextWriterStartElement (xmlOutput, BAD_CAST "option");
00017
00018 xmlTextWriterWriteAttribute (xmlOutput, BAD_CAST "type",
00019 BAD_CAST "times");
00020 xmlTextWriterWriteFormatString (xmlOutput, "%d",
00021 ((vEffectOptions *)
00022 Options->CustomOptions)->
00023 times);
00024
00025 xmlTextWriterEndElement (xmlOutput);
00026 }
00027
00028
00029 if (((vEffectOptions *) Options->CustomOptions)->original)
00030 {
00031 xmlTextWriterStartElement (xmlOutput, BAD_CAST "option");
00032 xmlTextWriterWriteAttribute (xmlOutput, BAD_CAST "type",
00033 BAD_CAST "original");
00034 xmlTextWriterWriteString (xmlOutput, BAD_CAST "vTRUE");
00035 xmlTextWriterEndElement (xmlOutput);
00036 }
00037 }
00038
00039 int
00040 vapiOptionsXMLSetOptionsOperation (xmlTextReader * xmlInput,
00041 vOptions * Options)
00042 {
00043 int ret=1, bk=1;
00044 if (strcmp
00045 ((char *)
00046 xmlTextReaderGetAttribute (xmlInput, BAD_CAST "type"),
00047 "times") == 0)
00048 {
00049 xmlTextReaderRead (xmlInput);
00050 v_debug ("node times: %d.",
00051 atoi ((char *) xmlTextReaderValue (xmlInput)));
00052 ((vEffectOptions *) Options->CustomOptions)->
00053 times = atoi ((char *) xmlTextReaderValue (xmlInput));
00054 ret = vapiXMLNextElementNamed (xmlInput, "option");
00055 }
00056
00057 bk = vapiOptionsXMLCheckOption (xmlInput, ret);
00058
00059 if (bk == 0 || bk == -1)
00060 {
00061 return bk;
00062 }
00063 if (strcmp
00064 ((char *)
00065 xmlTextReaderGetAttribute (xmlInput, BAD_CAST "type"),
00066 "original") == 0)
00067 {
00068 xmlTextReaderRead (xmlInput);
00069 v_debug ("original: %s", xmlTextReaderValue (xmlInput));
00070 if (!strcmp ((char *) xmlTextReaderValue (xmlInput), "vTRUE"))
00071 {
00072 ((vEffectOptions *) Options->
00073 CustomOptions)->original = vTRUE;
00074 }
00075 else
00076 {
00077 ((vEffectOptions *) Options->
00078 CustomOptions)->original = vFALSE;
00079 }
00080 ret = vapiXMLNextElementNamed (xmlInput, "option");
00081 }
00082 bk = vapiOptionsXMLCheckOption (xmlInput, ret);
00083
00084 return bk;
00085 }