Let helpers in portable_io.h receive void * arguments.
[paraslash.git] / check_wav.h
index 102e9514b960411dd667c349da2e4b0c0b30fca2..045158ab2d2d32dd97e000896dce450a2b854496 100644 (file)
@@ -1,4 +1,12 @@
-struct check_wav_task;
+/*
+ * Copyright (C) 2012 Andre Noll <maan@tuebingen.mpg.de>
+ *
+ * Licensed under the GPL v2. For licencing details see COPYING.
+ */
+
+/** \file check_wav.h Detect, process and cut a wav header. */
+
+struct check_wav_context;
 
 /**
  * These come from the command line arguments.
@@ -21,23 +29,23 @@ struct wav_params {
        int sample_format_given;
 };
 
-/**
- * Copy the wav parameters.
- *
- * \param dst Usually a pointer to struct wav_params.
- * \param src Usually a pointer to some args_info struct.
- *
- * This can not be implemented as a function since the type of the structure
- * pointed to by \a src depends on the application.
- */
-#define COPY_WAV_PARMS(dst, src) \
-       (dst)->channels_arg = (src)->channels_arg; \
-       (dst)->channels_given = (src)->channels_given; \
-       (dst)->sample_rate_arg = (src)->sample_rate_arg; \
-       (dst)->sample_rate_given = (src)->sample_rate_given; \
-       (dst)->sample_format_arg = (src)->sample_format_arg; \
-       (dst)->sample_format_given = (src)->sample_format_given;
+#define LLS_COPY_WAV_PARMS(_dst, _pfx, _lpr) \
+       (_dst)->channels_given = lls_opt_given(lls_opt_result( \
+               _pfx ## _OPT_CHANNELS, (_lpr))); \
+       (_dst)->sample_rate_given = lls_opt_given(lls_opt_result( \
+               _pfx ## _OPT_SAMPLE_RATE, (_lpr))); \
+       (_dst)->sample_format_given = lls_opt_given(lls_opt_result( \
+               _pfx ## _OPT_SAMPLE_FORMAT, (_lpr))); \
+       (_dst)->channels_arg = lls_uint32_val(0, lls_opt_result( \
+               _pfx ## _OPT_CHANNELS, (_lpr))); \
+       (_dst)->sample_rate_arg = lls_uint32_val(0, lls_opt_result( \
+               _pfx ## _OPT_SAMPLE_RATE, (_lpr))); \
+       (_dst)->sample_format_arg = lls_uint32_val(0, lls_opt_result( \
+               _pfx ## _OPT_SAMPLE_FORMAT, (_lpr)));
 
-struct check_wav_task *check_wav_init(struct sched *s, struct btr_node *parent,
-               struct wav_params *params, struct btr_node **cwt_btrn);
-void check_wav_shutdown(struct check_wav_task *cwt);
+struct check_wav_context *check_wav_init(struct btr_node *parent,
+               struct btr_node *child, struct wav_params *params,
+               struct btr_node **cw_btrn);
+void check_wav_pre_select(struct sched *s, struct check_wav_context *cwc);
+int check_wav_post_select(struct check_wav_context *cwc);
+void check_wav_shutdown(struct check_wav_context *cwc);