re-enable filter and datastore for DF_LOGIC
This definitely isn't the proper fix, but it should allow DF_LOGIC and DF_ANALOG to coexist.
This commit is contained in:
parent
81bbdf6a6a
commit
62eeeb171b
13
device.c
13
device.c
|
@ -29,7 +29,7 @@ void device_scan(void)
|
|||
{
|
||||
GSList *plugins, *l;
|
||||
struct device_plugin *plugin;
|
||||
int num_devices, num_probes, i;
|
||||
int num_devices, num_probes, i, probe_type;
|
||||
|
||||
plugins = list_hwplugins();
|
||||
|
||||
|
@ -46,7 +46,13 @@ void device_scan(void)
|
|||
num_probes
|
||||
= (int)(unsigned long)plugin->get_device_info(i,
|
||||
DI_NUM_PROBES);
|
||||
device_new(plugin, i, num_probes);
|
||||
probe_type = (int)(unsigned long)
|
||||
plugin->get_device_info(i, DI_PROBE_TYPE);
|
||||
|
||||
if (probe_type != PROBE_TYPE_ANALOG)
|
||||
probe_type = PROBE_TYPE_LOGIC;
|
||||
|
||||
device_new(plugin, i, num_probes, probe_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +75,7 @@ GSList *device_list(void)
|
|||
}
|
||||
|
||||
struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
||||
int num_probes)
|
||||
int num_probes, int probe_type)
|
||||
{
|
||||
struct device *device;
|
||||
int i;
|
||||
|
@ -78,6 +84,7 @@ struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
|||
device = g_malloc0(sizeof(struct device));
|
||||
device->plugin = plugin;
|
||||
device->plugin_index = plugin_index;
|
||||
device->probe_type = probe_type;
|
||||
devices = g_slist_append(devices, device);
|
||||
|
||||
for (i = 0; i < num_probes; i++) {
|
||||
|
|
|
@ -163,6 +163,11 @@ static void *hw_get_device_info(int device_index, int device_info_id)
|
|||
case DI_PATTERNMODES:
|
||||
info = &patternmodes;
|
||||
break;
|
||||
#ifdef DEMO_ANALOG
|
||||
case DI_PROBE_TYPE:
|
||||
info = GINT_TO_POINTER(PROBE_TYPE_ANALOG);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
return info;
|
||||
|
|
|
@ -51,7 +51,7 @@ static int init(struct input *in)
|
|||
num_probes = DEFAULT_NUM_PROBES;
|
||||
|
||||
/* create a virtual device */
|
||||
in->vdevice = device_new(NULL, 0, num_probes);
|
||||
in->vdevice = device_new(NULL, 0, num_probes, PROBE_TYPE_LOGIC);
|
||||
|
||||
return SIGROK_OK;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ void device_scan(void);
|
|||
void device_close_all(void);
|
||||
GSList *device_list(void);
|
||||
struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
||||
int num_probes);
|
||||
int num_probes, int probe_type);
|
||||
void device_clear(struct device *device);
|
||||
void device_destroy(struct device *dev);
|
||||
|
||||
|
|
4
sigrok.h
4
sigrok.h
|
@ -190,6 +190,7 @@ struct device {
|
|||
struct device_plugin *plugin;
|
||||
/* A plugin may handle multiple devices of the same type */
|
||||
int plugin_index;
|
||||
uint8_t probe_type;
|
||||
/* List of struct probe* */
|
||||
GSList *probes;
|
||||
/* Data acquired by this device, if any */
|
||||
|
@ -203,7 +204,6 @@ enum {
|
|||
|
||||
struct probe {
|
||||
int index;
|
||||
int type;
|
||||
gboolean enabled;
|
||||
char *name;
|
||||
char *trigger;
|
||||
|
@ -297,6 +297,8 @@ enum {
|
|||
DI_CUR_SAMPLERATE,
|
||||
/* Supported pattern generator modes */
|
||||
DI_PATTERNMODES,
|
||||
/* Probes type, DF_ANALOG needs this to be PROBE_TYPE_ANALOG */
|
||||
DI_PROBE_TYPE,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue