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:
Daniel Ribeiro 2011-01-21 18:04:09 -02:00
parent 81bbdf6a6a
commit 62eeeb171b
5 changed files with 20 additions and 6 deletions

View File

@ -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++) {

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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,
};
/*