QVariantMap RemoteControl::get_conference_room_infos()
{
    QVariantMap args;
    XletConference* conference_xlet = this->get_xlet<XletConference>("conference");
    QAbstractItemModel* conflist_model = conference_xlet->findChild<QAbstractItemModel*>("conflist_model");

    args["conference_xlet"] = conference_xlet != NULL;
    args["conflist_model"] = conflist_model != NULL;

    QVariantList content;
    QVariantMap header_data;
    header_data["name"] = ConfListModel::NAME;
    header_data["number"] = ConfListModel::NUMBER;
    header_data["pin_required"] = ConfListModel::PIN_REQUIRED;
    header_data["member_count"] = ConfListModel::MEMBER_COUNT;
    header_data["started_since"] = ConfListModel::STARTED_SINCE;

    int nb_rows = conflist_model->rowCount(QModelIndex());
    for (int row = 0; row < nb_rows; row++) {
        QVariantMap header_value;
        QVariantMap::const_iterator i;
        for(i = header_data.begin(); i != header_data.end(); ++i) {
            header_value[i.key()] = getValueInModel(conflist_model, row, i.value().toInt());
        }
        content.append(header_value);
    }
    args["content"] = content;

    return args;
}
QVariantMap RemoteControl::get_switchboard_infos()
{
    QVariantMap args;

    Directory *xlet = this->get_xlet<Directory>("directory");
    QAbstractItemModel *model = xlet->ui.entry_table->model();

    QVariantList content;

    int nb_rows = model->rowCount();
    int nb_cols = model->columnCount();
    for (int row = 0; row < nb_rows; row++) {
        QVariantMap header_value;
        for (int col = 0; col < nb_cols; col++) {
            header_value[getHeaderValueInModel(model, col)] = getValueInModel(model, row, col);
        }
        content.append(header_value);
    }
    args["content"] = content;

    return args;
}