예제 #1
0
int Contact::connectListener(PyObject* pMotionCallback, PyObject* pUpCallback)
{
    avgDeprecationWarning("1.8", "Contact.connectListener()", "Contact.subscribe()");
    s_LastListenerID++;
    pair<int, Listener> val = 
            pair<int, Listener>(s_LastListenerID, Listener(pMotionCallback, pUpCallback));
    m_ListenerMap.insert(val);
    return s_LastListenerID;
}
예제 #2
0
파일: SoundNode.cpp 프로젝트: hoodie/libavg
void SoundNode::setEOFCallback(PyObject * pEOFCallback)
{
    if (m_pEOFCallback) {
        Py_DECREF(m_pEOFCallback);
    }
    if (pEOFCallback == Py_None) {
        m_pEOFCallback = 0;
    } else {
        avgDeprecationWarning("1.8", "SoundNode.setEOFCallback()", 
                "Node.subscribe(END_OF_FILE)");
        Py_INCREF(pEOFCallback);
        m_pEOFCallback = pEOFCallback;
    }
}
예제 #3
0
void Contact::disconnectListener(int id)
{
    avgDeprecationWarning("1.8", "Contact.disconnectListener()", 
            "Contact.unsubscribe()");
    map<int, Listener>::iterator it = m_ListenerMap.find(id);
    if (it == m_ListenerMap.end() || (m_CurListenerID == id && m_bCurListenerIsDead)) {
        throw Exception(AVG_ERR_INVALID_ARGS, 
                "Contact.disconnectListener: id " + toString(id) + " is not connected.");
    }
    if (m_bSendingEvents && m_CurListenerID == id) {
        m_bCurListenerIsDead = true;
    } else {
        m_ListenerMap.erase(it);
    }
}