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; }
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; } }
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); } }