devc->analog_groups = g_malloc0(sizeof(struct sr_channel_group*) *
scope_models[model_index].analog_channels);
-
devc->digital_groups = g_malloc0(sizeof(struct sr_channel_group*) *
scope_models[model_index].pods);
+ if (!devc->analog_groups || !devc->digital_groups) {
+ g_free(devc->analog_groups);
+ g_free(devc->digital_groups);
+ return SR_ERR_MALLOC;
+ }
/* Add analog channels, each in its own group. */
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
struct scope_state *model_state;
struct dev_context *devc;
struct sr_channel *ch;
- struct sr_datafeed_packet packet;
int chunk_len, num_bytes;
static GArray *data = NULL;
devc->data_pending = FALSE;
/* Signal the beginning of a new frame if this is the first channel. */
- if (devc->current_channel == devc->enabled_channels) {
- packet.type = SR_DF_FRAME_BEGIN;
- sr_session_send(sdi, &packet);
- }
+ if (devc->current_channel == devc->enabled_channels)
+ std_session_send_df_frame_begin(sdi);
if (dlm_block_data_header_process(data, &num_bytes) != SR_OK) {
sr_err("Encountered malformed block data header.");
* and set the next enabled channel. Then, request its data.
*/
if (!devc->current_channel->next) {
- packet.type = SR_DF_FRAME_END;
- sr_session_send(sdi, &packet);
+ std_session_send_df_frame_end(sdi);
devc->current_channel = devc->enabled_channels;
/*