Skip to content
Snippets Groups Projects
Commit 421aac43 authored by Cedric Roux's avatar Cedric Roux
Browse files

add skip_delay parameter to the framelog

not very clean, might be reworked at some point
the idea is to compute much less 'log' than what
was done
parent 30ffc8d2
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,11 @@ struct framelog {
float *x;
float *buffer;
int blength;
int skip_delay; /* one frame over 'skip_delay' is truly processed
* 0 to disable (process all data)
*/
int skip_current; /* internal data for the skip mechanism */
int skip_on; /* internal data for the skip mechanism */
};
static void _event(void *p, event e)
......@@ -30,6 +35,18 @@ static void _event(void *p, event e)
buffer = e.e[l->buffer_arg].b;
bsize = e.e[l->buffer_arg].bsize;
if (l->skip_delay != 0) {
if (subframe == 0) {
l->skip_current++;
if (l->skip_current >= l->skip_delay) {
l->skip_on = 0;
l->skip_current = 0;
} else
l->skip_on = 1;
}
}
if (l->skip_on) return;
nsamples = bsize / (2*sizeof(int16_t));
if (l->blength != nsamples * 10) {
......@@ -110,3 +127,16 @@ logger *new_framelog(event_handler *h, void *database,
return ret;
}
/****************************************************************************/
/* public functions */
/****************************************************************************/
void framelog_set_skip(logger *_this, int skip_delay)
{
struct framelog *l = _this;
/* TODO: protect with a lock? */
l->skip_delay = skip_delay;
l->skip_current = 0;
l->skip_on = 0;
}
......@@ -12,6 +12,8 @@ logger *new_ttilog(void *event_handler, void *database,
char *data_varname, int convert_to_dB);
logger *new_timelog(void *event_handler, void *database, char *event_name);
void framelog_set_skip(logger *_this, int skip_delay);
#include "view/view.h"
void logger_add_view(logger *l, view *v);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment