readXml.cpp 4.28 KB
/* 
 * File:   lerXml.cpp
 * Author: felipe
 * 
 * Created on 29 de Março de 2010, 15:52
 */

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <sstream>
#include <fstream>

#include "readXml.h"
#include <algorithm>

ReadXml::ReadXml() {
    regrasCarregadas = false;
    profundidadeRegraAtual = 0;
    inicioRegraAtual = NULL;
    rulesAtual = new vector < XmlElement *> ();
}

ReadXml::~ReadXml() {
    rulesAtual->clear();
    delete rulesAtual;
}

void ReadXml::Leitura() {
    string str;
    XmlElement * tmp;
    XmlAttribute * atr;

    //arq = fopen("/home/felipe/Python/arquivo_dados.txt", "w");
    XmlDocument doc("vlibras_user/vlibras-core/data/configuracoes.xml");

    if (!doc.LoadFile()) {
        printf("Erro ao carregar o XML das aplicacoes -> %s\n", doc.ErrorDesc());

    }

    XmlElement *xml = doc.RootElement()->FirstChildElement("pid");
    pid = xml->GetText();
    //cout << "pid: " << pid << endl;

    xml = xml->NextSiblingElement();
    resolucao = xml->GetText();

    //cout << "Resolucao: " << resolucao << endl;

    xml = xml->NextSiblingElement();

    tmp = xml->FirstChildElement();
    DPH = tmp->GetText();

    //cout << "DPH: " << DPH << endl;

    tmp = tmp->NextSiblingElement();
    DPV = tmp->GetText();

    //cout << "DPV: " << DPV << endl;

    tmp = tmp->NextSiblingElement();
    DFW = tmp->GetText();

    //cout << "DFW: " << DFW << endl;

    tmp = tmp->NextSiblingElement();
    DFH = tmp->GetText();

    //cout << "DFH: " << DFH << endl;

    xml = xml->NextSiblingElement();
    versao = xml->GetText();

    //cout << "Versao: " << versao << endl;

    xml = xml->NextSiblingElement();
    str = xml->Value();

    if (str.compare("pidCC") == 0) {
        pidCC = xml->GetText();
        //cout << "PidCC: " << pidCC << endl;
        xml = xml->NextSiblingElement();
    }
    str = xml->Value();
    atr = xml->FirstAttribute();
    tipo = atr->Value();

    if (tipo.compare("MPEG-2 TS") == 0) {
        //cout << "Tipo: " << tipo << endl;

        tmp = xml->FirstChildElement();
        atr = tmp->FirstAttribute();
        tipo = atr->Value();
        porta = tmp->GetText();
        //cout << "Porta: " << porta << endl;
        //cout << "Tipo: " << tipo << endl;

    }

    if (tipo.compare("RAW") == 0) {

        tmp = xml->FirstChildElement();

        porta = tmp->GetText();
        //cout << "Porta: " << porta << endl;
        //cout << "Tipo: " << tipo << endl;

    }

    //cout << "Tipo: " << tipo << endl;

    xml = xml->NextSiblingElement();
    tmp = xml->FirstChildElement();
    ip = tmp->GetText();

    //cout << "IP: " << ip << endl;

    tmp = tmp->NextSiblingElement();
    portaOut = tmp->GetText();

    //cout << "Porta: " << portaOut << endl;
}

int ReadXml::getPid() {
    stringstream st;
    int p;

    st << pid << endl;
    st >> p;

    return p;
}

int ReadXml::getDPH() {
    stringstream st;
    int p;

    st << DPH << endl;
    st >> p;

    return p;
}

int ReadXml::getDPV() {
    stringstream st;
    int p;

    st << DPV << endl;
    st >> p;

    return p;
}

int ReadXml::getDFW() {
    stringstream st;
    int p;

    st << DFW << endl;
    st >> p;

    return p;
}

int ReadXml::getDFH() {
    stringstream st;
    int p;

    st << DFH << endl;
    st >> p;

    return p;
}

int ReadXml::getVersao() {
    stringstream st;
    int p;

    st << versao << endl;
    st >> p;

    return p;
}

int ReadXml::getPidCC() {
    stringstream st;
    int p;

    st << pidCC << endl;
    st >> p;

    return p;
}

int ReadXml::getPorta() {
    stringstream st;
    int p;
    //cout << "Porta convertida: " << porta << endl;
    st << porta << endl;
    st >> p;

    //cout << "Porta convertida: " << p << endl;
    return p;
}

string ReadXml::getTipo() {
    return tipo;
}

string ReadXml::getResolucao() {
    return resolucao;
}

int ReadXml::getPortaOut() {
    stringstream st;
    int p;

    st << portaOut << endl;
    st >> p;

    return p;
}

string ReadXml::getIp() {
    return ip;
}

int ReadXml::setProfundidade(int p){
	profundidadeRegraAtual = p;

}

/*
 * aplicarRule - metodo para aplicar a regra correta para a sequencia
 *               atual de glosas
 *
 * Params:
 * frase - vetor contendo a frase completa
 * posInicial - indicacao do inicio do trecho onde a regra sera aplicada
 *
 * Ultima modificacao: 17/03/2011
 */