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;
|
GSList *plugins, *l;
|
||||||
struct device_plugin *plugin;
|
struct device_plugin *plugin;
|
||||||
int num_devices, num_probes, i;
|
int num_devices, num_probes, i, probe_type;
|
||||||
|
|
||||||
plugins = list_hwplugins();
|
plugins = list_hwplugins();
|
||||||
|
|
||||||
|
@ -46,7 +46,13 @@ void device_scan(void)
|
||||||
num_probes
|
num_probes
|
||||||
= (int)(unsigned long)plugin->get_device_info(i,
|
= (int)(unsigned long)plugin->get_device_info(i,
|
||||||
DI_NUM_PROBES);
|
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,
|
struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
||||||
int num_probes)
|
int num_probes, int probe_type)
|
||||||
{
|
{
|
||||||
struct device *device;
|
struct device *device;
|
||||||
int i;
|
int i;
|
||||||
|
@ -78,6 +84,7 @@ struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
||||||
device = g_malloc0(sizeof(struct device));
|
device = g_malloc0(sizeof(struct device));
|
||||||
device->plugin = plugin;
|
device->plugin = plugin;
|
||||||
device->plugin_index = plugin_index;
|
device->plugin_index = plugin_index;
|
||||||
|
device->probe_type = probe_type;
|
||||||
devices = g_slist_append(devices, device);
|
devices = g_slist_append(devices, device);
|
||||||
|
|
||||||
for (i = 0; i < num_probes; i++) {
|
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:
|
case DI_PATTERNMODES:
|
||||||
info = &patternmodes;
|
info = &patternmodes;
|
||||||
break;
|
break;
|
||||||
|
#ifdef DEMO_ANALOG
|
||||||
|
case DI_PROBE_TYPE:
|
||||||
|
info = GINT_TO_POINTER(PROBE_TYPE_ANALOG);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
|
|
@ -51,7 +51,7 @@ static int init(struct input *in)
|
||||||
num_probes = DEFAULT_NUM_PROBES;
|
num_probes = DEFAULT_NUM_PROBES;
|
||||||
|
|
||||||
/* create a virtual device */
|
/* 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;
|
return SIGROK_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ void device_scan(void);
|
||||||
void device_close_all(void);
|
void device_close_all(void);
|
||||||
GSList *device_list(void);
|
GSList *device_list(void);
|
||||||
struct device *device_new(struct device_plugin *plugin, int plugin_index,
|
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_clear(struct device *device);
|
||||||
void device_destroy(struct device *dev);
|
void device_destroy(struct device *dev);
|
||||||
|
|
||||||
|
|
4
sigrok.h
4
sigrok.h
|
@ -190,6 +190,7 @@ struct device {
|
||||||
struct device_plugin *plugin;
|
struct device_plugin *plugin;
|
||||||
/* A plugin may handle multiple devices of the same type */
|
/* A plugin may handle multiple devices of the same type */
|
||||||
int plugin_index;
|
int plugin_index;
|
||||||
|
uint8_t probe_type;
|
||||||
/* List of struct probe* */
|
/* List of struct probe* */
|
||||||
GSList *probes;
|
GSList *probes;
|
||||||
/* Data acquired by this device, if any */
|
/* Data acquired by this device, if any */
|
||||||
|
@ -203,7 +204,6 @@ enum {
|
||||||
|
|
||||||
struct probe {
|
struct probe {
|
||||||
int index;
|
int index;
|
||||||
int type;
|
|
||||||
gboolean enabled;
|
gboolean enabled;
|
||||||
char *name;
|
char *name;
|
||||||
char *trigger;
|
char *trigger;
|
||||||
|
@ -297,6 +297,8 @@ enum {
|
||||||
DI_CUR_SAMPLERATE,
|
DI_CUR_SAMPLERATE,
|
||||||
/* Supported pattern generator modes */
|
/* Supported pattern generator modes */
|
||||||
DI_PATTERNMODES,
|
DI_PATTERNMODES,
|
||||||
|
/* Probes type, DF_ANALOG needs this to be PROBE_TYPE_ANALOG */
|
||||||
|
DI_PROBE_TYPE,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue