demo: optionally accept frame limit spec at scan time
Allow developers to specify the (default) number of frames at compile time (default to "off" as before). Accept the frame limit spec at scan() time as well. This is useful when applications don't run config_set() at runtime. Tested with: $ pulseview -d demo:logic_channels=0:analog_channels=1:limit_frames=4
This commit is contained in:
parent
fb193945b6
commit
53ea24610e
|
@ -50,6 +50,7 @@ static const char *logic_pattern_str[] = {
|
|||
static const uint32_t scanopts[] = {
|
||||
SR_CONF_NUM_LOGIC_CHANNELS,
|
||||
SR_CONF_NUM_ANALOG_CHANNELS,
|
||||
SR_CONF_LIMIT_FRAMES,
|
||||
};
|
||||
|
||||
static const uint32_t drvopts[] = {
|
||||
|
@ -97,10 +98,12 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
|
|||
struct analog_gen *ag;
|
||||
GSList *l;
|
||||
int num_logic_channels, num_analog_channels, pattern, i;
|
||||
uint64_t limit_frames;
|
||||
char channel_name[16];
|
||||
|
||||
num_logic_channels = DEFAULT_NUM_LOGIC_CHANNELS;
|
||||
num_analog_channels = DEFAULT_NUM_ANALOG_CHANNELS;
|
||||
limit_frames = DEFAULT_LIMIT_FRAMES;
|
||||
for (l = options; l; l = l->next) {
|
||||
src = l->data;
|
||||
switch (src->key) {
|
||||
|
@ -110,6 +113,9 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
|
|||
case SR_CONF_NUM_ANALOG_CHANNELS:
|
||||
num_analog_channels = g_variant_get_int32(src->data);
|
||||
break;
|
||||
case SR_CONF_LIMIT_FRAMES:
|
||||
limit_frames = g_variant_get_uint64(src->data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -126,6 +132,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
|
|||
devc->all_logic_channels_mask--;
|
||||
devc->logic_pattern = DEFAULT_LOGIC_PATTERN;
|
||||
devc->num_analog_channels = num_analog_channels;
|
||||
devc->limit_frames = limit_frames;
|
||||
|
||||
if (num_logic_channels > 0) {
|
||||
/* Logic channels, all in one channel group. */
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#define ANALOG_BUFSIZE 4096
|
||||
/* This is a development feature: it starts a new frame every n samples. */
|
||||
#define SAMPLES_PER_FRAME 1000UL
|
||||
#define DEFAULT_LIMIT_FRAMES 0
|
||||
|
||||
/* Logic patterns we can generate. */
|
||||
enum logic_pattern_type {
|
||||
|
|
Loading…
Reference in New Issue