Index: quisk-3.5.11/charleston/chas_rx1.c
===================================================================
--- quisk-3.5.11.orig/charleston/chas_rx1.c 2012-01-30 21:54:33.000000000 -0500
+++ quisk-3.5.11/charleston/chas_rx1.c 2012-01-30 23:35:11.000000000 -0500
@@ -11,9 +11,14 @@
#include <unistd.h> // NOT NEEDED for SDR-IQ support
#include <complex.h> // needed for SDR-IQ support
#include <math.h> // TF added for Charleston Rx1 support
+#define SOUND_MODULE 1
#include "quisk.h"
#include "chas_rx1.h"
+static ty_sample_start *pt_sample_start;
+static ty_sample_stop *pt_sample_stop;
+static ty_sample_read *pt_sample_read;
+
#define DEBUG 0
#define NAME_SIZE 16
@@ -820,9 +825,9 @@
return NULL;
// Record our C-language Start/Stop/Read functions for use by sound.c.
- pt_sample_start = &quisk_start_chas_rx1;
- pt_sample_stop = &quisk_stop_chas_rx1;
- pt_sample_read = &quisk_read_chas_rx1;
+ *pt_sample_start = &quisk_start_chas_rx1;
+ *pt_sample_stop = &quisk_stop_chas_rx1;
+ *pt_sample_read = &quisk_read_chas_rx1;
quisk_open_chas_rx1(buf, 128); // Charleston RX1 specific
return PyString_FromString(buf); // return a string message
@@ -934,5 +939,40 @@
// Initialization, and registration of public symbol "initchas_rx1":
PyMODINIT_FUNC initchas_rx1 (void)
{
+ PyObject *c_api_object;
+ PyObject *module;
+
+ module = PyImport_ImportModule("quisk._quisk");
+ if (module == NULL)
+ return;
+
+ c_api_object = PyObject_GetAttrString(module, "_C_sample_start");
+ if (c_api_object == NULL) {
+ Py_DECREF(module);
+ return;
+ }
+ if (PyCObject_Check(c_api_object))
+ pt_sample_start = (ty_sample_start *)PyCObject_AsVoidPtr(c_api_object);
+
+ c_api_object = PyObject_GetAttrString(module, "_C_sample_stop");
+ if (c_api_object == NULL) {
+ Py_DECREF(module);
+ return;
+ }
+ if (PyCObject_Check(c_api_object))
+ pt_sample_stop = (ty_sample_stop *)PyCObject_AsVoidPtr(c_api_object);
+
+ c_api_object = PyObject_GetAttrString(module, "_C_sample_read");
+ if (c_api_object == NULL) {
+ Py_DECREF(module);
+ return;
+ }
+ if (PyCObject_Check(c_api_object))
+ pt_sample_read = (ty_sample_read *)PyCObject_AsVoidPtr(c_api_object);
+
+ Py_DECREF(c_api_object);
+ Py_DECREF(module);
+
Py_InitModule ("chas_rx1", QuiskMethods);
+ return;
}