]> git.tue.mpg.de Git - paraslash.git/commitdiff
Merge topic branch t/play into master
authorAndre Noll <maan@tuebingen.mpg.de>
Wed, 4 Sep 2024 13:49:50 +0000 (15:49 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Wed, 4 Sep 2024 14:14:53 +0000 (16:14 +0200)
This small series contains a few minor tweaks for para_play. The most
obvious change is that para_play is no longer built on systems which
lack libreadline.

The merge conflicted badly in configure.ac due to the changes
introduced by the earlier merge of the "built" topic branch. The
resolution needs to modify the non-conflicting Makefile.real to exclude
para_play from the list of executables if libreadline is not present
while the corresponding commit of the "play" topic branch implemented
the logic in configure.ac.

Cooking for a month.

* refs/heads/t/play:
  play: Shut down alsa on input EOF.
  play: Simplify and improve get_key_map_seq().
  play: Remove pointless goto in play_post_monitor().
  Return from filter_setup() so callers can reset the terminal.
  Let para_play depend on libreadline.

1  2 
Makefile.real
NEWS.md
audiod.c
play.c
web/manual.md

diff --cc Makefile.real
index 92a5724b3cc6543553dcaf8dbdf6385e4169e41e,bd2bd9d95fe8356f09e756268340f2f4cad52706..33e22cfeb618d25218a16b1dbde0a67ab7704fbb
@@@ -34,263 -35,15 +34,263 @@@ m4depdir := $(build_dir)/m4dep
  lls_suite_dir := $(build_dir)/lls
  lls_m4_dir := m4/lls
  test_dir := t
 -yy_src_dir = yy
 -yy_build_dir = $(build_dir)/yy
 +yy_src_dir := yy
 +yy_build_dir := $(build_dir)/yy
 +
- executables := recv filter audioc write afh play
++executables := recv filter audioc write afh
 +ifneq ($(CRYPTOLIB),)
 +      ifeq ($(HAVE_OSL),yes)
 +      executables += server upgrade_db
 +              server_objs := $(addsuffix .o, \
 +                      server afh_common mp3_afh vss command net string \
 +                      signal time daemon http_send close_on_fork \
 +                      crypt_common base64 ipc dccp_send fd user_list \
 +                      chunk_queue afs aft mood mp score attribute blob \
 +                      playlist sched acl send_common udp_send color fec \
 +                      wma_afh wma_common sideband version lsu \
 +              )
 +              ifeq ($(CRYPTOLIB),openssl)
 +                      server_objs += openssl.o
 +              else
 +                      server_objs += gcrypt.o
 +              endif
 +              ifeq ($(NEED_OGG_OBJECTS),yes)
 +                      server_objs += ogg_afh_common.o
 +              endif
 +              ifeq ($(NEED_VORBIS_OBJECTS),yes)
 +                      server_objs += ogg_afh.o
 +              endif
 +              ifeq ($(NEED_SPEEX_OBJECTS),yes)
 +                      server_objs += spx_afh.o spx_common.o
 +              endif
 +              ifeq ($(NEED_OPUS_OBJECTS),yes)
 +                      server_objs += opus_afh.o opus_common.o
 +              endif
 +              ifeq ($(NEED_FLAC_OBJECTS),yes)
 +                      server_objs += flac_afh.o
 +              endif
 +              ifeq ($(HAVE_FAAD),yes)
 +                      server_objs += aac_afh.o mp4.o
 +              endif
 +              upgrade_db_objs := $(addsuffix .o, crypt_common exec fd string \
 +                      upgrade_db version base64)
 +      endif
 +endif
 +ifneq ($(CRYPTOLIB),)
 +      executables += client audiod
 +      client_objs := $(addsuffix .o, \
 +              client net string fd lsu sched stdin stdout time sideband client_common \
 +              buffer_tree crypt_common base64 version $(CRYPTOLIB) \
 +      )
 +      ifeq ($(HAVE_READLINE),yes)
 +              client_objs += interactive.o
 +      endif
 +      audiod_objs := $(addsuffix .o, \
 +              audiod signal string daemon stat net crypt_common base64 sideband \
 +              time grab_client filter_common wav_filter compress_filter amp_filter \
 +              http_recv dccp_recv recv_common fd sched write_common file_write \
 +              audiod_command fecdec_filter client_common udp_recv color fec \
 +              prebuffer_filter version bitstream imdct wma_common wmadec_filter \
 +              buffer_tree sync_filter lsu $(CRYPTOLIB) \
 +      )
 +      audiod_audio_formats := "wma"
 +      ifeq ($(NEED_VORBIS_OBJECTS),yes)
 +              audiod_objs += oggdec_filter.o
 +              audiod_audio_formats += ,"ogg"
 +      endif
 +      ifeq ($(NEED_SPEEX_OBJECTS),yes)
 +              audiod_objs += spxdec_filter.o spx_common.o
 +              audiod_audio_formats += ,"spx"
 +      endif
 +      ifeq ($(NEED_OPUS_OBJECTS),yes)
 +              audiod_objs += opusdec_filter.o opus_common.o
 +              audiod_audio_formats += ,"opus"
 +      endif
 +      ifeq ($(NEED_FLAC_OBJECTS),yes)
 +              audiod_objs += flacdec_filter.o
 +              audiod_audio_formats += ,"flac"
 +      endif
 +      ifeq ($(HAVE_FAAD),yes)
 +              audiod_objs += aacdec_filter.o
 +              audiod_audio_formats += ,"aac"
 +      endif
 +      ifeq ($(HAVE_MAD),yes)
 +              audiod_objs += mp3dec_filter.o
 +              audiod_audio_formats += ,"mp3"
 +      endif
 +      ifeq ($(HAVE_OSS),yes)
 +              audiod_objs += oss_write.o
 +      endif
 +      ifeq ($(HAVE_ALSA),yes)
 +              audiod_objs += alsa_write.o
 +      endif
 +      ifeq ($(NEED_AO_OBJECTS),yes)
 +              audiod_objs += ao_write.o
 +      endif
 +      ifeq ($(HAVE_SAMPLERATE),yes)
 +              audiod_objs += resample_filter.o check_wav.o
 +      endif
 +endif
 +ifneq ($(HAVE_OSS)-$(HAVE_ALSA),no-no)
 +      executables += mixer
 +      mixer_objs := $(addsuffix .o, mixer exec string fd time lsu version)
 +      ifeq ($(HAVE_OSS),yes)
 +              mixer_objs += oss_mix.o
 +      endif
 +      ifeq ($(HAVE_ALSA),yes)
 +              mixer_objs += alsa_mix.o
 +      endif
 +endif
 +ifeq ($(HAVE_CURSES),yes)
 +      executables += gui
 +      gui_objs := $(addsuffix .o, exec signal string stat ringbuffer fd \
 +              gui gui_theme lsu time sched version)
 +endif
 +filter_objs := $(addsuffix .o, \
 +      filter_common wav_filter compress_filter filter string stdin stdout \
 +      sched fd amp_filter fecdec_filter fec lsu version prebuffer_filter \
 +      time bitstream imdct wma_common wmadec_filter buffer_tree net \
 +      sync_filter \
 +)
 +ifeq ($(NEED_VORBIS_OBJECTS),yes)
 +      filter_objs += oggdec_filter.o
 +endif
 +ifeq ($(NEED_SPEEX_OBJECTS),yes)
 +      filter_objs += spxdec_filter.o spx_common.o
 +endif
 +ifeq ($(NEED_OPUS_OBJECTS),yes)
 +      filter_objs += opusdec_filter.o opus_common.o
 +endif
 +ifeq ($(NEED_FLAC_OBJECTS),yes)
 +      filter_objs += flacdec_filter.o
 +endif
 +ifeq ($(HAVE_FAAD),yes)
 +      filter_objs += aacdec_filter.o
 +endif
 +ifeq ($(HAVE_MAD),yes)
 +      filter_objs += mp3dec_filter.o
 +endif
 +ifeq ($(HAVE_SAMPLERATE),yes)
 +      filter_objs += resample_filter.o check_wav.o
 +endif
 +
 +recv_objs := $(addsuffix .o, \
 +      http_recv recv_common recv time string net dccp_recv fd sched stdout \
 +      udp_recv buffer_tree afh_recv afh_common wma_afh wma_common mp3_afh \
 +      version \
 +)
 +ifeq ($(NEED_OGG_OBJECTS),yes)
 +      recv_objs += ogg_afh_common.o
 +endif
 +ifeq ($(NEED_VORBIS_OBJECTS),yes)
 +      recv_objs += ogg_afh.o
 +endif
 +ifeq ($(NEED_SPEEX_OBJECTS),yes)
 +      recv_objs += spx_afh.o spx_common.o
 +endif
 +ifeq ($(NEED_OPUS_OBJECTS),yes)
 +      recv_objs += opus_afh.o opus_common.o
 +endif
 +ifeq ($(NEED_FLAC_OBJECTS),yes)
 +      recv_objs += flac_afh.o
 +endif
 +ifeq ($(HAVE_FAAD),yes)
 +      recv_objs += aac_afh.o mp4.o
 +endif
 +
 +audio_format_handlers := mp3 wma
 +afh_objs := $(addsuffix .o, afh string fd mp3_afh afh_common time wma_afh \
 +      wma_common version)
 +ifeq ($(NEED_OGG_OBJECTS),yes)
 +      afh_objs += ogg_afh_common.o
 +endif
 +ifeq ($(NEED_VORBIS_OBJECTS),yes)
 +      afh_objs += ogg_afh.o
 +      audio_format_handlers += ogg
 +endif
 +ifeq ($(NEED_SPEEX_OBJECTS),yes)
 +      afh_objs += spx_common.o
 +      audio_format_handlers += spx
 +endif
 +ifeq ($(NEED_OPUS_OBJECTS),yes)
 +      afh_objs += opus_afh.o opus_common.o
 +      audio_format_handlers += opus
 +endif
 +ifeq ($(NEED_FLAC_OBJECTS),yes)
 +      afh_objs += flac_afh.o
 +      audio_format_handlers += flac
 +endif
 +ifeq ($(HAVE_FAAD),yes)
 +      afh_objs += aac_afh.o mp4.o
 +      audio_format_handlers += aac
 +endif
 +
- play_objs := $(addsuffix .o, \
-       play fd sched buffer_tree time string net afh_recv afh_common \
-       wma_afh wma_common mp3_afh recv_common udp_recv http_recv dccp_recv \
-       filter_common fec bitstream imdct wav_filter compress_filter \
-       amp_filter prebuffer_filter fecdec_filter wmadec_filter write_common \
-       file_write version sync_filter lsu \
- )
- ifeq ($(NEED_OGG_OBJECTS),yes)
-       play_objs += ogg_afh_common.o
- endif
- ifeq ($(NEED_VORBIS_OBJECTS),yes)
-       play_objs += oggdec_filter.o ogg_afh.o
- endif
- ifeq ($(NEED_SPEEX_OBJECTS),yes)
-       play_objs += spxdec_filter.o spx_afh.o spx_common.o
- endif
- ifeq ($(NEED_OPUS_OBJECTS),yes)
-       play_objs += opusdec_filter.o opus_afh.o opus_common.o
- endif
- ifeq ($(NEED_FLAC_OBJECTS),yes)
-       play_objs += flacdec_filter.o flac_afh.o
- endif
- ifeq ($(HAVE_FAAD),yes)
-       play_objs += aac_afh.o aacdec_filter.o mp4.o
- endif
- ifeq ($(HAVE_MAD),yes)
-       play_objs += mp3dec_filter.o
- endif
- ifeq ($(HAVE_OSS),yes)
-       play_objs += oss_write.o
- endif
- ifeq ($(HAVE_ALSA),yes)
-       play_objs += alsa_write.o
- endif
- ifeq ($(NEED_AO_OBJECTS),yes)
-       play_objs += ao_write.o
- endif
 +ifeq ($(HAVE_READLINE),yes)
-       play_objs += interactive.o
- endif
- ifeq ($(HAVE_SAMPLERATE),yes)
-       play_objs += resample_filter.o check_wav.o
++      executables += play
++      play_objs := $(addsuffix .o, \
++              play fd sched buffer_tree time string net afh_recv afh_common \
++              wma_afh wma_common mp3_afh recv_common udp_recv http_recv dccp_recv \
++              filter_common fec bitstream imdct wav_filter compress_filter \
++              amp_filter prebuffer_filter fecdec_filter wmadec_filter write_common \
++              file_write version sync_filter lsu interactive \
++      )
++      ifeq ($(NEED_OGG_OBJECTS),yes)
++              play_objs += ogg_afh_common.o
++      endif
++      ifeq ($(NEED_VORBIS_OBJECTS),yes)
++              play_objs += oggdec_filter.o ogg_afh.o
++      endif
++      ifeq ($(NEED_SPEEX_OBJECTS),yes)
++              play_objs += spxdec_filter.o spx_afh.o spx_common.o
++      endif
++      ifeq ($(NEED_OPUS_OBJECTS),yes)
++              play_objs += opusdec_filter.o opus_afh.o opus_common.o
++      endif
++      ifeq ($(NEED_FLAC_OBJECTS),yes)
++              play_objs += flacdec_filter.o flac_afh.o
++      endif
++      ifeq ($(HAVE_FAAD),yes)
++              play_objs += aac_afh.o aacdec_filter.o mp4.o
++      endif
++      ifeq ($(HAVE_MAD),yes)
++              play_objs += mp3dec_filter.o
++      endif
++      ifeq ($(HAVE_OSS),yes)
++              play_objs += oss_write.o
++      endif
++      ifeq ($(HAVE_ALSA),yes)
++              play_objs += alsa_write.o
++      endif
++      ifeq ($(NEED_AO_OBJECTS),yes)
++              play_objs += ao_write.o
++      endif
++      ifeq ($(HAVE_SAMPLERATE),yes)
++              play_objs += resample_filter.o check_wav.o
++      endif
 +endif
 +
 +write_objs := $(addsuffix .o, write write_common file_write time fd \
 +      string sched stdin buffer_tree check_wav version)
 +ifeq ($(NEED_AO_OBJECTS),yes)
 +      write_objs += ao_write.o
 +endif
 +ifeq ($(HAVE_OSS),yes)
 +      write_objs += oss_write.o
 +endif
 +ifeq ($(HAVE_ALSA),yes)
 +      write_objs += alsa_write.o
 +endif
 +
 +audioc_objs := $(addsuffix .o, audioc string lsu net fd time version)
 +ifeq ($(HAVE_READLINE),yes)
 +      audioc_objs += buffer_tree.o interactive.o sched.o
 +endif
  
  # sort removes duplicate words, which is all we need here
 -all_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \
 +dep_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \
        $(audiod_objs) $(audioc_objs) $(mixer_objs) $(server_objs) \
 -      $(write_objs) $(afh_objs) $(play_objs))
 -deps := $(addprefix $(dep_dir)/, $(all_objs:.o=.d))
 -deps += $(addprefix $(dep_dir)/, mp.bison.d mp.flex.d)
 +      $(write_objs) $(afh_objs) $(play_objs) mp.bison mp.flex)
 +deps := $(addprefix $(dep_dir)/, $(dep_objs:.o=.d))
  
  afh_objs += afh.lsg.o
  audioc_objs += audioc.lsg.o
diff --cc NEWS.md
index 0703643b9e2ea6dcca60cd9200a99522e68d2185,d5812289640d71c52a60bd850928c72b3c5ba0b8..0f7e0c84e05946bab66b3dbd5acab11c9c6935d5
+++ b/NEWS.md
@@@ -5,9 -5,6 +5,10 @@@ NEW
  0.7.4 (to be announced) "genetic contraction"
  ---------------------------------------------
  
 +- Simplification of the build system. The only visible effect is
 +  that configure no longer prints a summary at the end.
++- para_play is no longer built if libreadline is not installed.
 +
  Downloads:
  [tarball](./releases/paraslash-git.tar.xz)
  
diff --cc audiod.c
Simple merge
diff --cc play.c
Simple merge
diff --cc web/manual.md
Simple merge