visto che l' acquisizione viene elaborata tramite irrecord, sono andato a curiosare li, e quindi
in irrecord.c
Codice: Seleziona tutto
while(1)
{
data=hw.readdata(10000000);
if(!data)
{
fprintf(stderr,"%s: no data for 10 secs, aborting\n",
progname);
retval=0;
break;
}
Codice: Seleziona tutto
struct hardware
{
char *device;
int fd;
unsigned long features;
unsigned long send_mode;
unsigned long rec_mode;
unsigned long code_length;
int (*init_func)(void);
int (*deinit_func)(void);
int (*send_func)(struct ir_remote *remote,struct ir_ncode *code);
char *(*rec_func)(struct ir_remote *remotes);
int (*decode_func)(struct ir_remote *remote,
ir_code *prep,ir_code *codep,ir_code *postp,
int *repeat_flag,
lirc_t *min_remaining_gapp,
lirc_t *max_remaining_gapp);
int (*ioctl_func)(unsigned int cmd, void *arg);
lirc_t (*readdata)(lirc_t timeout);
char *name;
unsigned int resolution;
};
extern struct hardware hw;
cio' che non riesco a capire, e' cosa in realta faccia
hw.readdata(10000000);
e come si legga
lirc_t (*readdata)(lirc_t timeout);
dovrebbe esser qualcosa che restituisce un valore di tipo lirc_t, effettuando un casting (*readdata) passando come argomento un valore di tipo lirc_t, lo stesso che restituisce....
diciamo tante idee ben confuse?!?!?
ho notato la quasi totale assenza di commenti...... sono superflui visto il codice e sono io che sono ignorante, o se li sono dimenticati??