static PyObject *cboodle_new_sample(PyObject *self, PyObject *args) { sample_t *samp; if (!PyArg_ParseTuple(args, ":new_sample")) return NULL; samp = sample_create(); return Py_BuildValue("s#", (void *)&samp, sizeof(sample_t *)); }
VALUE gps_initialize(VALUE self, VALUE serial) { PhidgetInfo *info = device_info(self); GpsInfo *gps_info = ALLOC(GpsInfo); memset(gps_info, 0, sizeof(GpsInfo)); gps_info->sample_rate = sample_create(); CPhidgetGPSHandle gps = 0; ensure(CPhidgetGPS_create(&gps)); ensure(CPhidgetGPS_set_OnPositionChange_Handler( gps, gps_on_position_change, info)); ensure(CPhidgetGPS_set_OnPositionFixStatusChange_Handler(gps, gps_on_fix_change, info)); info->handle = (CPhidgetHandle)gps; info->on_type_detach = gps_on_detach; info->on_type_free = gps_on_free; info->type_info = gps_info; return rb_call_super(1, &serial); }