Example #1
0
void
search_complete(sp_search * search, Callback * st)
{
    PyObject *res, *results;
    PyGILState_STATE gstate;

    gstate = PyGILState_Ensure();
    results = Results_FromSpotify(search);
    res = PyObject_CallFunctionObjArgs(st->callback, results, st->userdata, NULL);
    if (!res)
        PyErr_WriteUnraisable(st->callback);
    delete_trampoline(st);
    Py_XDECREF(res);
    Py_DECREF(results);
    PyGILState_Release(gstate);
}
Example #2
0
void
Session_search_complete(sp_search *search, void *data)
{
    Callback *trampoline = (Callback *)data;
    debug_printf(">> search complete (%p, %p)", search, trampoline);

    if (trampoline == NULL)
        return;

    PyObject *result, *search_results;
    PyGILState_STATE gstate = PyGILState_Ensure();

    search_results = Results_FromSpotify(search, 1 /* add_ref */);
    result = PyObject_CallFunction(trampoline->callback, "NO", search_results,
                                   trampoline->userdata);

    if (result != NULL)
        Py_DECREF(result);
    else
        PyErr_WriteUnraisable(trampoline->callback);

    delete_trampoline(trampoline);
    PyGILState_Release(gstate);
}