X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afh_recv.c;h=889fdce821f4b9aec85c1b01976e4fae6e05e176;hp=6525209bff4119a177eb443f154b4f1f5224845b;hb=HEAD;hpb=3998a8c581623224b7b56bce593646b2c8516a0f diff --git a/afh_recv.c b/afh_recv.c index 6525209b..8449e787 100644 --- a/afh_recv.c +++ b/afh_recv.c @@ -75,7 +75,7 @@ static int afh_recv_open(struct receiver_node *rn) if (!fn || *fn == '\0') return -E_AFH_RECV_BAD_FILENAME; - rn->private_data = pard = para_calloc(sizeof(*pard)); + rn->private_data = pard = zalloc(sizeof(*pard)); afhi = &pard->afhi; ret = mmap_full_file(fn, O_RDONLY, &pard->map, &pard->map_size, &pard->fd); @@ -142,14 +142,14 @@ static void afh_recv_close(struct receiver_node *rn) freep(&rn->private_data); } -static void afh_recv_pre_select(struct sched *s, void *context) +static void afh_recv_pre_monitor(struct sched *s, void *context) { struct receiver_node *rn = context; struct private_afh_recv_data *pard = rn->private_data; struct afh_info *afhi = &pard->afhi; struct lls_parse_result *lpr = rn->lpr; struct timeval chunk_time; - int state = generic_recv_pre_select(s, rn); + int state = generic_recv_pre_monitor(s, rn); unsigned j_given = RECV_CMD_OPT_GIVEN(AFH, JUST_IN_TIME, lpr); if (state <= 0) @@ -163,7 +163,7 @@ static void afh_recv_pre_select(struct sched *s, void *context) sched_request_barrier_or_min_delay(&chunk_time, s); } -static int afh_recv_post_select(__a_unused struct sched *s, void *context) +static int afh_recv_post_monitor(__a_unused struct sched *s, void *context) { struct receiver_node *rn = context; struct lls_parse_result *lpr = rn->lpr; @@ -174,6 +174,7 @@ static int afh_recv_post_select(__a_unused struct sched *s, void *context) char *buf; const char *start; size_t size; + uint32_t len; struct timeval chunk_time; unsigned j_given = RECV_CMD_OPT_GIVEN(AFH, JUST_IN_TIME, lpr); unsigned H_given = RECV_CMD_OPT_GIVEN(AFH, NO_HEADER, lpr); @@ -187,7 +188,7 @@ static int afh_recv_post_select(__a_unused struct sched *s, void *context) pard->map_size, &header, &size); if (size > 0) { PARA_INFO_LOG("writing header (%zu bytes)\n", size); - buf = para_malloc(size); + buf = alloc(size); memcpy(buf, header, size); btr_add_output(buf, size, btrn); afh_free_header(header, pard->audio_format_num); @@ -197,14 +198,14 @@ static int afh_recv_post_select(__a_unused struct sched *s, void *context) long unsigned n; for (n = pard->first_chunk; n < pard->last_chunk; n++) { ret = afh_get_chunk(n, afhi, pard->audio_format_num, - pard->map, pard->map_size, &start, &size, + pard->map, pard->map_size, &start, &len, &pard->afh_context); if (ret < 0) goto out; - PARA_DEBUG_LOG("adding %zu bytes\n", size); - btr_add_output_dont_free(start, size, btrn); + PARA_DEBUG_LOG("adding %u bytes\n", len); + btr_add_output_dont_free(start, len, btrn); } - ret = -E_RECV_EOF; + ret = -E_EOF; goto out; } if (pard->current_chunk == pard->first_chunk) @@ -218,14 +219,14 @@ static int afh_recv_post_select(__a_unused struct sched *s, void *context) } ret = afh_get_chunk(pard->current_chunk, afhi, pard->audio_format_num, pard->map, - pard->map_size, &start, &size, + pard->map_size, &start, &len, &pard->afh_context); if (ret < 0) goto out; PARA_DEBUG_LOG("adding chunk %u\n", pard->current_chunk); - btr_add_output_dont_free(start, size, btrn); + btr_add_output_dont_free(start, len, btrn); if (pard->current_chunk >= pard->last_chunk) { - ret = -E_RECV_EOF; + ret = -E_EOF; goto out; } pard->current_chunk++; @@ -238,12 +239,10 @@ out: return ret; } -/** See \ref recv_init(). */ const struct receiver lsg_recv_cmd_com_afh_user_data = { - .init = afh_init, .open = afh_recv_open, .close = afh_recv_close, - .pre_select = afh_recv_pre_select, - .post_select = afh_recv_post_select, + .pre_monitor = afh_recv_pre_monitor, + .post_monitor = afh_recv_post_monitor, .execute = afh_execute, };