X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=hardware%2Falsa%2Falsa.c;h=b61a8abccb7fc3ae58c61816e41cc38c3e66f70f;hb=d6eb0c333c8424d151637c18e1a1aef849d5fb31;hp=994183fc1dd20ce16cd60500927f89e76c71cb47;hpb=d261dbbfcc7317f2fd9aa9c08473dc4a7b6b2b30;p=libsigrok.git diff --git a/hardware/alsa/alsa.c b/hardware/alsa/alsa.c index 994183fc..b61a8abc 100644 --- a/hardware/alsa/alsa.c +++ b/hardware/alsa/alsa.c @@ -63,7 +63,7 @@ struct context { uint64_t limit_samples; snd_pcm_t *capture_handle; snd_pcm_hw_params_t *hw_params; - gpointer session_id; + void *session_dev_id; }; static int hw_init(const char *devinfo) @@ -137,12 +137,12 @@ static int hw_dev_close(int dev_index) if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) { sr_err("alsa: %s: sdi was NULL", __func__); - return SR_ERR; /* TODO: SR_ERR_ARG? */ + return SR_ERR_BUG; } if (!(ctx = sdi->priv)) { sr_err("alsa: %s: sdi->priv was NULL", __func__); - return SR_ERR; /* TODO: SR_ERR_ARG? */ + return SR_ERR_BUG; } // TODO: Return values of snd_*? @@ -235,9 +235,9 @@ static int hw_dev_config_set(int dev_index, int hwcap, void *value) } } -static int receive_data(int fd, int revents, void *user_data) +static int receive_data(int fd, int revents, void *cb_data) { - struct sr_dev_inst *sdi = user_data; + struct sr_dev_inst *sdi = cb_data; struct context *ctx = sdi->priv; struct sr_datafeed_packet packet; struct sr_analog_sample *sample; @@ -281,19 +281,19 @@ static int receive_data(int fd, int revents, void *user_data) packet.length = count * sample_size; packet.unitsize = sample_size; packet.payload = outb; - sr_session_bus(user_data, &packet); + sr_session_send(sdi, &packet); g_free(outb); ctx->limit_samples -= count; } while (ctx->limit_samples > 0); packet.type = SR_DF_END; - sr_session_bus(user_data, &packet); + sr_session_send(sdi, &packet); return TRUE; } -static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) +static int hw_dev_acquisition_start(int dev_index, void *cb_data) { struct sr_dev_inst *sdi; struct context *ctx; @@ -368,7 +368,7 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) return SR_ERR; } - ctx->session_id = session_dev_id; + ctx->session_dev_id = cb_data; sr_source_add(ufds[0].fd, ufds[0].events, 10, receive_data, sdi); packet.type = SR_DF_HEADER; @@ -380,22 +380,23 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) header.num_analog_probes = NUM_PROBES; header.num_logic_probes = 0; header.protocol_id = SR_PROTO_RAW; - sr_session_bus(session_dev_id, &packet); + sr_session_send(cb_data, &packet); g_free(ufds); return SR_OK; } -static int hw_dev_acquisition_stop(int dev_index, gpointer session_dev_id) +/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */ +static int hw_dev_acquisition_stop(int dev_index, void *cb_data) { /* Avoid compiler warnings. */ - dev_index = dev_index; - session_dev_id = session_dev_id; + (void)dev_index; + (void)cb_data; return SR_OK; } -SR_PRIV struct sr_dev_plugin alsa_plugin_info = { +SR_PRIV struct sr_dev_driver alsa_driver_info = { .name = "alsa", .longname = "ALSA driver", .api_version = 1,