Пример #1
0
BrowseModelPrivate::BrowseModelPrivate(ServiceProxyCall *call,
                                       const QString  &protocolInfo,
                                       BrowseModel *parent)
    : QAbstractListModel(parent)
    , m_currentOffset(0)
    , m_busy(true)
    , m_done(false)
    , m_protocolInfo(protocolInfo)
    , m_lastIndex(-1)
    , m_call(call)
    , m_settings()
    , q_ptr(parent)
{
    QHash<int, QByteArray> roles;

    roles[BrowseRoleTitle] = "title";
    roles[BrowseRoleId] = "upnpId";
    roles[BrowseRoleUPnPClass] = "upnpClass";
    roles[BrowseRoleIcon] = "icon";
    roles[BrowseRoleType] = "type";
    roles[BrowseRoleDetail] = "detail";
    roles[BrowseRoleURI] = "uri";
    roles[BrowseRoleMetaData] = "metadata";
    roles[BrowseRoleFilter] = "filter";
    setRoleNames(roles);

    qDebug() << "Created browse model";
    if (m_call != 0) {
        connect(m_call, SIGNAL(ready()), SLOT(onCallReady()));
        m_call->setParent(this);
    }

    connect(&m_settings, SIGNAL(filterInDetailsChanged()), SLOT(onFilterInDetailsChanged()));
}
Пример #2
0
void Sim900::process_line(char *line) {
    static int smsReceived;
    
    if (prefix("+CMT: ", line)) {
        smsReceived = true;
        powered = true;
        
        char *tmp = (char *)malloc((strlen(line) - 6 + 1) * sizeof(char));
        
        memcpy(tmp, &line[6], strlen(line) - 6 + 1);
        
        char **sms = split(tmp);
        
        strcpy(lastSMSFrom, sms[0]);
        free(sms);
        free(tmp);
    } else if (prefix("+CLIP: ", line)) {
        powered = true;
        char *tmp = (char *)malloc((strlen(line) - 7 + 1) * sizeof(char));
        
        memcpy(tmp, &line[7], strlen(line) - 7 + 1);
        
        char **clip = split(tmp);
        
        strcpy(callerId, clip[0]);
        
        free(clip);
        free(tmp);
    } else {
        if (strncmp(line, "OK", 2) == 0) {
            okReceived = true;
            errorReceived = false;
            powered = true;
        } else if (strncmp(line, "ERROR", 5) == 0) {
            okReceived = false;
            errorReceived = true;
            powered = true;
        } else if (strncmp(line, "RING", 4) == 0) {
            okReceived = false;
            errorReceived = true;
            powered = true;
            if (onRing) {
                if (callerId && callerId[0] == '\0') {
                    onRing(NULL);
                } else {
                    onRing(callerId);
                }
            }
        } else if (strncmp(line, "NO CARRIER", 10) == 0) {
            okReceived = false;
            errorReceived = true;
            powered = true;
            if (onNoCarrier) {
                onNoCarrier();
            }
        } else if (strncmp(line, "Call Ready", 10) == 0) {
            okReceived = false;
            errorReceived = false;
            ready = true;
            powered = true;
            if (onCallReady) {
                onCallReady();
            }
        } else if (strncmp(line, "NORMAL POWER DOWN", 10) == 0) {
            okReceived = false;
            errorReceived = false;
            ready = false;
            powered = false;
            if (onPowerDown) {
                onPowerDown();
            }
        } else {
            if (smsReceived) {
                strcpy(lastSMSText, line);

                if (onSMS) {
                    onSMS(lastSMSFrom, lastSMSText);
                }

                smsReceived = false;
            }
            
            okReceived = false;
            errorReceived = false;
            powered = true;
        }
    }
}