Remove osx_write.c, this time for real. This file was removed prior to v0.6.0 in commit 3af6411b (Drop support for Mac OS), but it was brought back by mistake via the lopsub merge 764e71ce.
Convert writers to lopsub. Similar to the previous commits for receivers and filters, this commit replaces the five gengetopt parsers for the alsa, ao, file, oss, osx writers by a lopsub suite and links para_write with -llopsub. This allows to get rid of the WRITER_ENUM and the writers array as a reference to each writer structure are stored in the lopsub user_data pointer. Moreover, ->init(), ->parse_config(), ->free_config() and ->ggo_help() of struct writer are not needed any more and can be removed. The patch also removes write_common.h and moves the few prototypes write.h. Now that receivers, filters and writers have all been converted, we may also stop to include ggo.h from audiod_command.c and play.c. As for the receivers and filters, t0005 needs slight adjustments due to the new section header in the man page.
Update year in copyright headers. Done with files=$(git grep -l 'Copyright (C) [0-9]\{4\}\(-2014\)* Andre Noll') sed --in-place= -e 's/Copyright (C) \([0-9]\{4\}\)-2014 Andre Noll/Copyright (C) \1 Andre Noll/1' $files In previous years we ran a similar script to set the second year in the range to the current year. This is kind of silly, so let's get rid of this useless information. This commit replaces "Copyright (C) A-B" by "Copyright (C) A" in all file headers, i.e. only the first year (A) is left in. Accurate information including time stamps for each change can be obtained from the git history.
doc: Change email address to maan@tuebingen.mpg.de The mail server on systemlinux.org was down for more than a week lately, so let's use an alternative official address. This commit changes all maan@systemlinux.org addresses to maan@tuebingen.mpg.de. Most .c and .h files contain the email address in the copyright header, so they must all be patched. Three other files contain the address for a different reason: * README lists email and git, gitweb and home page URLs * configure.ac needs it for configure -h * version.c contains it for the -V option of all commands
sched: Directly pass context pointer to pre/post_select(). The patch is large, but it's fairly straight forward: Instead of a task pointer all ->pre_select() and ->post_select() methods now receive the context pointer that was passed to the scheduler when the task was registered. This allows to kill the public task_context(). Two pre_select/post_select functions are not directly called by the scheduler: session_post_select(), generic_recv_pre_select(). These are changed to receive a proper struct rather than a void pointer. Note that generic_filter_pre_select() is not changed in this manner because some filters do not provide a pre_select wrapper but set task->pre_select to generic_filter_pre_select().
task_register() conversion: writers
Change copyright year to 2014. This year, we're really on time. The changes in this patch were created by the following silly script: files=$(git grep -l 'Copyright (C) [0-9]\{4\}\(-2013\)* Andre Noll') sed --in-place= -e 's/Copyright (C) \([0-9]\{4\}\)-2013 Andre Noll/Copyright (C) \1-2014 Andre Noll/1' $files sed --in-place= -e 's/Copyright (C) 2013 Andre Noll/Copyright (C) 2013-2014 Andre Noll/1' $files
Revamp ggo help. This adds usage and description fields to struct ggo_help and changes ggo_print_help() to optionally print these. The boolean detailed_help flag of ggo_print_help() is replaced by a bitmask which lets the caller specify what to print. Four pre-defined masks are used to print the normal help, the detailed help, the help for modules (receivers, filters, writers) and the detailed module help. The new macro DEFINE_GGO_HELP can be employed to create a struct ggo_help from a gengetopt structure.
sched: Rename new_post_select back to post_select.
sched: Kill old ->post_select variant. It has no more users.
osx writer: Switch to the alternative post select method.
Change copyright year to 2013. Better late than never.
Fix compilation MacOS. The resolution of the conflict in commit 83ab4b5d introduced the following error: osx_write.c:329:9: error: use of undeclared label 'remove_btrn' goto remove_btrn; ^ Fix is trivial.
Merge branch 't/afh_receiver' 57d75e play: Fix segfault if decoder is not supported. 98f192 Interactive support depends on curses lib. 3e3d8e para_play, implementation. d02f88 para_play, infrastructure. 3b2ee2 Make writer nodes honor notifications. e541d7 interactive: Introduce i9e_print_status_bar(). 901f66 interactive: Implement single key mode. 6cb789 interactive: Add producer to struct i9e_client_info. c31982 Interactive: Introduce i9e_get_error(). be1074 interactive: Fix wipe_bottom_line() on MacOS. 3ba772 interactive: Honor SIGWINCH. 56561c interactive: Honor SIGTERM. 06f33c para_afh: remove streaming mode. 4a30c5 The afh receiver, documentation. b84e37 The afh receiver, implementation. 618a25 The afh_receiver, infrastructure. 4fa8cb Add execute mechanism to receiver nodes. 7c8931 Introduce afh_get_afhi_txt(). 3f1510 audiod: Replace kill_btrn() by task notifications. 5edb8f sched: Replace sched_shutdown() by task_notify_all(). 58ce61 sched: Introduce task notifications. b56199 i9e_attach_to_stdout(): Don't insist on btrn == NULL. 7867cd Interactive: Assorted whitespace/newline fixes. b654be interactive: kill i9ep->line_handler_running. 77b607 interactive: Do not close stderr in i9e_close(). 099ef4 Add missing documentation of send_strerror(). Conflicts: osx_write.c
Make writer nodes honor notifications. Currently, nobody is notifying any writer node but the para_play executable, which will be introduced in subsequent patches, will use this facility to terminate the audio stream.
osx_write: Check return value of AudioOutputUnitStart(). This function may fail, and we even have an error code for this condition available.
osx_write: Be careful when dereferencing the private_data pointer. When the main process stops the audio unit the callback might be sleeping on the mutex and run one more time.
osx: Treat writer node as an internal buffer tree node.
osx_write: Add big fat comment on callback btr node.
Simplify ggo makefile. Currently we have three different targets for creating *_cmdline.[ch] files. This is because receivers, filters and writers need slightly different command line options. This patch defines the common options in the ggo makefile and moves additional parameters to the individual .m4 files so that a single target to create *_cmdline.[ch] is now sufficient. The name of the command line parsers of some filters and writers changed due to this unification, so these are updated accordingly.