X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write_common.c;h=a8d2114995bcafb74b692ef5a47d275c0a266d4c;hp=ac92bc1a1740d1eeefa50551d03744a6018fce41;hb=f0380a05616524b149fa34f4a0873d9063ca2a95;hpb=505cfe0c6c8f9ef79d259ee64404ab40f2057081;ds=sidebyside diff --git a/write_common.c b/write_common.c index ac92bc1a..a8d21149 100644 --- a/write_common.c +++ b/write_common.c @@ -1,19 +1,7 @@ /* * Copyright (C) 2006-2007 Andre Noll * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file write_common.c common functions of para_audiod and para_write */ @@ -40,7 +28,7 @@ static void wng_pre_select(__a_unused struct sched *s, struct task *t) struct writer_node *wn = &g->writer_nodes[i]; t->ret = wn->writer->pre_select(s, wn); if (t->ret < 0) { - g->eof = 1; + g->error = t->ret; return; } } @@ -56,7 +44,7 @@ static void wng_post_select(struct sched *s, struct task *t) struct writer_node *wn = &g->writer_nodes[i]; t->ret = wn->writer->post_select(s, wn); if (t->ret < 0) { - g->eof = 1; + g->error = t->ret; return; } if (!i) @@ -70,9 +58,9 @@ static void wng_post_select(struct sched *s, struct task *t) FOR_EACH_WRITER_NODE(i, g) g->writer_nodes[i].written -= min_written; } - if (!*g->loaded && *g->input_eof) { - g->eof = 1; - t->ret = -E_WNG_EOF; + if (!*g->loaded && *g->input_error) { + g->error = *g->input_error; + t->ret = g->error; return; } t->ret = 1; @@ -90,7 +78,7 @@ static void wng_post_select(struct sched *s, struct task *t) * \return If at least one open function returned an error, all successful * writer notes get closed and this error value is returned. Upon success, a * task associated with \a g is registered to the scheduler and the function - * returnes a positive value. + * returns a positive value. * */ int wng_open(struct writer_node_group *g) { @@ -108,16 +96,17 @@ int wng_open(struct writer_node_group *g) g->max_chunk_bytes = PARA_MAX(g->max_chunk_bytes, ret); } sprintf(g->task.status, "%s", "writer node group"); - g->eof = 0; + g->error = 0; return 1; err_out: + PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret)); unregister_task(&g->task); while (i > 0) { struct writer_node *wn = &g->writer_nodes[--i]; wn->writer->close(wn); } g->num_writers = 0; - g->eof = 1; + g->error = ret; return ret; } @@ -130,7 +119,6 @@ err_out: void wng_unregister(struct writer_node_group *g) { unregister_task(&g->task); - g->eof = 1; } /** @@ -191,7 +179,7 @@ void init_supported_writers(void) * \param writer_num contains the number of the writer upon success * * This function checks whether \a wa starts with the name of a supported - * paraslash writer, optinally followed by a colon and any options for that + * paraslash writer, optionally followed by a colon and any options for that * writer. If a valid writer name was found and further are present, the * remaining part of \a wa is passed to that writer's config parser. * @@ -236,15 +224,9 @@ void *check_writer_arg(const char *wa, int *writer_num) struct writer_node_group *setup_default_wng(void) { struct writer_node_group *wng = wng_new(1); - enum writer_enum default_writer; - - if (NUM_SUPPORTED_WRITERS == 1) - default_writer = FILE_WRITE; - else - default_writer = 1; - wng->writer_nodes[0].writer = &writers[default_writer]; + wng->writer_nodes[0].writer = &writers[DEFAULT_WRITER]; PARA_INFO_LOG("using default writer: %s %p\n", - writer_names[default_writer], writers[default_writer].parse_config); - wng->writer_nodes[0].conf = writers[default_writer].parse_config(""); + writer_names[DEFAULT_WRITER], writers[DEFAULT_WRITER].parse_config); + wng->writer_nodes[0].conf = writers[DEFAULT_WRITER].parse_config(""); return wng; }