diff -Nru lebiniou-3.32/ar-lib lebiniou-3.40/ar-lib --- lebiniou-3.32/ar-lib 2019-10-13 13:42:28.000000000 +0000 +++ lebiniou-3.40/ar-lib 1970-01-01 00:00:00.000000000 +0000 @@ -1,270 +0,0 @@ -#! /bin/sh -# Wrapper for Microsoft lib.exe - -me=ar-lib -scriptversion=2012-03-01.08; # UTC - -# Copyright (C) 2010-2018 Free Software Foundation, Inc. -# Written by Peter Rosin . -# -# 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, 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, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - - -# func_error message -func_error () -{ - echo "$me: $1" 1>&2 - exit 1 -} - -file_conv= - -# func_file_conv build_file -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv in - mingw) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_at_file at_file operation archive -# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE -# for each of them. -# When interpreting the content of the @FILE, do NOT use func_file_conv, -# since the user would need to supply preconverted file names to -# binutils ar, at least for MinGW. -func_at_file () -{ - operation=$2 - archive=$3 - at_file_contents=`cat "$1"` - eval set x "$at_file_contents" - shift - - for member - do - $AR -NOLOGO $operation:"$member" "$archive" || exit $? - done -} - -case $1 in - '') - func_error "no command. Try '$0 --help' for more information." - ;; - -h | --h*) - cat <. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='lebiniou' PACKAGE_TARNAME='lebiniou' -PACKAGE_VERSION='3.32' -PACKAGE_STRING='lebiniou 3.32' +PACKAGE_VERSION='3.40' +PACKAGE_STRING='lebiniou 3.40' PACKAGE_BUGREPORT='olivier@biniou.info' PACKAGE_URL='' @@ -636,6 +636,10 @@ EXTRA_DISKWRITER_FALSE EXTRA_DISKWRITER_TRUE DPKG_BUILDFLAGS_CHECK +HAVE_ULFIUS_FALSE +HAVE_ULFIUS_TRUE +ULFIUS_LIBS +ULFIUS_CFLAGS WITH_PANDOC_FALSE WITH_PANDOC_TRUE have_pandoc @@ -695,6 +699,8 @@ MagickWand_CFLAGS FT2_LIBS FT2_CFLAGS +JANSSON_LIBS +JANSSON_CFLAGS XML2_LIBS XML2_CFLAGS FFTW3_LIBS @@ -848,6 +854,8 @@ FFTW3_LIBS XML2_CFLAGS XML2_LIBS +JANSSON_CFLAGS +JANSSON_LIBS FT2_CFLAGS FT2_LIBS MagickWand_CFLAGS @@ -874,7 +882,9 @@ SDL2_ttf_CFLAGS SDL2_ttf_LIBS GLU_CFLAGS -GLU_LIBS' +GLU_LIBS +ULFIUS_CFLAGS +ULFIUS_LIBS' # Initialize some variables set by options. @@ -1425,7 +1435,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures lebiniou 3.32 to adapt to many kinds of systems. +\`configure' configures lebiniou 3.40 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1497,7 +1507,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of lebiniou 3.32:";; + short | recursive ) echo "Configuration of lebiniou 3.40:";; esac cat <<\_ACEOF @@ -1554,6 +1564,10 @@ FFTW3_LIBS linker flags for FFTW3, overriding pkg-config XML2_CFLAGS C compiler flags for XML2, overriding pkg-config XML2_LIBS linker flags for XML2, overriding pkg-config + JANSSON_CFLAGS + C compiler flags for JANSSON, overriding pkg-config + JANSSON_LIBS + linker flags for JANSSON, overriding pkg-config FT2_CFLAGS C compiler flags for FT2, overriding pkg-config FT2_LIBS linker flags for FT2, overriding pkg-config MagickWand_CFLAGS @@ -1592,6 +1606,9 @@ linker flags for SDL2_ttf, overriding pkg-config GLU_CFLAGS C compiler flags for GLU, overriding pkg-config GLU_LIBS linker flags for GLU, overriding pkg-config + ULFIUS_CFLAGS + C compiler flags for ULFIUS, overriding pkg-config + ULFIUS_LIBS linker flags for ULFIUS, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1659,7 +1676,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -lebiniou configure 3.32 +lebiniou configure 3.40 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2028,7 +2045,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by lebiniou $as_me 3.32, which was +It was created by lebiniou $as_me 3.40, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3003,7 +3020,7 @@ # Define the identity of the package. PACKAGE='lebiniou' - VERSION='3.32' + VERSION='3.40' cat >>confdefs.h <<_ACEOF @@ -3137,7 +3154,7 @@ BINIOU_MAJOR=3 -BINIOU_MINOR=32 +BINIOU_MINOR=40 BINIOU_VERSION="$BINIOU_MAJOR.$BINIOU_MINOR" @@ -4871,6 +4888,79 @@ fi CFLAGS="$CFLAGS `$PKG_CONFIG libxml-2.0 --cflags`" +# jansson + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JANSSON" >&5 +$as_echo_n "checking for JANSSON... " >&6; } + +if test -n "$JANSSON_CFLAGS"; then + pkg_cv_JANSSON_CFLAGS="$JANSSON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson\""; } >&5 + ($PKG_CONFIG --exists --print-errors "jansson") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JANSSON_CFLAGS=`$PKG_CONFIG --cflags "jansson" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$JANSSON_LIBS"; then + pkg_cv_JANSSON_LIBS="$JANSSON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jansson\""; } >&5 + ($PKG_CONFIG --exists --print-errors "jansson") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JANSSON_LIBS=`$PKG_CONFIG --libs "jansson" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + JANSSON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "jansson" 2>&1` + else + JANSSON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "jansson" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$JANSSON_PKG_ERRORS" >&5 + + as_fn_error $? "You must have libjansson-dev installed" "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "You must have libjansson-dev installed" "$LINENO" 5 +else + JANSSON_CFLAGS=$pkg_cv_JANSSON_CFLAGS + JANSSON_LIBS=$pkg_cv_JANSSON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + # freetype-2 pkg_failed=no @@ -5018,7 +5108,7 @@ fi -LIBS="$LIBS ${GLIB_LIBS} ${FFTW3_LIBS} ${XML2_LIBS} -lm -lz" +LIBS="$LIBS ${GLIB_LIBS} ${FFTW3_LIBS} ${XML2_LIBS} -lm -lz ${JANSSON_LIBS}" # We need to know which prefix we used to find some default values if test "x${prefix}" = "xNONE"; then @@ -6621,6 +6711,94 @@ $as_echo "$as_me: WARNING: pandoc not found, can not build documentation" >&2;} fi +have_ulfius="no" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ULFIUS" >&5 +$as_echo_n "checking for ULFIUS... " >&6; } + +if test -n "$ULFIUS_CFLAGS"; then + pkg_cv_ULFIUS_CFLAGS="$ULFIUS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libulfius\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libulfius") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ULFIUS_CFLAGS=`$PKG_CONFIG --cflags "libulfius" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ULFIUS_LIBS"; then + pkg_cv_ULFIUS_LIBS="$ULFIUS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libulfius\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libulfius") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ULFIUS_LIBS=`$PKG_CONFIG --libs "libulfius" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ULFIUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libulfius" 2>&1` + else + ULFIUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libulfius" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ULFIUS_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libulfius not found, can not build HTTP server" >&5 +$as_echo "$as_me: WARNING: libulfius not found, can not build HTTP server" >&2;} +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libulfius not found, can not build HTTP server" >&5 +$as_echo "$as_me: WARNING: libulfius not found, can not build HTTP server" >&2;} +else + ULFIUS_CFLAGS=$pkg_cv_ULFIUS_CFLAGS + ULFIUS_LIBS=$pkg_cv_ULFIUS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_ulfius=yes +fi + if test "x${have_ulfius}" = "xyes"; then + HAVE_ULFIUS_TRUE= + HAVE_ULFIUS_FALSE='#' +else + HAVE_ULFIUS_TRUE='#' + HAVE_ULFIUS_FALSE= +fi + +if test "x${have_ulfius}" != "xno"; then +CPPFLAGS="$CPPFLAGS -DWITH_ULFIUS" +CFLAGS="$CFLAGS `$PKG_CONFIG libulfius --cflags`" +LIBS="$LIBS `$PKG_CONFIG libulfius --libs`" +fi + have_webcam="no" for ac_header in linux/videodev2.h do : @@ -6687,7 +6865,7 @@ enable_asan="no" fi -if test "x${enable_asan}" = "xyes"; then +if test "x${CC}" != "xclang" && test "x${enable_asan}" = "xyes"; then CFLAGS="$CFLAGS -fsanitize=address" fi @@ -7052,6 +7230,10 @@ as_fn_error $? "conditional \"WITH_PANDOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_ULFIUS_TRUE}" && test -z "${HAVE_ULFIUS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_ULFIUS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${EXTRA_DISKWRITER_TRUE}" && test -z "${EXTRA_DISKWRITER_FALSE}"; then as_fn_error $? "conditional \"EXTRA_DISKWRITER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -7461,7 +7643,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by lebiniou $as_me 3.32, which was +This file was extended by lebiniou $as_me 3.40, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7527,7 +7709,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -lebiniou config.status 3.32 +lebiniou config.status 3.40 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -8590,6 +8772,7 @@ fi echo " Documentation: ${have_pandoc}" echo " Compile old delay plugins: ${enable_old_delay}" +echo " Embedded HTTP server: ${have_ulfius}" echo echo " * Input plugins:" diff -Nru lebiniou-3.32/configure.ac lebiniou-3.40/configure.ac --- lebiniou-3.32/configure.ac 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/configure.ac 2020-01-23 13:56:18.000000000 +0000 @@ -1,4 +1,4 @@ -AC_INIT([lebiniou],[3.32],[olivier@biniou.info]) +AC_INIT([lebiniou],[3.40],[olivier@biniou.info]) AC_PREREQ([2.68]) AC_CONFIG_SRCDIR([src/main.c]) AC_CANONICAL_TARGET @@ -9,7 +9,7 @@ dnl Versioning dnl ------------------------------------------------------------------ BINIOU_MAJOR=3 -BINIOU_MINOR=32 +BINIOU_MINOR=40 BINIOU_VERSION="$BINIOU_MAJOR.$BINIOU_MINOR" AC_SUBST(BINIOU_VERSION) @@ -95,6 +95,9 @@ PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.6.0], , [AC_MSG_ERROR([You must have libxml2-dev >= 2.6 installed])]) CFLAGS="$CFLAGS `$PKG_CONFIG libxml-2.0 --cflags`" +# jansson +PKG_CHECK_MODULES([JANSSON], [jansson], , [AC_MSG_ERROR([You must have libjansson-dev installed])]) + # freetype-2 PKG_CHECK_MODULES([FT2], [freetype2], , [AC_MSG_ERROR([You must have libfreetype6-dev installed])]) CFLAGS="$CFLAGS `$PKG_CONFIG freetype2 --cflags`" @@ -102,7 +105,7 @@ # MagickWand PKG_CHECK_MODULES([MagickWand], [MagickWand], , [AC_MSG_ERROR([You must have libmagickwand-dev installed])]) -LIBS="$LIBS ${GLIB_LIBS} ${FFTW3_LIBS} ${XML2_LIBS} -lm -lz" +LIBS="$LIBS ${GLIB_LIBS} ${FFTW3_LIBS} ${XML2_LIBS} -lm -lz ${JANSSON_LIBS}" # We need to know which prefix we used to find some default values if test "x${prefix}" = "xNONE"; then @@ -344,6 +347,16 @@ AC_MSG_WARN([pandoc not found, can not build documentation]) fi +dnl ulfius +have_ulfius="no" +PKG_CHECK_MODULES([ULFIUS], [libulfius], have_ulfius=yes, [AC_MSG_WARN([libulfius not found, can not build HTTP server])]) +AM_CONDITIONAL([HAVE_ULFIUS], [test "x${have_ulfius}" = "xyes"]) +if test "x${have_ulfius}" != "xno"; then +CPPFLAGS="$CPPFLAGS -DWITH_ULFIUS" +CFLAGS="$CFLAGS `$PKG_CONFIG libulfius --cflags`" +LIBS="$LIBS `$PKG_CONFIG libulfius --libs`" +fi + dnl Webcam support have_webcam="no" AC_CHECK_HEADERS(linux/videodev2.h, have_webcam=yes) @@ -379,7 +392,7 @@ AC_ARG_ENABLE([asan], AS_HELP_STRING([--enable-asan],[use AddressSanitizer [default=no]]),, enable_asan="no") -if test "x${enable_asan}" = "xyes"; then +if test "x${CC}" != "xclang" && test "x${enable_asan}" = "xyes"; then CFLAGS="$CFLAGS -fsanitize=address" fi @@ -697,6 +710,7 @@ fi echo " Documentation: ${have_pandoc}" echo " Compile old delay plugins: ${enable_old_delay}" +echo " Embedded HTTP server: ${have_ulfius}" echo echo " * Input plugins:" diff -Nru lebiniou-3.32/debian/changelog lebiniou-3.40/debian/changelog --- lebiniou-3.32/debian/changelog 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/changelog 2019-12-07 20:25:22.000000000 +0000 @@ -1,3 +1,14 @@ +lebiniou (3.40-1) unstable; urgency=low + + * New upstream release 3.40. + * debian/control: Add Build-Depends: libjansson-dev, libulfius-dev + * debian/tests/control: Fix Test-Command. (Closes: #947367) + * debian/lebiniou.lintian-overrides: Commented. + * debian/copyright: Update copyright years. + * debian/control: Standards-Version: 4.5.0. + + -- Olivier Girondel Sat, 07 Dec 2019 21:25:22 +0100 + lebiniou (3.32-1) unstable; urgency=low * New upstream release 3.32. diff -Nru lebiniou-3.32/debian/control lebiniou-3.40/debian/control --- lebiniou-3.32/debian/control 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/control 2019-12-07 20:25:22.000000000 +0000 @@ -5,8 +5,8 @@ Build-Depends: debhelper-compat (= 12), libglib2.0-dev, libfftw3-dev, libxml2-dev (>= 2.6), libswscale-dev, libfreetype6-dev, libasound2-dev, libsndfile1-dev, libjack-dev | libjack-jackd2-dev, libsdl2-ttf-dev, - libpulse-dev, libavutil-dev, libmagickwand-dev, pandoc -Standards-Version: 4.4.1 + libpulse-dev, libavutil-dev, libmagickwand-dev, pandoc, libjansson-dev, libulfius-dev +Standards-Version: 4.5.0 Rules-Requires-Root: no Vcs-Browser: https://gitlab.com/lebiniou/lebiniou Vcs-Git: https://gitlab.com/lebiniou/lebiniou.git diff -Nru lebiniou-3.32/debian/copyright lebiniou-3.40/debian/copyright --- lebiniou-3.32/debian/copyright 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/copyright 2019-12-07 20:25:22.000000000 +0000 @@ -4,11 +4,11 @@ Source: https://biniou.net Files: * -Copyright: 1994-2019 Olivier Girondel +Copyright: 1994-2020 Olivier Girondel License: GPL-2+ Files: debian/* -Copyright: 2011-2019 Olivier Girondel +Copyright: 2011-2020 Olivier Girondel License: GPL-2+ Files: src/pnglite.* diff -Nru lebiniou-3.32/debian/lebiniou.lintian-overrides lebiniou-3.40/debian/lebiniou.lintian-overrides --- lebiniou-3.32/debian/lebiniou.lintian-overrides 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/lebiniou.lintian-overrides 2019-12-07 20:25:22.000000000 +0000 @@ -1 +1,3 @@ +# rationale: liblebiniou.so.0 is a private/internal shared object lebiniou: package-name-doesnt-match-sonames +lebiniou: no-symbols-control-file diff -Nru lebiniou-3.32/debian/lintian-overrides lebiniou-3.40/debian/lintian-overrides --- lebiniou-3.32/debian/lintian-overrides 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -# rationale: liblebiniou.so.0 is a private/internal shared object -lebiniou binary: package-name-doesnt-match-sonames diff -Nru lebiniou-3.32/debian/tests/control lebiniou-3.40/debian/tests/control --- lebiniou-3.32/debian/tests/control 2019-10-09 15:00:55.000000000 +0000 +++ lebiniou-3.40/debian/tests/control 2019-12-07 20:25:22.000000000 +0000 @@ -1 +1 @@ -Test-Command: lebiniou --version \ No newline at end of file +Test-Command: lebiniou -i NULL --version \ No newline at end of file diff -Nru lebiniou-3.32/doc/Makefile.in lebiniou-3.40/doc/Makefile.in --- lebiniou-3.32/doc/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/doc/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -258,6 +258,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -302,6 +304,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/doc/manual/html/bindings.awk lebiniou-3.40/doc/manual/html/bindings.awk --- lebiniou-3.32/doc/manual/html/bindings.awk 2018-12-02 02:32:34.000000000 +0000 +++ lebiniou-3.40/doc/manual/html/bindings.awk 2020-01-22 18:33:57.000000000 +0000 @@ -9,6 +9,8 @@ return "Shift-"; if (mod == "CS") return "Ctrl-Shift-"; + if (mod == "AS") + return "Alt-Shift-"; } diff -Nru lebiniou-3.32/doc/manual/html/Makefile.in lebiniou-3.40/doc/manual/html/Makefile.in --- lebiniou-3.32/doc/manual/html/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/doc/manual/html/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -198,6 +198,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -242,6 +244,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/doc/manual/html/manual.md.in lebiniou-3.40/doc/manual/html/manual.md.in --- lebiniou-3.32/doc/manual/html/manual.md.in 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/doc/manual/html/manual.md.in 2020-01-22 18:33:57.000000000 +0000 @@ -157,6 +157,15 @@ * Use __S3__/__S4__ to select a plugin in the sequence (the selected plugin will have an arrow before it's name) * Use __S5__/__S6__ to move the selected plugin up/down in the sequence +#### Changing plugin parameters +You can change the parameters of the plugins: +* Use __S14__ to select previous plugin parameter to change +* Use __S15__ to select next plugin parameter to change +* Use __S16__ to decrease plugin parameter value +* Use __S17__ to increase plugin parameter value +* Use __S18__ to decrease plugin parameter value quickly +* Use __S19__ to increase plugin parameter value quickly + #### Example sequences Example sequences are available, install them by issuing the following command in your home directory: ```sh diff -Nru lebiniou-3.32/ltmain.sh lebiniou-3.40/ltmain.sh --- lebiniou-3.32/ltmain.sh 2019-10-13 13:42:24.000000000 +0000 +++ lebiniou-3.40/ltmain.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,11249 +0,0 @@ -#! /bin/sh -## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 - -# libtool (GNU libtool) 2.4.6 -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool 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, see . - - -PROGRAM=libtool -PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-11" -package_revision=2.4.6 - - -## ------ ## -## Usage. ## -## ------ ## - -# Run './libtool --help' for help with using this script from the -# command line. - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# After configure completes, it has a better idea of some of the -# shell tools we need than the defaults used by the functions shared -# with bootstrap, so set those here where they can still be over- -# ridden by the user, but otherwise take precedence. - -: ${AUTOCONF="autoconf"} -: ${AUTOMAKE="automake"} - - -## -------------------------- ## -## Source external libraries. ## -## -------------------------- ## - -# Much of our low-level functionality needs to be sourced from external -# libraries, which are installed to $pkgauxdir. - -# Set a version string for this script. -scriptversion=2015-01-20.17; # UTC - -# General shell script boiler plate, and helper functions. -# Written by Gary V. Vaughan, 2004 - -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# 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 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES 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, see . - -# Please report bugs or propose patches to gary@gnu.org. - - -## ------ ## -## Usage. ## -## ------ ## - -# Evaluate this file near the top of your script to gain access to -# the functions and variables defined here: -# -# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh -# -# If you need to override any of the default environment variable -# settings, do that before evaluating this file. - - -## -------------------- ## -## Shell normalisation. ## -## -------------------- ## - -# Some shells need a little help to be as Bourne compatible as possible. -# Before doing anything else, make sure all that help has been provided! - -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac -fi - -# NLS nuisances: We save the old values in case they are required later. -_G_user_locale= -_G_safe_locale= -for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test set = \"\${$_G_var+set}\"; then - save_$_G_var=\$$_G_var - $_G_var=C - export $_G_var - _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" - _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" - fi" -done - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Make sure IFS has a sensible default -sp=' ' -nl=' -' -IFS="$sp $nl" - -# There are apparently some retarded systems that use ';' as a PATH separator! -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - - -## ------------------------- ## -## Locate command utilities. ## -## ------------------------- ## - - -# func_executable_p FILE -# ---------------------- -# Check that FILE is an executable regular file. -func_executable_p () -{ - test -f "$1" && test -x "$1" -} - - -# func_path_progs PROGS_LIST CHECK_FUNC [PATH] -# -------------------------------------------- -# Search for either a program that responds to --version with output -# containing "GNU", or else returned by CHECK_FUNC otherwise, by -# trying all the directories in PATH with each of the elements of -# PROGS_LIST. -# -# CHECK_FUNC should accept the path to a candidate program, and -# set $func_check_prog_result if it truncates its output less than -# $_G_path_prog_max characters. -func_path_progs () -{ - _G_progs_list=$1 - _G_check_func=$2 - _G_PATH=${3-"$PATH"} - - _G_path_prog_max=0 - _G_path_prog_found=false - _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} - for _G_dir in $_G_PATH; do - IFS=$_G_save_IFS - test -z "$_G_dir" && _G_dir=. - for _G_prog_name in $_G_progs_list; do - for _exeext in '' .EXE; do - _G_path_prog=$_G_dir/$_G_prog_name$_exeext - func_executable_p "$_G_path_prog" || continue - case `"$_G_path_prog" --version 2>&1` in - *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; - *) $_G_check_func $_G_path_prog - func_path_progs_result=$func_check_prog_result - ;; - esac - $_G_path_prog_found && break 3 - done - done - done - IFS=$_G_save_IFS - test -z "$func_path_progs_result" && { - echo "no acceptable sed could be found in \$PATH" >&2 - exit 1 - } -} - - -# We want to be able to use the functions in this file before configure -# has figured out where the best binaries are kept, which means we have -# to search for them ourselves - except when the results are already set -# where we skip the searches. - -# Unless the user overrides by setting SED, search the path for either GNU -# sed, or the sed that truncates its output the least. -test -z "$SED" && { - _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for _G_i in 1 2 3 4 5 6 7; do - _G_sed_script=$_G_sed_script$nl$_G_sed_script - done - echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed - _G_sed_script= - - func_check_prog_sed () - { - _G_path_prog=$1 - - _G_count=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo '' >> conftest.nl - "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin - rm -f conftest.sed - SED=$func_path_progs_result -} - - -# Unless the user overrides by setting GREP, search the path for either GNU -# grep, or the grep that truncates its output the least. -test -z "$GREP" && { - func_check_prog_grep () - { - _G_path_prog=$1 - - _G_count=0 - _G_path_prog_max=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo 'GREP' >> conftest.nl - "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin - GREP=$func_path_progs_result -} - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# All uppercase variable names are used for environment variables. These -# variables can be overridden by the user before calling a script that -# uses them if a suitable command of that name is not already available -# in the command search PATH. - -: ${CP="cp -f"} -: ${ECHO="printf %s\n"} -: ${EGREP="$GREP -E"} -: ${FGREP="$GREP -F"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} - - -## -------------------- ## -## Useful sed snippets. ## -## -------------------- ## - -sed_dirname='s|/[^/]*$||' -sed_basename='s|^.*/||' - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s|\([`"$\\]\)|\\\1|g' - -# Same as above, but do not quote variable references. -sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' - -# Sed substitution that converts a w32 file name or path -# that contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-'\' parameter expansions in output of sed_double_quote_subst that -# were '\'-ed in input to the same. If an odd number of '\' preceded a -# '$' in input to sed_double_quote_subst, that '$' was protected from -# expansion. Since each input '\' is now two '\'s, look for any number -# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. -_G_bs='\\' -_G_bs2='\\\\' -_G_bs4='\\\\\\\\' -_G_dollar='\$' -sed_double_backslash="\ - s/$_G_bs4/&\\ -/g - s/^$_G_bs2$_G_dollar/$_G_bs&/ - s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g - s/\n//g" - - -## ----------------- ## -## Global variables. ## -## ----------------- ## - -# Except for the global variables explicitly listed below, the following -# functions in the '^func_' namespace, and the '^require_' namespace -# variables initialised in the 'Resource management' section, sourcing -# this file will not pollute your global namespace with anything -# else. There's no portable way to scope variables in Bourne shell -# though, so actually running these functions will sometimes place -# results into a variable named after the function, and often use -# temporary variables in the '^_G_' namespace. If you are careful to -# avoid using those namespaces casually in your sourcing script, things -# should continue to work as you expect. And, of course, you can freely -# overwrite any of the functions or variables defined here before -# calling anything to customize them. - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -# Allow overriding, eg assuming that you follow the convention of -# putting '$debug_cmd' at the start of all your functions, you can get -# bash to show function call trace with: -# -# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name -debug_cmd=${debug_cmd-":"} -exit_cmd=: - -# By convention, finish your script with: -# -# exit $exit_status -# -# so that you can set exit_status to non-zero if you want to indicate -# something went wrong during execution without actually bailing out at -# the point of failure. -exit_status=$EXIT_SUCCESS - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath=$0 - -# The name of this program. -progname=`$ECHO "$progpath" |$SED "$sed_basename"` - -# Make sure we have an absolute progpath for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` - progdir=`cd "$progdir" && pwd` - progpath=$progdir/$progname - ;; - *) - _G_IFS=$IFS - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS=$_G_IFS - test -x "$progdir/$progname" && break - done - IFS=$_G_IFS - test -n "$progdir" || progdir=`pwd` - progpath=$progdir/$progname - ;; -esac - - -## ----------------- ## -## Standard options. ## -## ----------------- ## - -# The following options affect the operation of the functions defined -# below, and should be set appropriately depending on run-time para- -# meters passed on the command line. - -opt_dry_run=false -opt_quiet=false -opt_verbose=false - -# Categories 'all' and 'none' are always available. Append any others -# you will pass as the first argument to func_warning from your own -# code. -warning_categories= - -# By default, display warnings according to 'opt_warning_types'. Set -# 'warning_func' to ':' to elide all warnings, or func_fatal_error to -# treat the next displayed warning as a fatal error. -warning_func=func_warn_and_continue - -# Set to 'all' to display all warnings, 'none' to suppress all -# warnings, or a space delimited list of some subset of -# 'warning_categories' to display only the listed warnings. -opt_warning_types=all - - -## -------------------- ## -## Resource management. ## -## -------------------- ## - -# This section contains definitions for functions that each ensure a -# particular resource (a file, or a non-empty configuration variable for -# example) is available, and if appropriate to extract default values -# from pertinent package files. Call them using their associated -# 'require_*' variable to ensure that they are executed, at most, once. -# -# It's entirely deliberate that calling these functions can set -# variables that don't obey the namespace limitations obeyed by the rest -# of this file, in order that that they be as useful as possible to -# callers. - - -# require_term_colors -# ------------------- -# Allow display of bold text on terminals that support it. -require_term_colors=func_require_term_colors -func_require_term_colors () -{ - $debug_cmd - - test -t 1 && { - # COLORTERM and USE_ANSI_COLORS environment variables take - # precedence, because most terminfo databases neglect to describe - # whether color sequences are supported. - test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} - - if test 1 = "$USE_ANSI_COLORS"; then - # Standard ANSI escape sequences - tc_reset='' - tc_bold=''; tc_standout='' - tc_red=''; tc_green='' - tc_blue=''; tc_cyan='' - else - # Otherwise trust the terminfo database after all. - test -n "`tput sgr0 2>/dev/null`" && { - tc_reset=`tput sgr0` - test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` - tc_standout=$tc_bold - test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` - test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` - test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` - test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` - test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` - } - fi - } - - require_term_colors=: -} - - -## ----------------- ## -## Function library. ## -## ----------------- ## - -# This section contains a variety of useful functions to call in your -# scripts. Take note of the portable wrappers for features provided by -# some modern shells, which will fall back to slower equivalents on -# less featureful shells. - - -# func_append VAR VALUE -# --------------------- -# Append VALUE onto the existing contents of VAR. - - # We should try to minimise forks, especially on Windows where they are - # unreasonably slow, so skip the feature probes when bash or zsh are - # being used: - if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then - : ${_G_HAVE_ARITH_OP="yes"} - : ${_G_HAVE_XSI_OPS="yes"} - # The += operator was introduced in bash 3.1 - case $BASH_VERSION in - [12].* | 3.0 | 3.0*) ;; - *) - : ${_G_HAVE_PLUSEQ_OP="yes"} - ;; - esac - fi - - # _G_HAVE_PLUSEQ_OP - # Can be empty, in which case the shell is probed, "yes" if += is - # useable or anything else if it does not work. - test -z "$_G_HAVE_PLUSEQ_OP" \ - && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ - && _G_HAVE_PLUSEQ_OP=yes - -if test yes = "$_G_HAVE_PLUSEQ_OP" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_append () - { - $debug_cmd - - eval "$1+=\$2" - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_append () - { - $debug_cmd - - eval "$1=\$$1\$2" - } -fi - - -# func_append_quoted VAR VALUE -# ---------------------------- -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -if test yes = "$_G_HAVE_PLUSEQ_OP"; then - eval 'func_append_quoted () - { - $debug_cmd - - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" - }' -else - func_append_quoted () - { - $debug_cmd - - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" - } -fi - - -# func_append_uniq VAR VALUE -# -------------------------- -# Append unique VALUE onto the existing contents of VAR, assuming -# entries are delimited by the first character of VALUE. For example: -# -# func_append_uniq options " --another-option option-argument" -# -# will only append to $options if " --another-option option-argument " -# is not already present somewhere in $options already (note spaces at -# each end implied by leading space in second argument). -func_append_uniq () -{ - $debug_cmd - - eval _G_current_value='`$ECHO $'$1'`' - _G_delim=`expr "$2" : '\(.\)'` - - case $_G_delim$_G_current_value$_G_delim in - *"$2$_G_delim"*) ;; - *) func_append "$@" ;; - esac -} - - -# func_arith TERM... -# ------------------ -# Set func_arith_result to the result of evaluating TERMs. - test -z "$_G_HAVE_ARITH_OP" \ - && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ - && _G_HAVE_ARITH_OP=yes - -if test yes = "$_G_HAVE_ARITH_OP"; then - eval 'func_arith () - { - $debug_cmd - - func_arith_result=$(( $* )) - }' -else - func_arith () - { - $debug_cmd - - func_arith_result=`expr "$@"` - } -fi - - -# func_basename FILE -# ------------------ -# Set func_basename_result to FILE with everything up to and including -# the last / stripped. -if test yes = "$_G_HAVE_XSI_OPS"; then - # If this shell supports suffix pattern removal, then use it to avoid - # forking. Hide the definitions single quotes in case the shell chokes - # on unsupported syntax... - _b='func_basename_result=${1##*/}' - _d='case $1 in - */*) func_dirname_result=${1%/*}$2 ;; - * ) func_dirname_result=$3 ;; - esac' - -else - # ...otherwise fall back to using sed. - _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' - _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` - if test "X$func_dirname_result" = "X$1"; then - func_dirname_result=$3 - else - func_append func_dirname_result "$2" - fi' -fi - -eval 'func_basename () -{ - $debug_cmd - - '"$_b"' -}' - - -# func_dirname FILE APPEND NONDIR_REPLACEMENT -# ------------------------------------------- -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -eval 'func_dirname () -{ - $debug_cmd - - '"$_d"' -}' - - -# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT -# -------------------------------------------------------- -# Perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# For efficiency, we do not delegate to the functions above but instead -# duplicate the functionality here. -eval 'func_dirname_and_basename () -{ - $debug_cmd - - '"$_b"' - '"$_d"' -}' - - -# func_echo ARG... -# ---------------- -# Echo program name prefixed message. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_echo_all ARG... -# -------------------- -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - - -# func_echo_infix_1 INFIX ARG... -# ------------------------------ -# Echo program name, followed by INFIX on the first line, with any -# additional lines not showing INFIX. -func_echo_infix_1 () -{ - $debug_cmd - - $require_term_colors - - _G_infix=$1; shift - _G_indent=$_G_infix - _G_prefix="$progname: $_G_infix: " - _G_message=$* - - # Strip color escape sequences before counting printable length - for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" - do - test -n "$_G_tc" && { - _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` - _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` - } - done - _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes - - func_echo_infix_1_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_infix_1_IFS - $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 - _G_prefix=$_G_indent - done - IFS=$func_echo_infix_1_IFS -} - - -# func_error ARG... -# ----------------- -# Echo program name prefixed message to standard error. -func_error () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 -} - - -# func_fatal_error ARG... -# ----------------------- -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - $debug_cmd - - func_error "$*" - exit $EXIT_FAILURE -} - - -# func_grep EXPRESSION FILENAME -# ----------------------------- -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $debug_cmd - - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_len STRING -# --------------- -# Set func_len_result to the length of STRING. STRING may not -# start with a hyphen. - test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_len () - { - $debug_cmd - - func_len_result=${#1} - }' -else - func_len () - { - $debug_cmd - - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` - } -fi - - -# func_mkdir_p DIRECTORY-PATH -# --------------------------- -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - $debug_cmd - - _G_directory_path=$1 - _G_dir_list= - - if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then - - # Protect directory names starting with '-' - case $_G_directory_path in - -*) _G_directory_path=./$_G_directory_path ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$_G_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - _G_dir_list=$_G_directory_path:$_G_dir_list - - # If the last portion added has no slash in it, the list is done - case $_G_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` - done - _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - - func_mkdir_p_IFS=$IFS; IFS=: - for _G_dir in $_G_dir_list; do - IFS=$func_mkdir_p_IFS - # mkdir can fail with a 'File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$_G_dir" 2>/dev/null || : - done - IFS=$func_mkdir_p_IFS - - # Bail out if we (or some other process) failed to create a directory. - test -d "$_G_directory_path" || \ - func_fatal_error "Failed to create '$1'" - fi -} - - -# func_mktempdir [BASENAME] -# ------------------------- -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, BASENAME is the basename for that directory. -func_mktempdir () -{ - $debug_cmd - - _G_template=${TMPDIR-/tmp}/${1-$progname} - - if test : = "$opt_dry_run"; then - # Return a directory name, but don't create it in dry-run mode - _G_tmpdir=$_G_template-$$ - else - - # If mktemp works, use that first and foremost - _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` - - if test ! -d "$_G_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - _G_tmpdir=$_G_template-${RANDOM-0}$$ - - func_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$_G_tmpdir" - umask $func_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$_G_tmpdir" || \ - func_fatal_error "cannot create temporary directory '$_G_tmpdir'" - fi - - $ECHO "$_G_tmpdir" -} - - -# func_normal_abspath PATH -# ------------------------ -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -func_normal_abspath () -{ - $debug_cmd - - # These SED scripts presuppose an absolute path with a trailing slash. - _G_pathcar='s|^/\([^/]*\).*$|\1|' - _G_pathcdr='s|^/[^/]*||' - _G_removedotparts=':dotsl - s|/\./|/|g - t dotsl - s|/\.$|/|' - _G_collapseslashes='s|/\{1,\}|/|g' - _G_finalslash='s|/*$|/|' - - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` - while :; do - # Processed it all yet? - if test / = "$func_normal_abspath_tpath"; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result"; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - - -# func_notquiet ARG... -# -------------------- -# Echo program name prefixed message only when not in quiet mode. -func_notquiet () -{ - $debug_cmd - - $opt_quiet || func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - - -# func_relative_path SRCDIR DSTDIR -# -------------------------------- -# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. -func_relative_path () -{ - $debug_cmd - - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=$func_dirname_result - if test -z "$func_relative_path_tlibdir"; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test -n "$func_stripname_result"; then - func_append func_relative_path_result "/$func_stripname_result" - fi - - # Normalisation. If bindir is libdir, return '.' else relative path. - if test -n "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - fi - - test -n "$func_relative_path_result" || func_relative_path_result=. - - : -} - - -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () -{ - $debug_cmd - - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" - fi - - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" - ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; - esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift - done -} - - -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd - - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; - esac - - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" - ;; - esac - - func_quote_for_expand_result=$_G_arg -} - - -# func_stripname PREFIX SUFFIX NAME -# --------------------------------- -# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_stripname () - { - $debug_cmd - - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary variable first. - func_stripname_result=$3 - func_stripname_result=${func_stripname_result#"$1"} - func_stripname_result=${func_stripname_result%"$2"} - }' -else - func_stripname () - { - $debug_cmd - - case $2 in - .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; - *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; - esac - } -fi - - -# func_show_eval CMD [FAIL_EXP] -# ----------------------------- -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" - - $opt_dry_run || { - eval "$_G_cmd" - _G_status=$? - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_show_eval_locale CMD [FAIL_EXP] -# ------------------------------------ -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - $opt_dry_run || { - eval "$_G_user_locale - $_G_cmd" - _G_status=$? - eval "$_G_safe_locale" - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_tr_sh -# ---------- -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - $debug_cmd - - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_verbose ARG... -# ------------------- -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $debug_cmd - - $opt_verbose && func_echo "$*" - - : -} - - -# func_warn_and_continue ARG... -# ----------------------------- -# Echo program name prefixed warning message to standard error. -func_warn_and_continue () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 -} - - -# func_warning CATEGORY ARG... -# ---------------------------- -# Echo program name prefixed warning message to standard error. Warning -# messages can be filtered according to CATEGORY, where this function -# elides messages where CATEGORY is not listed in the global variable -# 'opt_warning_types'. -func_warning () -{ - $debug_cmd - - # CATEGORY must be in the warning_categories list! - case " $warning_categories " in - *" $1 "*) ;; - *) func_internal_error "invalid warning category '$1'" ;; - esac - - _G_category=$1 - shift - - case " $opt_warning_types " in - *" $_G_category "*) $warning_func ${1+"$@"} ;; - esac -} - - -# func_sort_ver VER1 VER2 -# ----------------------- -# 'sort -V' is not generally available. -# Note this deviates from the version comparison in automake -# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a -# but this should suffice as we won't be specifying old -# version formats or redundant trailing .0 in bootstrap.conf. -# If we did want full compatibility then we should probably -# use m4_version_compare from autoconf. -func_sort_ver () -{ - $debug_cmd - - printf '%s\n%s\n' "$1" "$2" \ - | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n -} - -# func_lt_ver PREV CURR -# --------------------- -# Return true if PREV and CURR are in the correct order according to -# func_sort_ver, otherwise false. Use it like this: -# -# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." -func_lt_ver () -{ - $debug_cmd - - test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: -#! /bin/sh - -# Set a version string for this script. -scriptversion=2015-10-07.11; # UTC - -# A portable, pluggable option parser for Bourne shell. -# Written by Gary V. Vaughan, 2010 - -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# 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 3 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, see . - -# Please report bugs or propose patches to gary@gnu.org. - - -## ------ ## -## Usage. ## -## ------ ## - -# This file is a library for parsing options in your shell scripts along -# with assorted other useful supporting features that you can make use -# of too. -# -# For the simplest scripts you might need only: -# -# #!/bin/sh -# . relative/path/to/funclib.sh -# . relative/path/to/options-parser -# scriptversion=1.0 -# func_options ${1+"$@"} -# eval set dummy "$func_options_result"; shift -# ...rest of your script... -# -# In order for the '--version' option to work, you will need to have a -# suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. -# -# For '-h' and '--help' to work, you will also need a one line -# description of your script's purpose in a comment directly above the -# '# Written by ' line, like the one at the top of this file. -# -# The default options also support '--debug', which will turn on shell -# execution tracing (see the comment above debug_cmd below for another -# use), and '--verbose' and the func_verbose function to allow your script -# to display verbose messages only when your user has specified -# '--verbose'. -# -# After sourcing this file, you can plug processing for additional -# options by amending the variables from the 'Configuration' section -# below, and following the instructions in the 'Option parsing' -# section further down. - -## -------------- ## -## Configuration. ## -## -------------- ## - -# You should override these variables in your script after sourcing this -# file so that they reflect the customisations you have added to the -# option parser. - -# The usage line for option parsing errors and the start of '-h' and -# '--help' output messages. You can embed shell variables for delayed -# expansion at the time the message is displayed, but you will need to -# quote other shell meta-characters carefully to prevent them being -# expanded when the contents are evaled. -usage='$progpath [OPTION]...' - -# Short help message in response to '-h' and '--help'. Add to this or -# override it after sourcing this library to reflect the full set of -# options your script accepts. -usage_message="\ - --debug enable verbose shell tracing - -W, --warnings=CATEGORY - report the warnings falling in CATEGORY [all] - -v, --verbose verbosely report processing - --version print version information and exit - -h, --help print short or long help message and exit -" - -# Additional text appended to 'usage_message' in response to '--help'. -long_help_message=" -Warning categories include: - 'all' show all warnings - 'none' turn off all the warnings - 'error' warnings are treated as fatal errors" - -# Help message printed before fatal option parsing errors. -fatal_help="Try '\$progname --help' for more information." - - - -## ------------------------- ## -## Hook function management. ## -## ------------------------- ## - -# This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. - -# func_hookable FUNC_NAME -# ----------------------- -# Declare that FUNC_NAME will run hooks added with -# 'func_add_hook FUNC_NAME ...'. -func_hookable () -{ - $debug_cmd - - func_append hookable_fns " $1" -} - - -# func_add_hook FUNC_NAME HOOK_FUNC -# --------------------------------- -# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must -# first have been declared "hookable" by a call to 'func_hookable'. -func_add_hook () -{ - $debug_cmd - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not accept hook functions." ;; - esac - - eval func_append ${1}_hooks '" $2"' -} - - -# func_remove_hook FUNC_NAME HOOK_FUNC -# ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. -func_remove_hook () -{ - $debug_cmd - - eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' -} - - -# func_run_hooks FUNC_NAME [ARG]... -# --------------------------------- -# Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more -# than a whitespace-delimited list of legal shell function names, and -# no effort is wasted trying to catch shell meta-characters or preserve -# whitespace. -func_run_hooks () -{ - $debug_cmd - - _G_rc_run_hooks=false - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; - esac - - eval _G_hook_fns=\$$1_hooks; shift - - for _G_hook in $_G_hook_fns; do - if eval $_G_hook '"$@"'; then - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift - _G_rc_run_hooks=: - fi - done - - $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result -} - - - -## --------------- ## -## Option parsing. ## -## --------------- ## - -# In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, you may remove/edit -# any options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. In this case you also must return $EXIT_SUCCESS to let the -# hook's caller know that it should pay attention to -# '_result'. Returning $EXIT_FAILURE signalizes that -# arguments are left untouched by the hook and therefore caller will ignore the -# result variable. -# -# Like this: -# -# my_options_prep () -# { -# $debug_cmd -# -# # Extend the existing usage message. -# usage_message=$usage_message' -# -s, --silent don'\''t print informational messages -# ' -# # No change in '$@' (ignored completely by this hook). There is -# # no need to do the equivalent (but slower) action: -# # func_quote_for_eval ${1+"$@"} -# # my_options_prep_result=$func_quote_for_eval_result -# false -# } -# func_add_hook func_options_prep my_options_prep -# -# -# my_silent_option () -# { -# $debug_cmd -# -# args_changed=false -# -# # Note that for efficiency, we parse as many options as we can -# # recognise in a loop before passing the remainder back to the -# # caller on the first unrecognised argument we encounter. -# while test $# -gt 0; do -# opt=$1; shift -# case $opt in -# --silent|-s) opt_silent=: -# args_changed=: -# ;; -# # Separate non-argument short options: -# -s*) func_split_short_opt "$_G_opt" -# set dummy "$func_split_short_opt_name" \ -# "-$func_split_short_opt_arg" ${1+"$@"} -# shift -# args_changed=: -# ;; -# *) # Make sure the first unrecognised option "$_G_opt" -# # is added back to "$@", we could need that later -# # if $args_changed is true. -# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; -# esac -# done -# -# if $args_changed; then -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result -# fi -# -# $args_changed -# } -# func_add_hook func_parse_options my_silent_option -# -# -# my_option_validation () -# { -# $debug_cmd -# -# $opt_silent && $opt_verbose && func_fatal_help "\ -# '--silent' and '--verbose' options are mutually exclusive." -# -# false -# } -# func_add_hook func_validate_options my_option_validation -# -# You'll also need to manually amend $usage_message to reflect the extra -# options you parse. It's preferable to append if you can, so that -# multiple option parsing hooks can be added safely. - - -# func_options_finish [ARG]... -# ---------------------------- -# Finishing the option parse loop (call 'func_options' hooks ATM). -func_options_finish () -{ - $debug_cmd - - _G_func_options_finish_exit=false - if func_run_hooks func_options ${1+"$@"}; then - func_options_finish_result=$func_run_hooks_result - _G_func_options_finish_exit=: - fi - - $_G_func_options_finish_exit -} - - -# func_options [ARG]... -# --------------------- -# All the functions called inside func_options are hookable. See the -# individual implementations for details. -func_hookable func_options -func_options () -{ - $debug_cmd - - _G_rc_options=false - - for my_func in options_prep parse_options validate_options options_finish - do - if eval func_$my_func '${1+"$@"}'; then - eval _G_res_var='$'"func_${my_func}_result" - eval set dummy "$_G_res_var" ; shift - _G_rc_options=: - fi - done - - # Save modified positional parameters for caller. As a top-level - # options-parser function we always need to set the 'func_options_result' - # variable (regardless the $_G_rc_options value). - if $_G_rc_options; then - func_options_result=$_G_res_var - else - func_quote_for_eval ${1+"$@"} - func_options_result=$func_quote_for_eval_result - fi - - $_G_rc_options -} - - -# func_options_prep [ARG]... -# -------------------------- -# All initialisations required before starting the option parse loop. -# Note that when calling hook functions, we pass through the list of -# positional parameters. If a hook function modifies that list, and -# needs to propagate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). -func_hookable func_options_prep -func_options_prep () -{ - $debug_cmd - - # Option defaults: - opt_verbose=false - opt_warning_types= - - _G_rc_options_prep=false - if func_run_hooks func_options_prep ${1+"$@"}; then - _G_rc_options_prep=: - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result - fi - - $_G_rc_options_prep -} - - -# func_parse_options [ARG]... -# --------------------------- -# The main option parsing loop. -func_hookable func_parse_options -func_parse_options () -{ - $debug_cmd - - func_parse_options_result= - - _G_rc_parse_options=false - # this just eases exit handling - while test $# -gt 0; do - # Defer to hook functions for initial option parsing, so they - # get priority in the event of reusing an option name. - if func_run_hooks func_parse_options ${1+"$@"}; then - eval set dummy "$func_run_hooks_result"; shift - _G_rc_parse_options=: - fi - - # Break out of the loop if we already parsed every option. - test $# -gt 0 || break - - _G_match_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" - $debug_cmd - ;; - - --no-warnings|--no-warning|--no-warn) - set dummy --warnings none ${1+"$@"} - shift - ;; - - --warnings|--warning|-W) - if test $# = 0 && func_missing_arg $_G_opt; then - _G_rc_parse_options=: - break - fi - case " $warning_categories $1" in - *" $1 "*) - # trailing space prevents matching last $1 above - func_append_uniq opt_warning_types " $1" - ;; - *all) - opt_warning_types=$warning_categories - ;; - *none) - opt_warning_types=none - warning_func=: - ;; - *error) - opt_warning_types=$warning_categories - warning_func=func_fatal_error - ;; - *) - func_fatal_error \ - "unsupported warning category: '$1'" - ;; - esac - shift - ;; - - --verbose|-v) opt_verbose=: ;; - --version) func_version ;; - -\?|-h) func_usage ;; - --help) func_help ;; - - # Separate optargs to long options (plugins may need this): - --*=*) func_split_equals "$_G_opt" - set dummy "$func_split_equals_lhs" \ - "$func_split_equals_rhs" ${1+"$@"} - shift - ;; - - # Separate optargs to short options: - -W*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-v*|-x*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) _G_rc_parse_options=: ; break ;; - -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift - _G_match_parse_options=false - break - ;; - esac - - $_G_match_parse_options && _G_rc_parse_options=: - done - - - if $_G_rc_parse_options; then - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result - fi - - $_G_rc_parse_options -} - - -# func_validate_options [ARG]... -# ------------------------------ -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -func_hookable func_validate_options -func_validate_options () -{ - $debug_cmd - - _G_rc_validate_options=false - - # Display all warnings if -W was not given. - test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - - if func_run_hooks func_validate_options ${1+"$@"}; then - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result - _G_rc_validate_options=: - fi - - # Bail if the options were screwed! - $exit_cmd $EXIT_FAILURE - - $_G_rc_validate_options -} - - - -## ----------------- ## -## Helper functions. ## -## ----------------- ## - -# This section contains the helper functions used by the rest of the -# hookable option parser framework in ascii-betical order. - - -# func_fatal_help ARG... -# ---------------------- -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - eval \$ECHO \""$fatal_help"\" - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - - -# func_help -# --------- -# Echo long help message to standard output and exit. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message" - exit 0 -} - - -# func_missing_arg ARGNAME -# ------------------------ -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $debug_cmd - - func_error "Missing argument for '$1'." - exit_cmd=exit -} - - -# func_split_equals STRING -# ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. -test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=${1%%=*} - func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` - func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ - || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` - } -fi #func_split_equals - - -# func_split_short_opt SHORTOPT -# ----------------------------- -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"} - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` - func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` - } -fi #func_split_short_opt - - -# func_usage -# ---------- -# Echo short help message to standard output and exit. -func_usage () -{ - $debug_cmd - - func_usage_message - $ECHO "Run '$progname --help |${PAGER-more}' for full usage" - exit 0 -} - - -# func_usage_message -# ------------------ -# Echo short help message to standard output. -func_usage_message () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - echo - $SED -n 's|^# || - /^Written by/{ - x;p;x - } - h - /^Written by/q' < "$progpath" - echo - eval \$ECHO \""$usage_message"\" -} - - -# func_version -# ------------ -# Echo version message to standard output and exit. -func_version () -{ - $debug_cmd - - printf '%s\n' "$progname $scriptversion" - $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p - } - /^# Written by / { - s|^# || - p - } - /^warranty; /q' < "$progpath" - - exit $? -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: - -# Set a version string. -scriptversion='(GNU libtool) 2.4.6' - - -# func_echo ARG... -# ---------------- -# Libtool also displays the current mode in messages, so override -# funclib.sh func_echo with this custom definition. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_warning ARG... -# ------------------- -# Libtool warnings are not categorized, so override funclib.sh -# func_warning with this simpler definition. -func_warning () -{ - $debug_cmd - - $warning_func ${1+"$@"} -} - - -## ---------------- ## -## Options parsing. ## -## ---------------- ## - -# Hook in the functions to make sure our own options are parsed during -# the option parsing loop. - -usage='$progpath [OPTION]... [MODE-ARG]...' - -# Short help message in response to '-h'. -usage_message="Options: - --config show all configuration variables - --debug enable verbose shell tracing - -n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --mode=MODE use operation mode MODE - --no-warnings equivalent to '-Wnone' - --preserve-dup-deps don't remove duplicate dependency libraries - --quiet, --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - -v, --verbose print more informational messages than default - --version print version information - -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] - -h, --help, --help-all print short, long, or detailed help message -" - -# Additional text appended to 'usage_message' in response to '--help'. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. When passed as first option, -'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. -Try '$progname --help --mode=MODE' for a more detailed description of MODE. - -When reporting a bug, please describe a test case to reproduce it and -include the following information: - - host-triplet: $host - shell: $SHELL - compiler: $LTCC - compiler flags: $LTCFLAGS - linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-11 - automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` - autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` - -Report bugs to . -GNU libtool home page: . -General help using GNU software: ." - exit 0 -} - - -# func_lo2o OBJECT-NAME -# --------------------- -# Transform OBJECT-NAME from a '.lo' suffix to the platform specific -# object suffix. - -lo2o=s/\\.lo\$/.$objext/ -o2lo=s/\\.$objext\$/.lo/ - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_lo2o () - { - case $1 in - *.lo) func_lo2o_result=${1%.lo}.$objext ;; - * ) func_lo2o_result=$1 ;; - esac - }' - - # func_xform LIBOBJ-OR-SOURCE - # --------------------------- - # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) - # suffix to a '.lo' libtool-object suffix. - eval 'func_xform () - { - func_xform_result=${1%.*}.lo - }' -else - # ...otherwise fall back to using sed. - func_lo2o () - { - func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` - } - - func_xform () - { - func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` - } -fi - - -# func_fatal_configuration ARG... -# ------------------------------- -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func__fatal_error ${1+"$@"} \ - "See the $PACKAGE documentation for more information." \ - "Fatal configuration error." -} - - -# func_config -# ----------- -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - - -# func_features -# ------------- -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test yes = "$build_libtool_libs"; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test yes = "$build_old_libs"; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - - -# func_enable_tag TAGNAME -# ----------------------- -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname=$1 - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf=/$re_begincf/,/$re_endcf/p - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - - -# func_check_version_match -# ------------------------ -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# libtool_options_prep [ARG]... -# ----------------------------- -# Preparation for options parsed by libtool. -libtool_options_prep () -{ - $debug_mode - - # Option defaults: - opt_config=false - opt_dlopen= - opt_dry_run=false - opt_help=false - opt_mode= - opt_preserve_dup_deps=false - opt_quiet=false - - nonopt= - preserve_args= - - _G_rc_lt_options_prep=: - - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - *) - _G_rc_lt_options_prep=false - ;; - esac - - if $_G_rc_lt_options_prep; then - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result - fi - - $_G_rc_lt_options_prep -} -func_add_hook func_options_prep libtool_options_prep - - -# libtool_parse_options [ARG]... -# --------------------------------- -# Provide handling for libtool specific options. -libtool_parse_options () -{ - $debug_cmd - - _G_rc_lt_parse_options=false - - # Perform our own loop to consume as many options as possible in - # each iteration. - while test $# -gt 0; do - _G_match_lt_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - - --config) func_config ;; - - --dlopen|-dlopen) - opt_dlopen="${opt_dlopen+$opt_dlopen -}$1" - shift - ;; - - --preserve-dup-deps) - opt_preserve_dup_deps=: ;; - - --features) func_features ;; - - --finish) set dummy --mode finish ${1+"$@"}; shift ;; - - --help) opt_help=: ;; - - --help-all) opt_help=': help-all' ;; - - --mode) test $# = 0 && func_missing_arg $_G_opt && break - opt_mode=$1 - case $1 in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $_G_opt" - exit_cmd=exit - break - ;; - esac - shift - ;; - - --no-silent|--no-quiet) - opt_quiet=false - func_append preserve_args " $_G_opt" - ;; - - --no-warnings|--no-warning|--no-warn) - opt_warning=false - func_append preserve_args " $_G_opt" - ;; - - --no-verbose) - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --silent|--quiet) - opt_quiet=: - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --tag) test $# = 0 && func_missing_arg $_G_opt && break - opt_tag=$1 - func_append preserve_args " $_G_opt $1" - func_enable_tag "$1" - shift - ;; - - --verbose|-v) opt_quiet=false - opt_verbose=: - func_append preserve_args " $_G_opt" - ;; - - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"} ; shift - _G_match_lt_parse_options=false - break - ;; - esac - $_G_match_lt_parse_options && _G_rc_lt_parse_options=: - done - - if $_G_rc_lt_parse_options; then - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result - fi - - $_G_rc_lt_parse_options -} -func_add_hook func_parse_options libtool_parse_options - - - -# libtool_validate_options [ARG]... -# --------------------------------- -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -libtool_validate_options () -{ - # save first non-option argument - if test 0 -lt $#; then - nonopt=$1 - shift - fi - - # preserve --debug - test : = "$debug_cmd" || func_append preserve_args " --debug" - - case $host in - # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 - # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - test yes != "$build_libtool_libs" \ - && test yes != "$build_old_libs" \ - && func_fatal_configuration "not configured to build any kind of library" - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test execute != "$opt_mode"; then - func_error "unrecognized option '-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help=$help - help="Try '$progname --help --mode=$opt_mode' for more information." - } - - # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result -} -func_add_hook func_validate_options libtool_validate_options - - -# Process options as early as possible so that --help and --version -# can return quickly. -func_options ${1+"$@"} -eval set dummy "$func_options_result"; shift - - - -## ----------- ## -## Main. ## -## ----------- ## - -magic='%%%MAGIC variable%%%' -magic_exe='%%%MAGIC EXE variable%%%' - -# Global variables. -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# func_generated_by_libtool -# True iff stdin has been generated by Libtool. This function is only -# a basic sanity check; it will hardly flush out determined imposters. -func_generated_by_libtool_p () -{ - $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if 'file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case $lalib_p_line in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test yes = "$lalib_p" -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - test -f "$1" && - $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $debug_cmd - - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# 'FILE.' does not work on cygwin managed mounts. -func_source () -{ - $debug_cmd - - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case $lt_sysroot:$1 in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result='='$func_stripname_result - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $debug_cmd - - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=$1 - if test yes = "$build_libtool_libs"; then - write_lobj=\'$2\' - else - write_lobj=none - fi - - if test yes = "$build_old_libs"; then - write_oldobj=\'$3\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $debug_cmd - - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result= - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result"; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $debug_cmd - - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $debug_cmd - - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $debug_cmd - - if test -z "$2" && test -n "$1"; then - func_error "Could not determine host file name corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result=$1 - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $debug_cmd - - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " '$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result=$3 - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $debug_cmd - - case $4 in - $1 ) func_to_host_path_result=$3$func_to_host_path_result - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via '$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $debug_cmd - - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $debug_cmd - - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result=$1 -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result=$func_convert_core_msys_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result=$func_convert_core_file_wine_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via '$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $debug_cmd - - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd=func_convert_path_$func_stripname_result - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $debug_cmd - - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result=$1 -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_msys_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_path_wine_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_dll_def_p FILE -# True iff FILE is a Windows DLL '.def' file. -# Keep in sync with _LT_DLL_DEF_P in libtool.m4 -func_dll_def_p () -{ - $debug_cmd - - func_dll_def_p_tmp=`$SED -n \ - -e 's/^[ ]*//' \ - -e '/^\(;.*\)*$/d' \ - -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ - -e q \ - "$1"` - test DEF = "$func_dll_def_p_tmp" -} - - -# func_mode_compile arg... -func_mode_compile () -{ - $debug_cmd - - # Get the compilation command and the source file. - base_compile= - srcfile=$nonopt # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg=$arg - arg_mode=normal - ;; - - target ) - libobj=$arg - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify '-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs=$IFS; IFS=, - for arg in $args; do - IFS=$save_ifs - func_append_quoted lastarg "$arg" - done - IFS=$save_ifs - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg=$srcfile - srcfile=$arg - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with '-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj=$func_basename_result - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from '$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test yes = "$build_libtool_libs" \ - || func_fatal_configuration "cannot build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name '$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname=$func_basename_result - xdir=$func_dirname_result - lobj=$xdir$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test yes = "$build_old_libs"; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test no = "$compiler_c_o"; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext - lockfile=$output_obj.lock - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test yes = "$need_locks"; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test warn = "$need_locks"; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test yes = "$build_libtool_libs"; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test no != "$pic_mode"; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test yes = "$suppress_opt"; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test yes = "$build_old_libs"; then - if test yes != "$pic_mode"; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test yes = "$compiler_c_o"; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test no != "$need_locks"; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test compile = "$opt_mode" && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a '.o' file suitable for static linking - -static only build a '.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a 'standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix '.c' with the -library object suffix, '.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to '-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the '--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the 'install' or 'cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE use a list of object files found in FILE to specify objects - -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with '-') are ignored. - -Every other argument is treated as a filename. Files ending in '.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in '.la', then a libtool library is created, -only library objects ('.lo' files) may be specified, and '-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created -using 'ar' and 'ranlib', or on Windows using 'lib'. - -If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode '$opt_mode'" - ;; - esac - - echo - $ECHO "Try '$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test : = "$opt_help"; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | $SED -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - $SED '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $debug_cmd - - # The first argument is the command name. - cmd=$nonopt - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "'$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "'$file' was not linked with '-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir=$func_dirname_result - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir=$func_dirname_result - ;; - - *) - func_warning "'-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir=$absdir - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic=$magic - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file=$progdir/$program - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file=$progdir/$program - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if $opt_dry_run; then - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - else - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd=\$cmd$args - fi -} - -test execute = "$opt_mode" && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $debug_cmd - - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "'$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument '$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and '=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_quiet && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the '-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the '$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the '$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the '$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test finish = "$opt_mode" && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $debug_cmd - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac - then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=false - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=: ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test X-m = "X$prev" && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the '$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=: - if $isdir; then - destdir=$dest - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir=$func_dirname_result - destname=$func_basename_result - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "'$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "'$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir=$func_dirname_result - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking '$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname=$1 - shift - - srcname=$realname - test -n "$relink_command" && srcname=${realname}T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme=$stripme - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme= - ;; - esac - ;; - os2*) - case $realname in - *_dll.a) - tstripme= - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try 'ln -sf' first, because the 'ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib=$destdir/$realname - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name=$func_basename_result - instname=$dir/${name}i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest=$destfile - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to '$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test yes = "$build_old_libs"; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext= - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=.exe - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script '$wrapper'" - - finalize=: - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "'$lib' has not been installed in '$libdir'" - finalize=false - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test no = "$fast_install" && test -n "$relink_command"; then - $opt_dry_run || { - if $finalize; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file=$func_basename_result - outputname=$tmpdir/$file - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink '$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file=$outputname - else - func_warning "cannot relink '$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name=$func_basename_result - - # Set up the ranlib parameters. - oldlib=$destdir/$name - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run '$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test install = "$opt_mode" && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $debug_cmd - - my_outputname=$1 - my_originator=$2 - my_pic_p=${3-false} - my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms=${my_outputname}S.c - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist=$output_objdir/$my_outputname.nm - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* External symbol declarations for the compiler. */\ -" - - if test yes = "$dlself"; then - func_verbose "generating symbol list for '$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from '$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols=$output_objdir/$outputname.exp - $opt_dry_run || { - $RM $export_symbols - eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from '$dlprefile'" - func_basename "$dlprefile" - name=$func_basename_result - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename= - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname"; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename=$func_basename_result - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename"; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - func_show_eval '$RM "${nlist}I"' - if test -n "$global_symbol_to_import"; then - eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[];\ -" - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ -static void lt_syminit(void) -{ - LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; - for (; symbol->name; ++symbol) - {" - $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" - echo >> "$output_objdir/$my_dlsyms" "\ - } -}" - fi - echo >> "$output_objdir/$my_dlsyms" "\ -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{ {\"$my_originator\", (void *) 0}," - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ - {\"@INIT@\", (void *) <_syminit}," - fi - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - $my_pic_p && pic_flag_for_symtable=" $pic_flag" - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' - - # Transform the symbol file into the correct name. - symfileobj=$output_objdir/${my_outputname}S.$objext - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for '$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $debug_cmd - - win32_libid_type=unknown - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - case $nm_interface in - "MS dumpbin") - if func_cygming_ms_implib_p "$1" || - func_cygming_gnu_implib_p "$1" - then - win32_nmres=import - else - win32_nmres= - fi - ;; - *) - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s|.*|import| - p - q - } - }'` - ;; - esac - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $debug_cmd - - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $debug_cmd - - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive that possess that section. Heuristic: eliminate - # all those that have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $debug_cmd - - if func_cygming_gnu_implib_p "$1"; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1"; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result= - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $debug_cmd - - f_ex_an_ar_dir=$1; shift - f_ex_an_ar_oldlib=$1 - if test yes = "$lock_old_archive_extraction"; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test yes = "$lock_old_archive_extraction"; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $debug_cmd - - my_gentop=$1; shift - my_oldlibs=${1+"$@"} - my_oldobjs= - my_xlib= - my_xabs= - my_xdir= - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib=$func_basename_result - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir=$my_gentop/$my_xlib_u - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - func_basename "$darwin_archive" - darwin_base_archive=$func_basename_result - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches; do - func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" - $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" - cd "unfat-$$/$darwin_base_archive-$darwin_arch" - func_extract_an_archive "`pwd`" "$darwin_base_archive" - cd "$darwin_curdir" - $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result=$my_oldobjs -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory where it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ that is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options that match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test yes = "$fast_install"; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - \$ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* declarations of non-ANSI functions */ -#if defined __MINGW32__ -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined __CYGWIN__ -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined other_platform || defined ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined _MSC_VER -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -#elif defined __MINGW32__ -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined __CYGWIN__ -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined other platforms ... */ -#endif - -#if defined PATH_MAX -# define LT_PATHMAX PATH_MAX -#elif defined MAXPATHLEN -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ - defined __OS2__ -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free (stale); stale = 0; } \ -} while (0) - -#if defined LT_DEBUGWRAPPER -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - size_t tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined HAVE_DOS_BASED_FILE_SYSTEM - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined HAVE_DOS_BASED_FILE_SYSTEM - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = (size_t) (q - p); - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (STREQ (str, pat)) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - size_t len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - size_t orig_value_len = strlen (orig_value); - size_t add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - size_t len = strlen (new_value); - while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[--len] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $debug_cmd - - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_suncc_cstd_abi -# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! -# Several compiler flags select an ABI that is incompatible with the -# Cstd library. Avoid specifying it if any are in CXXFLAGS. -func_suncc_cstd_abi () -{ - $debug_cmd - - case " $compile_command " in - *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) - suncc_use_cstd_abi=no - ;; - *) - suncc_use_cstd_abi=yes - ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $debug_cmd - - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # what system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll that has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - os2dllname= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=false - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module=$wl-single_module - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test yes != "$build_libtool_libs" \ - && func_fatal_configuration "cannot build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg=$1 - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir=$arg - prev= - continue - ;; - dlfiles|dlprefiles) - $preload || { - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=: - } - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test no = "$dlself"; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test dlprefiles = "$prev"; then - dlself=yes - elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test dlfiles = "$prev"; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols=$arg - test -f "$arg" \ - || func_fatal_error "symbol file '$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex=$arg - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir=$arg - prev= - continue - ;; - mllvm) - # Clang does not use LLVM to link, so we can simply discard any - # '-mllvm $arg' options when doing the link step. - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - if test none != "$pic_object"; then - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - fi - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file '$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - os2dllname) - os2dllname=$arg - prev= - continue - ;; - precious_regex) - precious_files_regex=$arg - prev= - continue - ;; - release) - release=-$arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test rpath = "$prev"; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds=$arg - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg=$arg - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "'-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test X-export-symbols = "X$arg"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between '-L' and '$1'" - else - func_fatal_error "need path for '-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of '$dir'" - dir=$absdir - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test X-lc = "X$arg" || test X-lm = "X$arg"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test X-lc = "X$arg" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) - # Do not include libc due to us having libc/libc_r. - test X-lc = "X$arg" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test X-lc = "X$arg" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test X-lc = "X$arg" && continue - ;; - esac - elif test X-lc_r = "X$arg"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -mllvm) - prev=mllvm - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module=$wl-multi_module - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "'-no-install' is ignored for $host" - func_warning "assuming '-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -os2dllname) - prev=os2dllname - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # -fstack-protector* stack protector flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -specs=* GCC specs files - # -stdlib=* select c++ std lib with clang - # -fsanitize=* Clang/GCC memory and address sanitizer - # -fuse-ld=* Linker select flags for GCC - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - -Z*) - if test os2 = "`expr $host : '.*\(os2\)'`"; then - # OS/2 uses -Zxxx to specify OS/2-specific options - compiler_flags="$compiler_flags $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case $arg in - -Zlinker | -Zstack) - prev=xcompiler - ;; - esac - continue - else - # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - fi - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - test none = "$pic_object" || { - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - } - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test dlfiles = "$prev"; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test dlprefiles = "$prev"; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the '$prevarg' option requires an argument" - - if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname=$func_basename_result - libobjs_save=$libobjs - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - # Definition is injected by LT_CONFIG during libtool generation. - func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" - - func_dirname "$output" "/" "" - output_objdir=$func_dirname_result$objdir - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test lib = "$linkmode"; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=false - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test lib,link = "$linkmode,$pass"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs=$tmp_deplibs - fi - - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass"; then - libs=$deplibs - deplibs= - fi - if test prog = "$linkmode"; then - case $pass in - dlopen) libs=$dlfiles ;; - dlpreopen) libs=$dlprefiles ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; - esac - fi - if test lib,dlpreopen = "$linkmode,$pass"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs=$dlprefiles - fi - if test dlopen = "$pass"; then - # Collect dlpreopened libraries - save_deplibs=$deplibs - deplibs= - fi - - for deplib in $libs; do - lib= - found=false - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test lib != "$linkmode" && test prog != "$linkmode"; then - func_warning "'-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test lib = "$linkmode"; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib=$searchdir/lib$name$search_ext - if test -f "$lib"; then - if test .la = "$search_ext"; then - found=: - else - found=false - fi - break 2 - fi - done - done - if $found; then - # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll=$l - done - if test "X$ll" = "X$old_library"; then # only static version available - found=false - func_dirname "$lib" "" "." - ladir=$func_dirname_result - lib=$ladir/$old_library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - else - # deplib doesn't seem to be a libtool library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - ;; # -l - *.ltframework) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test conv = "$pass" && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - if test scan = "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "'-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test link = "$pass"; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=false - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=: - fi - ;; - pass_all) - valid_a_lib=: - ;; - esac - if $valid_a_lib; then - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - else - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - fi - ;; - esac - continue - ;; - prog) - if test link != "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - elif test prog = "$linkmode"; then - if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=: - continue - ;; - esac # case $deplib - - $found || test -f "$lib" \ - || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "'$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir=$func_dirname_result - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass" || - { test prog != "$linkmode" && test lib != "$linkmode"; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test conv = "$pass"; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test prog != "$linkmode" && test lib != "$linkmode"; then - func_fatal_error "'$lib' is not a convenience library" - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test yes = "$prefer_static_libs" || - test built,no = "$prefer_static_libs,$installed"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib=$l - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - - # This library was specified with -dlopen. - if test dlopen = "$pass"; then - test -z "$libdir" \ - && func_fatal_error "cannot -dlopen a convenience library: '$lib'" - if test -z "$dlname" || - test yes != "$dlopen_support" || - test no = "$build_libtool_libs" - then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of '$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir=$ladir - fi - ;; - esac - func_basename "$lib" - laname=$func_basename_result - - # Find the relevant object directory and library name. - if test yes = "$installed"; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library '$lib' was moved." - dir=$ladir - absdir=$abs_ladir - libdir=$abs_ladir - else - dir=$lt_sysroot$libdir - absdir=$lt_sysroot$libdir - fi - test yes = "$hardcode_automatic" && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir=$ladir - absdir=$abs_ladir - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir=$ladir/$objdir - absdir=$abs_ladir/$objdir - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test dlpreopen = "$pass"; then - if test -z "$libdir" && test prog = "$linkmode"; then - func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" - fi - case $host in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test lib = "$linkmode"; then - deplibs="$dir/$old_library $deplibs" - elif test prog,link = "$linkmode,$pass"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test prog = "$linkmode" && test link != "$pass"; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=false - if test no != "$link_all_deplibs" || test -z "$library_names" || - test no = "$build_libtool_libs"; then - linkalldeplibs=: - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if $linkalldeplibs; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test prog,link = "$linkmode,$pass"; then - if test -n "$library_names" && - { { test no = "$prefer_static_libs" || - test built,yes = "$prefer_static_libs,$installed"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then - # Make sure the rpath contains only unique directories. - case $temp_rpath: in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if $alldeplibs && - { test pass_all = "$deplibs_check_method" || - { test yes = "$build_libtool_libs" && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test built = "$use_static_libs" && test yes = "$installed"; then - use_static_libs=no - fi - if test -n "$library_names" && - { test no = "$use_static_libs" || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc* | *os2*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test no = "$installed"; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule= - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule=$dlpremoduletest - break - fi - done - if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then - echo - if test prog = "$linkmode"; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test lib = "$linkmode" && - test yes = "$hardcode_into_libs"; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname=$1 - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname=$dlname - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc* | *os2*) - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - esac - eval soname=\"$soname_spec\" - else - soname=$realname - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot=$soname - func_basename "$soroot" - soname=$func_basename_result - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from '$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for '$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test prog = "$linkmode" || test relink != "$opt_mode"; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test no = "$hardcode_direct"; then - add=$dir/$linklib - case $host in - *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; - *-*-sysv4*uw2*) add_dir=-L$dir ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir=-L$dir ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we cannot - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library"; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add=$dir/$old_library - fi - elif test -n "$old_library"; then - add=$dir/$old_library - fi - fi - esac - elif test no = "$hardcode_minus_L"; then - case $host in - *-*-sunos*) add_shlibpath=$dir ;; - esac - add_dir=-L$dir - add=-l$name - elif test no = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - relink) - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$dir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$absdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test yes != "$lib_linked"; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test prog = "$linkmode"; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test yes != "$hardcode_direct" && - test yes != "$hardcode_minus_L" && - test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test prog = "$linkmode" || test relink = "$opt_mode"; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$libdir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$libdir - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add=-l$name - elif test yes = "$hardcode_automatic"; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib"; then - add=$inst_prefix_dir$libdir/$linklib - else - add=$libdir/$linklib - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir=-L$libdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - fi - - if test prog = "$linkmode"; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test prog = "$linkmode"; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test unsupported != "$hardcode_direct"; then - test -n "$old_library" && linklib=$old_library - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test yes = "$build_libtool_libs"; then - # Not a shared library - if test pass_all != "$deplibs_check_method"; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system cannot link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test yes = "$module"; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test lib = "$linkmode"; then - if test -n "$dependency_libs" && - { test yes != "$hardcode_into_libs" || - test yes = "$build_old_libs" || - test yes = "$link_static"; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs=$temp_deplibs - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test no != "$link_all_deplibs"; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path=$deplib ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of '$dir'" - absdir=$dir - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names"; then - for tmp in $deplibrary_names; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl"; then - depdepl=$absdir/$objdir/$depdepl - darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" - func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" - path= - fi - fi - ;; - *) - path=-L$absdir/$objdir - ;; - esac - else - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "'$deplib' seems to be moved" - - path=-L$absdir - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test link = "$pass"; then - if test prog = "$linkmode"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs=$newdependency_libs - if test dlpreopen = "$pass"; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test dlopen != "$pass"; then - test conv = "$pass" || { - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - } - - if test prog,link = "$linkmode,$pass"; then - vars="compile_deplibs finalize_deplibs" - else - vars=deplibs - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - - # Add Sun CC postdeps if required: - test CXX = "$tagname" && { - case $host_os in - linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C++ 5.9 - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - - solaris*) - func_cc_basename "$CC" - case $func_cc_basename_result in - CC* | sunCC*) - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - esac - } - - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i= - ;; - esac - if test -n "$i"; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test prog = "$linkmode"; then - dlfiles=$newdlfiles - fi - if test prog = "$linkmode" || test lib = "$linkmode"; then - dlprefiles=$newdlprefiles - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "'-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "'-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs=$output - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form 'libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test no = "$module" \ - && func_fatal_help "libtool library '$output' must begin with 'lib'" - - if test no != "$need_lib_prefix"; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test pass_all != "$deplibs_check_method"; then - func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test no = "$dlself" \ - || func_warning "'-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test 1 -lt "$#" \ - && func_warning "ignoring multiple '-rpath's for a libtool library" - - install_libdir=$1 - - oldlibs= - if test -z "$rpath"; then - if test yes = "$build_libtool_libs"; then - # Building a libtool convenience library. - # Some compilers have problems with a '.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "'-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs=$IFS; IFS=: - set dummy $vinfo 0 0 0 - shift - IFS=$save_ifs - - test -n "$7" && \ - func_fatal_help "too many parameters to '-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major=$1 - number_minor=$2 - number_revision=$3 - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # that has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_revision - ;; - freebsd-aout|qnx|sunos) - current=$number_major - revision=$number_minor - age=0 - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_minor - lt_irix_increment=no - ;; - *) - func_fatal_configuration "$modename: unknown library version type '$version_type'" - ;; - esac - ;; - no) - current=$1 - revision=$2 - age=$3 - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT '$current' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION '$revision' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE '$age' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE '$age' is greater than the current interface number '$current'" - func_fatal_error "'$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - # On Darwin other compilers - case $CC in - nagfor*) - verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - ;; - *) - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - esac - ;; - - freebsd-aout) - major=.$current - versuffix=.$current.$revision - ;; - - freebsd-elf) - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - irix | nonstopux) - if test no = "$lt_irix_increment"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring=$verstring_prefix$major.$revision - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test 0 -ne "$loop"; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring_prefix$major.$iface:$verstring - done - - # Before this point, $major must not contain '.'. - major=.$major - versuffix=$major.$revision - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=.$current.$age.$revision - verstring=$current.$age.$revision - - # Add in all the interfaces that we are compatible with. - loop=$age - while test 0 -ne "$loop"; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring:$iface.0 - done - - # Make executables depend on our current version. - func_append verstring ":$current.0" - ;; - - qnx) - major=.$current - versuffix=.$current - ;; - - sco) - major=.$current - versuffix=.$current - ;; - - sunos) - major=.$current - versuffix=.$current.$revision - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 file systems. - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - - *) - func_fatal_configuration "unknown library version type '$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring=0.0 - ;; - esac - if test no = "$need_version"; then - versuffix= - else - versuffix=.0.0 - fi - fi - - # Remove version info from name if versioning should be avoided - if test yes,no = "$avoid_version,$need_version"; then - major= - versuffix= - verstring= - fi - - # Check to see if the archive will have undefined symbols. - if test yes = "$allow_undefined"; then - if test unsupported = "$allow_undefined_flag"; then - if test yes = "$build_old_libs"; then - func_warning "undefined symbols not allowed in $host shared libraries; building static only" - build_libtool_libs=no - else - func_fatal_error "can't build $host shared library unless -no-undefined is specified" - fi - fi - else - # Don't allow undefined symbols. - allow_undefined_flag=$no_undefined_flag - fi - - fi - - func_generate_dlsyms "$libname" "$libname" : - func_append libobjs " $symfileobj" - test " " = "$libobjs" && libobjs= - - if test relink != "$opt_mode"; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) - if test -n "$precious_files_regex"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles=$dlfiles - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles=$dlprefiles - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test yes = "$build_libtool_libs"; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test yes = "$build_libtool_need_lc"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release= - versuffix= - major= - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib=$potent_lib - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | $SED 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; - *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib= - ;; - esac - fi - if test -n "$a_deplib"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib=$potent_lib # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs= - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - for i in $predeps $postdeps; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test none = "$deplibs_check_method"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test yes = "$droppeddeps"; then - if test yes = "$module"; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test no = "$allow_undefined"; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs=$new_libs - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test yes = "$build_libtool_libs"; then - # Remove $wl instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test yes = "$hardcode_into_libs"; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath=$finalize_rpath - test relink = "$opt_mode" || rpath=$compile_rpath$rpath - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath=$finalize_shlibpath - test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname=$1 - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname=$realname - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib=$output_objdir/$realname - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols=$output_objdir/$libname.uexp - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - func_dll_def_p "$export_symbols" || { - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols=$export_symbols - export_symbols= - always_export_symbols=yes - } - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs=$IFS; IFS='~' - for cmd1 in $cmds; do - IFS=$save_ifs - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test yes = "$try_normal_branch" \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=$output_objdir/$output_la.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS=$save_ifs - if test -n "$export_symbols_regex" && test : != "$skipped_export"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test : != "$skipped_export" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs=$tmp_deplibs - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test yes = "$compiler_needs_object" && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test : != "$skipped_export" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then - output=$output_objdir/$output_la.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then - output=$output_objdir/$output_la.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test yes = "$compiler_needs_object"; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-$k.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test -z "$objlist" || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test 1 -eq "$k"; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-$k.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-$k.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - ${skipped_export-false} && { - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - } - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs=$IFS; IFS='~' - for cmd in $concat_cmds; do - IFS=$save_ifs - $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - ${skipped_export-false} && { - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - } - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs=$IFS; IFS='~' - for cmd in $cmds; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test yes = "$module" || test yes = "$export_dynamic"; then - # On all known operating systems, these are identical. - dlname=$soname - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "'-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object '$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj=$output - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # if reload_cmds runs $LD directly, get rid of -Wl from - # whole_archive_flag_spec and hope we can get by with turning comma - # into space. - case $reload_cmds in - *\$LD[\ \$]*) wl= ;; - esac - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags - else - gentop=$output_objdir/${obj}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test yes = "$build_libtool_libs" || libobjs=$non_pic_objects - - # Create the old-style object. - reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - - output=$obj - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - test yes = "$build_libtool_libs" || { - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - } - - if test -n "$pic_flag" || test default != "$pic_mode"; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output=$libobj - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "'-release' is ignored for programs" - - $preload \ - && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ - && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test CXX = "$tagname"; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " $wl-bind_at_load" - func_append finalize_command " $wl-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs=$new_libs - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath=$rpath - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath=$rpath - - if test -n "$libobjs" && test yes = "$build_old_libs"; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" false - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=: - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=false - ;; - *cygwin* | *mingw* ) - test yes = "$build_libtool_libs" || wrappers_required=false - ;; - *) - if test no = "$need_relink" || test yes != "$build_libtool_libs"; then - wrappers_required=false - fi - ;; - esac - $wrappers_required || { - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command=$compile_command$compile_rpath - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.$objext"; then - func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' - fi - - exit $exit_status - } - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test yes = "$no_install"; then - # We don't need to create a wrapper script. - link_command=$compile_var$compile_command$compile_rpath - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - case $hardcode_action,$fast_install in - relink,*) - # Fast installation is not supported - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "'$output' will be relinked during installation" - ;; - *,yes) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - ;; - *,no) - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - ;; - *,needless) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command= - ;; - esac - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource=$output_path/$objdir/lt-$output_name.c - cwrapper=$output_path/$output_name.exe - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host"; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - case $build_libtool_libs in - convenience) - oldobjs="$libobjs_save $symfileobj" - addlibs=$convenience - build_libtool_libs=no - ;; - module) - oldobjs=$libobjs_save - addlibs=$old_convenience - build_libtool_libs=no - ;; - *) - oldobjs="$old_deplibs $non_pic_objects" - $preload && test -f "$symfileobj" \ - && func_append oldobjs " $symfileobj" - addlibs=$old_convenience - ;; - esac - - if test -n "$addlibs"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase=$func_basename_result - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj"; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test -z "$oldobjs"; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test yes = "$build_old_libs" && old_library=$libname.$libext - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test yes = "$hardcode_automatic"; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test yes = "$installed"; then - if test -z "$install_libdir"; then - break - fi - output=$output_objdir/${outputname}i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name=$func_basename_result - func_resolve_sysroot "$deplib" - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs=$newdependency_libs - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles=$newdlprefiles - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles=$newdlprefiles - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test -n "$bindir"; then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result/$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that cannot go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test no,yes = "$installed,$need_relink"; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -if test link = "$opt_mode" || test relink = "$opt_mode"; then - func_mode_link ${1+"$@"} -fi - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $debug_cmd - - RM=$nonopt - files= - rmforce=false - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=: ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir=$func_dirname_result - if test . = "$dir"; then - odir=$objdir - else - odir=$dir/$objdir - fi - func_basename "$file" - name=$func_basename_result - test uninstall = "$opt_mode" && odir=$dir - - # Remember odir for removal later, being careful to avoid duplicates - if test clean = "$opt_mode"; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif $rmforce; then - continue - fi - - rmfiles=$file - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case $opt_mode in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && test none != "$pic_object"; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && test none != "$non_pic_object"; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test clean = "$opt_mode"; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.$objext" - if test yes = "$fast_install" && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name"; then - func_append rmfiles " $odir/lt-$noexename.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the $objdir's in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then - func_mode_uninstall ${1+"$@"} -fi - -test -z "$opt_mode" && { - help=$generic_help - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode '$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# where we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff -Nru lebiniou-3.32/Makefile.in lebiniou-3.40/Makefile.in --- lebiniou-3.32/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -198,8 +198,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/lebiniou.1.head.in $(srcdir)/lebiniou.1.tail.in \ $(srcdir)/lebiniou.desktop.in AUTHORS COPYING ChangeLog THANKS \ - ar-lib compile config.guess config.sub depcomp install-sh \ - ltmain.sh missing + compile config.guess config.sub depcomp install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -290,6 +289,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -334,6 +335,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/Makefile.in lebiniou-3.40/plugins/Makefile.in --- lebiniou-3.32/plugins/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -228,6 +228,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -272,6 +274,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/alsa/alsa.c lebiniou-3.40/plugins/stable/input/alsa/alsa.c --- lebiniou-3.32/plugins/stable/input/alsa/alsa.c 2019-11-11 16:01:18.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/alsa/alsa.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/alsa/Makefile.in lebiniou-3.40/plugins/stable/input/alsa/Makefile.in --- lebiniou-3.32/plugins/stable/input/alsa/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/alsa/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/esound/esound.c lebiniou-3.40/plugins/stable/input/esound/esound.c --- lebiniou-3.32/plugins/stable/input/esound/esound.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/esound/esound.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/esound/Makefile.in lebiniou-3.40/plugins/stable/input/esound/Makefile.in --- lebiniou-3.32/plugins/stable/input/esound/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/esound/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/jackaudio/jackaudio.c lebiniou-3.40/plugins/stable/input/jackaudio/jackaudio.c --- lebiniou-3.32/plugins/stable/input/jackaudio/jackaudio.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/jackaudio/jackaudio.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/jackaudio/Makefile.in lebiniou-3.40/plugins/stable/input/jackaudio/Makefile.in --- lebiniou-3.32/plugins/stable/input/jackaudio/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/jackaudio/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/Makefile.in lebiniou-3.40/plugins/stable/input/Makefile.in --- lebiniou-3.32/plugins/stable/input/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -235,6 +235,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -279,6 +281,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/oss/Makefile.in lebiniou-3.40/plugins/stable/input/oss/Makefile.in --- lebiniou-3.32/plugins/stable/input/oss/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/oss/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/oss/oss.c lebiniou-3.40/plugins/stable/input/oss/oss.c --- lebiniou-3.32/plugins/stable/input/oss/oss.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/oss/oss.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/pulseaudio/Makefile.in lebiniou-3.40/plugins/stable/input/pulseaudio/Makefile.in --- lebiniou-3.32/plugins/stable/input/pulseaudio/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/pulseaudio/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/pulseaudio/pulseaudio.c lebiniou-3.40/plugins/stable/input/pulseaudio/pulseaudio.c --- lebiniou-3.32/plugins/stable/input/pulseaudio/pulseaudio.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/pulseaudio/pulseaudio.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/random/Makefile.in lebiniou-3.40/plugins/stable/input/random/Makefile.in --- lebiniou-3.32/plugins/stable/input/random/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/random/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/random/random.c lebiniou-3.40/plugins/stable/input/random/random.c --- lebiniou-3.32/plugins/stable/input/random/random.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/random/random.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/sndfile/Makefile.in lebiniou-3.40/plugins/stable/input/sndfile/Makefile.in --- lebiniou-3.32/plugins/stable/input/sndfile/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/sndfile/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/sndfile/sndfile.c lebiniou-3.40/plugins/stable/input/sndfile/sndfile.c --- lebiniou-3.32/plugins/stable/input/sndfile/sndfile.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/sndfile/sndfile.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/input/twip/Makefile.in lebiniou-3.40/plugins/stable/input/twip/Makefile.in --- lebiniou-3.32/plugins/stable/input/twip/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/twip/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/input/twip/twip.c lebiniou-3.40/plugins/stable/input/twip/twip.c --- lebiniou-3.32/plugins/stable/input/twip/twip.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/input/twip/twip.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/main/aciddrop/aciddrop.c lebiniou-3.40/plugins/stable/main/aciddrop/aciddrop.c --- lebiniou-3.32/plugins/stable/main/aciddrop/aciddrop.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aciddrop/aciddrop.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -39,6 +39,7 @@ #define ACID_ALCALIC_RATIO 4 /* how much more acid than alcalic */ u_long id = 1555191584; +uint32_t version = 0; u_long options = BE_BLUR|BE_GFX; char desc[] = "Color-corroding drops"; @@ -115,15 +116,15 @@ int dx = j - x; int dy = i - y; if (((dx * dx) + (dy * dy)) < distsq) { - if (((dx * dx) + (dy * dy)) < distsq2) { - mbuff[i * WIDTH + j] = mark; - } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { + if (((dx * dx) + (dy * dy)) < distsq2) { + mbuff[i * WIDTH + j] = mark; + } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { /* hazy pixels */ - mbuff[i * WIDTH + j] = mark; - } else { + mbuff[i * WIDTH + j] = mark; + } else { /* outside circle */ - mbuff[i * WIDTH + j] = -1; - } + mbuff[i * WIDTH + j] = -1; + } } } } @@ -138,17 +139,17 @@ for (i = 0; i < DROPCOUNT; i++) { if (drops[i].x > -1) { /* in use */ if ((drops[i].current + READY_TOL) < drops[i].target) { - drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; - drops[i].incr = (drops[i].target - drops[i].current) * INCR_RATIO; - if (drops[i].incr < 1.0) { - drops[i].incr = 1.0; /* values less that 1 won't have any effect */ - } - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; + drops[i].incr = (drops[i].target - drops[i].current) * INCR_RATIO; + if (drops[i].incr < 1.0) { + drops[i].incr = 1.0; /* values less that 1 won't have any effect */ + } + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); } else { - /* this drop is done */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, -1, mask); - drops[i].x = -1; + /* this drop is done */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, -1, mask); + drops[i].x = -1; } } } @@ -166,9 +167,9 @@ drops[i].target = b_rand_double_range(DROPSIZE_MIN, DROPSIZE_MAX); drops[i].current = drops[i].target * PROG_RATIO ; drops[i].incr = drops[i].target; - next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); break; } } @@ -181,9 +182,9 @@ Pixel_t col = src[i]; if (mask[i] >= 0) { if (col > drops[mask[i]].color) { - col = (col > drops[mask[i]].incr) ? col - drops[mask[i]].incr : drops[mask[i]].color; + col = (col > drops[mask[i]].incr) ? col - drops[mask[i]].incr : drops[mask[i]].color; } else if (col < drops[mask[i]].color) { - col = (col < (drops[mask[i]].color - drops[mask[i]].incr)) ? col + drops[mask[i]].incr : drops[mask[i]].color; + col = (col < (drops[mask[i]].color - drops[mask[i]].incr)) ? col + drops[mask[i]].incr : drops[mask[i]].color; } } *dst++ = col; diff -Nru lebiniou-3.32/plugins/stable/main/aciddrop/Makefile.am lebiniou-3.40/plugins/stable/main/aciddrop/Makefile.am --- lebiniou-3.32/plugins/stable/main/aciddrop/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aciddrop/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ aciddrop_so_SOURCES = aciddrop.c aciddrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -aciddrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +aciddrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include aciddrop_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/aciddrop/Makefile.in lebiniou-3.40/plugins/stable/main/aciddrop/Makefile.in --- lebiniou-3.32/plugins/stable/main/aciddrop/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aciddrop/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/aciddrop aciddrop_so_SOURCES = aciddrop.c aciddrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -aciddrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +aciddrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include aciddrop_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/aurora/aurora.c lebiniou-3.40/plugins/stable/main/aurora/aurora.c --- lebiniou-3.32/plugins/stable/main/aurora/aurora.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aurora/aurora.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1180460310; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_NORANDOM; char desc[] = "Cellular automaton"; diff -Nru lebiniou-3.32/plugins/stable/main/aurora/Makefile.am lebiniou-3.40/plugins/stable/main/aurora/Makefile.am --- lebiniou-3.32/plugins/stable/main/aurora/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aurora/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ aurora_so_SOURCES = aurora.c aurora_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -aurora_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +aurora_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include aurora_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/aurora/Makefile.in lebiniou-3.40/plugins/stable/main/aurora/Makefile.in --- lebiniou-3.32/plugins/stable/main/aurora/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/aurora/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/aurora aurora_so_SOURCES = aurora.c aurora_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -aurora_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +aurora_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include aurora_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/bassline/bassline.c lebiniou-3.40/plugins/stable/main/bassline/bassline.c --- lebiniou-3.32/plugins/stable/main/bassline/bassline.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/bassline/bassline.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1058309664; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_NORANDOM; char desc[] = "Pulsing box"; @@ -43,6 +44,6 @@ x1 = max * MAXX; draw_filled_box_nc(passive_buffer(ctx), - 0, HHEIGHT + (HHEIGHT / 8), - x1, HHEIGHT - (HHEIGHT / 8), 255); + 0, HHEIGHT + (HHEIGHT / 8), + x1, HHEIGHT - (HHEIGHT / 8), 255); } diff -Nru lebiniou-3.32/plugins/stable/main/bassline/Makefile.am lebiniou-3.40/plugins/stable/main/bassline/Makefile.am --- lebiniou-3.32/plugins/stable/main/bassline/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/bassline/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ bassline_so_SOURCES = bassline.c bassline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -bassline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +bassline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include bassline_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/bassline/Makefile.in lebiniou-3.40/plugins/stable/main/bassline/Makefile.in --- lebiniou-3.32/plugins/stable/main/bassline/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/bassline/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/bassline bassline_so_SOURCES = bassline.c bassline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -bassline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +bassline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include bassline_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur1/blur1.c lebiniou-3.40/plugins/stable/main/blur1/blur1.c --- lebiniou-3.32/plugins/stable/main/blur1/blur1.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur1/blur1.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,18 +19,28 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 944355799; +uint32_t version = 0; u_long options = BE_BLUR; char desc[] = "Blur filter"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_BLUR1_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_BLUR1_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur1/Makefile.am lebiniou-3.40/plugins/stable/main/blur1/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur1/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur1/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur1_so_SOURCES = blur1.c blur1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur1_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur1/Makefile.in lebiniou-3.40/plugins/stable/main/blur1/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur1/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur1/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur1 blur1_so_SOURCES = blur1.c blur1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur1_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur2/blur2.c lebiniou-3.40/plugins/stable/main/blur2/blur2.c --- lebiniou-3.32/plugins/stable/main/blur2/blur2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur2/blur2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,18 +19,28 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 944355800; +uint32_t version = 0; u_long options = BE_BLUR; char desc[] = "Blur filter"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_BLUR2_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_BLUR2_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur2/Makefile.am lebiniou-3.40/plugins/stable/main/blur2/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur2_so_SOURCES = blur2.c blur2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur2/Makefile.in lebiniou-3.40/plugins/stable/main/blur2/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur2/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur2/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur2 blur2_so_SOURCES = blur2.c blur2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur3/blur3.c lebiniou-3.40/plugins/stable/main/blur3/blur3.c --- lebiniou-3.32/plugins/stable/main/blur3/blur3.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur3/blur3.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944355801; +uint32_t version = 0; u_long options = BE_BLUR; char desc[] = "Blur filter"; diff -Nru lebiniou-3.32/plugins/stable/main/blur3/Makefile.am lebiniou-3.40/plugins/stable/main/blur3/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur3/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur3/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur3_so_SOURCES = blur3.c blur3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur3_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur3/Makefile.in lebiniou-3.40/plugins/stable/main/blur3/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur3/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur3/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur3 blur3_so_SOURCES = blur3.c blur3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur3_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur4/blur4.c lebiniou-3.40/plugins/stable/main/blur4/blur4.c --- lebiniou-3.32/plugins/stable/main/blur4/blur4.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur4/blur4.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,18 +19,28 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 944355802; +uint32_t version = 0; u_long options = BE_BLUR; char desc[] = "Blur filter"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_BLUR4_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_BLUR4_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur4/Makefile.am lebiniou-3.40/plugins/stable/main/blur4/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur4/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur4/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur4_so_SOURCES = blur4.c blur4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur4_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur4/Makefile.in lebiniou-3.40/plugins/stable/main/blur4/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur4/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur4/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur4 blur4_so_SOURCES = blur4.c blur4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur4_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur5/blur5.c lebiniou-3.40/plugins/stable/main/blur5/blur5.c --- lebiniou-3.32/plugins/stable/main/blur5/blur5.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur5/blur5.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,19 +19,29 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 1103058149; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_HOR; char dname[] = "H Blur"; char desc[] = "Horizontal blur"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_HBLUR_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_HBLUR_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur5/Makefile.am lebiniou-3.40/plugins/stable/main/blur5/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur5/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur5/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur5_so_SOURCES = blur5.c blur5_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur5_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur5_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur5_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur5/Makefile.in lebiniou-3.40/plugins/stable/main/blur5/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur5/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur5/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur5 blur5_so_SOURCES = blur5.c blur5_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur5_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur5_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur5_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur6/blur6.c lebiniou-3.40/plugins/stable/main/blur6/blur6.c --- lebiniou-3.32/plugins/stable/main/blur6/blur6.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur6/blur6.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,19 +19,29 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 1103058150; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_VER; char dname[] = "V Blur"; char desc[] = "Vertical blur"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_VBLUR_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_VBLUR_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur6/Makefile.am lebiniou-3.40/plugins/stable/main/blur6/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur6/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur6/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur6_so_SOURCES = blur6.c blur6_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur6_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur6_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur6_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur6/Makefile.in lebiniou-3.40/plugins/stable/main/blur6/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur6/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur6/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur6 blur6_so_SOURCES = blur6.c blur6_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur6_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur6_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur6_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur7/blur7.c lebiniou-3.40/plugins/stable/main/blur7/blur7.c --- lebiniou-3.32/plugins/stable/main/blur7/blur7.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur7/blur7.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,19 +19,29 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 1103058151; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_DIAG; char dname[] = "D-Blur-1"; char desc[] = "Diagonal blur"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_DBLUR1_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_DBLUR1_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur7/Makefile.am lebiniou-3.40/plugins/stable/main/blur7/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur7/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur7/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur7_so_SOURCES = blur7.c blur7_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur7_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur7_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur7_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur7/Makefile.in lebiniou-3.40/plugins/stable/main/blur7/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur7/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur7/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur7 blur7_so_SOURCES = blur7.c blur7_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur7_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur7_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur7_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/blur8/blur8.c lebiniou-3.40/plugins/stable/main/blur8/blur8.c --- lebiniou-3.32/plugins/stable/main/blur8/blur8.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur8/blur8.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,19 +19,29 @@ #include "context.h" #include "image_filter.h" +#include "parameters.h" +#include "blur.h" u_long id = 1103058152; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_DIAG; char dname[] = "D-Blur-2"; char desc[] = "Diagonal blur"; void +on_switch_on(Context_t *ctx) +{ + border_mode = BM_TOROIDAL; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); Buffer8_t *dst = passive_buffer(ctx); - image_filter_average(dst, src, FT_DBLUR2_3x3, BM_TOROIDAL, 0, NULL); + image_filter_average(dst, src, FT_DBLUR2_3x3, border_mode, 0, NULL); } diff -Nru lebiniou-3.32/plugins/stable/main/blur8/Makefile.am lebiniou-3.40/plugins/stable/main/blur8/Makefile.am --- lebiniou-3.32/plugins/stable/main/blur8/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur8/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ blur8_so_SOURCES = blur8.c blur8_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur8_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur8_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur8_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/blur8/Makefile.in lebiniou-3.40/plugins/stable/main/blur8/Makefile.in --- lebiniou-3.32/plugins/stable/main/blur8/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/blur8/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/blur8 blur8_so_SOURCES = blur8.c blur8_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -blur8_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +blur8_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include blur8_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cirrus/cirrus.c lebiniou-3.40/plugins/stable/main/cirrus/cirrus.c --- lebiniou-3.32/plugins/stable/main/cirrus/cirrus.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus/cirrus.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 1181486379; +uint32_t version = 0; u_long options = BEQ_COLORMAP; char dname[] = "Cirrus"; u_long mode = NONE; diff -Nru lebiniou-3.32/plugins/stable/main/cirrus/Makefile.am lebiniou-3.40/plugins/stable/main/cirrus/Makefile.am --- lebiniou-3.32/plugins/stable/main/cirrus/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cirrus_so_SOURCES = cirrus.c cirrus_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cirrus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cirrus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cirrus_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cirrus/Makefile.in lebiniou-3.40/plugins/stable/main/cirrus/Makefile.in --- lebiniou-3.32/plugins/stable/main/cirrus/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cirrus cirrus_so_SOURCES = cirrus.c cirrus_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cirrus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cirrus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cirrus_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cirrus2/cirrus2.c lebiniou-3.40/plugins/stable/main/cirrus2/cirrus2.c --- lebiniou-3.32/plugins/stable/main/cirrus2/cirrus2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus2/cirrus2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -28,6 +28,7 @@ */ u_long id = 1181600027; +uint32_t version = 0; u_long options = BEQ_COLORMAP; char dname[] = "Cirrus 2"; u_long mode = NONE; diff -Nru lebiniou-3.32/plugins/stable/main/cirrus2/Makefile.am lebiniou-3.40/plugins/stable/main/cirrus2/Makefile.am --- lebiniou-3.32/plugins/stable/main/cirrus2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cirrus2_so_SOURCES = cirrus2.c cirrus2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cirrus2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cirrus2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cirrus2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cirrus2/Makefile.in lebiniou-3.40/plugins/stable/main/cirrus2/Makefile.in --- lebiniou-3.32/plugins/stable/main/cirrus2/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cirrus2/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cirrus2 cirrus2_so_SOURCES = cirrus2.c cirrus2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cirrus2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cirrus2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cirrus2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/clear/clear.c lebiniou-3.40/plugins/stable/main/clear/clear.c --- lebiniou-3.32/plugins/stable/main/clear/clear.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/clear/clear.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1091656394; +uint32_t version = 0; u_long options = BE_CLEAN|BEQ_FIRST; u_long mode = NORMAL; char desc[] = "Clears the screen"; diff -Nru lebiniou-3.32/plugins/stable/main/clear/Makefile.am lebiniou-3.40/plugins/stable/main/clear/Makefile.am --- lebiniou-3.32/plugins/stable/main/clear/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/clear/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ clear_so_SOURCES = clear.c clear_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -clear_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +clear_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include clear_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/clear/Makefile.in lebiniou-3.40/plugins/stable/main/clear/Makefile.in --- lebiniou-3.32/plugins/stable/main/clear/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/clear/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/clear clear_so_SOURCES = clear.c clear_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -clear_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +clear_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include clear_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/color_cycle/color_cycle.c lebiniou-3.40/plugins/stable/main/color_cycle/color_cycle.c --- lebiniou-3.32/plugins/stable/main/color_cycle/color_cycle.c 2019-11-12 02:06:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/color_cycle/color_cycle.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -23,6 +23,7 @@ u_long id = 1232813067; char dname[] = "Color cycle"; +uint32_t version = 0; u_long options = BEQ_COLORMAP | BEQ_NORANDOM; u_long mode = NONE; char desc[] = "Cycle the current colormap"; diff -Nru lebiniou-3.32/plugins/stable/main/color_cycle/Makefile.am lebiniou-3.40/plugins/stable/main/color_cycle/Makefile.am --- lebiniou-3.32/plugins/stable/main/color_cycle/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/color_cycle/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ color_cycle_so_SOURCES = color_cycle.c color_cycle_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -color_cycle_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +color_cycle_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include color_cycle_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/color_cycle/Makefile.in lebiniou-3.40/plugins/stable/main/color_cycle/Makefile.in --- lebiniou-3.32/plugins/stable/main/color_cycle/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/color_cycle/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/color_cycle color_cycle_so_SOURCES = color_cycle.c color_cycle_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -color_cycle_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +color_cycle_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include color_cycle_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/critters/critters.c lebiniou-3.40/plugins/stable/main/critters/critters.c --- lebiniou-3.32/plugins/stable/main/critters/critters.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/critters/critters.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1100375479; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_NORANDOM; u_long mode = OVERLAY; char desc[] = "Critters demo"; @@ -76,7 +77,7 @@ /* if a critter is out of screen, reset it */ if ((tmp.x < MINX) || (tmp.y < MINY) - || (tmp.x > MAXX) || (tmp.y > MAXY)) { + || (tmp.x > MAXX) || (tmp.y > MAXY)) { randomize(&critters[i]); } else { /* update position */ diff -Nru lebiniou-3.32/plugins/stable/main/critters/Makefile.am lebiniou-3.40/plugins/stable/main/critters/Makefile.am --- lebiniou-3.32/plugins/stable/main/critters/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/critters/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ critters_so_SOURCES = critters.c critters_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -critters_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +critters_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include critters_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/critters/Makefile.in lebiniou-3.40/plugins/stable/main/critters/Makefile.in --- lebiniou-3.32/plugins/stable/main/critters/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/critters/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/critters critters_so_SOURCES = critters.c critters_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -critters_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +critters_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include critters_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/crp/crp.c lebiniou-3.40/plugins/stable/main/crp/crp.c --- lebiniou-3.32/plugins/stable/main/crp/crp.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/crp/crp.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 1089234657; +uint32_t version = 0; u_long options = BEQ_LAST; char dname[] = "X-Recurrence"; u_long mode = OVERLAY; @@ -83,16 +84,16 @@ for (jj = 0; jj < MINSCREEN; jj++) { int j = (int)((float)jj - / (float)MINSCREEN - * (float)(ctx->input->size-3.0)); + / (float)MINSCREEN + * (float)(ctx->input->size-3.0)); int last_i = -1; Pixel_t last_c = 0; for (ii = 0; ii < MINSCREEN; ii++) { Pixel_t c = last_c; int i = (int)((float)ii - / (float)MINSCREEN - * (float)(ctx->input->size-3.0)); + / (float)MINSCREEN + * (float)(ctx->input->size-3.0)); if (i != last_i) { c = get_color(ctx->input, i, j); diff -Nru lebiniou-3.32/plugins/stable/main/crp/Makefile.am lebiniou-3.40/plugins/stable/main/crp/Makefile.am --- lebiniou-3.32/plugins/stable/main/crp/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/crp/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ crp_so_SOURCES = crp.c crp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -crp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +crp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include crp_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/crp/Makefile.in lebiniou-3.40/plugins/stable/main/crp/Makefile.in --- lebiniou-3.32/plugins/stable/main/crp/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/crp/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/crp crp_so_SOURCES = crp.c crp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -crp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +crp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include crp_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/cth_bighalfwheel.c lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/cth_bighalfwheel.c --- lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/cth_bighalfwheel.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/cth_bighalfwheel.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1071318964; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Big half wheel"; char desc[] = "Translation effect"; diff -Nru lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/Makefile.am lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_bighalfwheel_so_SOURCES = cth_bighalfwheel.c cth_bighalfwheel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_bighalfwheel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_bighalfwheel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_bighalfwheel_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/Makefile.in lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_bighalfwheel/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_bighalfwheel/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -218,6 +218,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -262,6 +264,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -324,7 +328,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_bighalfwheel cth_bighalfwheel_so_SOURCES = cth_bighalfwheel.c cth_bighalfwheel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_bighalfwheel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_bighalfwheel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_bighalfwheel_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_hurricane/cth_hurricane.c lebiniou-3.40/plugins/stable/main/cth_hurricane/cth_hurricane.c --- lebiniou-3.32/plugins/stable/main/cth_hurricane/cth_hurricane.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_hurricane/cth_hurricane.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949050896; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Hurricane"; char desc[] = "Hurricane effect"; diff -Nru lebiniou-3.32/plugins/stable/main/cth_hurricane/Makefile.am lebiniou-3.40/plugins/stable/main/cth_hurricane/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_hurricane/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_hurricane/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_hurricane_so_SOURCES = cth_hurricane.c cth_hurricane_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_hurricane_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_hurricane_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_hurricane_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_hurricane/Makefile.in lebiniou-3.40/plugins/stable/main/cth_hurricane/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_hurricane/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_hurricane/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_hurricane cth_hurricane_so_SOURCES = cth_hurricane.c cth_hurricane_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_hurricane_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_hurricane_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_hurricane_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_smoke/cth_smoke.c lebiniou-3.40/plugins/stable/main/cth_smoke/cth_smoke.c --- lebiniou-3.32/plugins/stable/main/cth_smoke/cth_smoke.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_smoke/cth_smoke.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949050895; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Smoke"; char desc[] = "Give lines a smoky effect"; diff -Nru lebiniou-3.32/plugins/stable/main/cth_smoke/Makefile.am lebiniou-3.40/plugins/stable/main/cth_smoke/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_smoke/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_smoke/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_smoke_so_SOURCES = cth_smoke.c cth_smoke_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_smoke_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_smoke_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_smoke_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_smoke/Makefile.in lebiniou-3.40/plugins/stable/main/cth_smoke/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_smoke/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_smoke/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_smoke cth_smoke_so_SOURCES = cth_smoke.c cth_smoke_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_smoke_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_smoke_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_smoke_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_in/cth_space_in.c lebiniou-3.40/plugins/stable/main/cth_space_in/cth_space_in.c --- lebiniou-3.32/plugins/stable/main/cth_space_in/cth_space_in.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_in/cth_space_in.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,12 @@ */ #include "translation.h" +#include "parameters.h" /* we don't use Randomness in our version --oliv3 */ u_long id = 1071960047; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Space in"; char desc[] = "Inwards space move"; @@ -34,6 +36,16 @@ /* int Randomness = DEFAULT_RAND; */ static int speed = DEFAULT_SPEED; +static float speed_factor = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_SPEED_FACTOR, speed_factor, -0.01, 0.01); + + return params; +} static Map_t @@ -64,14 +76,37 @@ static void init_params() { - speed = b_rand_int_range(30, 100); + speed = speed_factor * b_rand_int_range(30, 100); /* Randomness = b_rand_int_range(12, 100); */ } void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_SPEED_FACTOR, &speed_factor, 0, 10); + + if (reload) { + Translation_delete(t_space); + t_space = Translation_new(&cth_space, &init_params); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void on_switch_on(Context_t *ctx) { + speed_factor = 1; Translation_batch_init(t_space); } diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_in/Makefile.am lebiniou-3.40/plugins/stable/main/cth_space_in/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_space_in/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_in/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_space_in_so_SOURCES = cth_space_in.c cth_space_in_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_space_in_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_space_in_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_space_in_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_in/Makefile.in lebiniou-3.40/plugins/stable/main/cth_space_in/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_space_in/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_in/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_space_in cth_space_in_so_SOURCES = cth_space_in.c cth_space_in_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_space_in_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_space_in_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_space_in_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_out/cth_space_out.c lebiniou-3.40/plugins/stable/main/cth_space_out/cth_space_out.c --- lebiniou-3.32/plugins/stable/main/cth_space_out/cth_space_out.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_out/cth_space_out.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,12 @@ */ #include "translation.h" +#include "parameters.h" /* we don't use Randomness in our version --oliv3 */ u_long id = 1071960048; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Space out"; char desc[] = "Outwards space move"; @@ -34,6 +36,16 @@ /* int Randomness = DEFAULT_RAND; */ static int speed = DEFAULT_SPEED; +static float speed_factor = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_SPEED_FACTOR, speed_factor, -0.01, 0.01); + + return params; +} static Map_t @@ -64,14 +76,37 @@ static void init_params() { - speed = b_rand_int_range(30, 100); + speed = speed_factor * b_rand_int_range(30, 100); /* Randomness = b_rand_int_range(12, 100); */ } void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_SPEED_FACTOR, &speed_factor, 0, 10); + + if (reload) { + Translation_delete(t_space); + t_space = Translation_new(&cth_space, &init_params); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void on_switch_on(Context_t *ctx) { + speed_factor = 1; Translation_batch_init(t_space); } diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_out/Makefile.am lebiniou-3.40/plugins/stable/main/cth_space_out/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_space_out/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_out/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_space_out_so_SOURCES = cth_space_out.c cth_space_out_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_space_out_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_space_out_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_space_out_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_space_out/Makefile.in lebiniou-3.40/plugins/stable/main/cth_space_out/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_space_out/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_space_out/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_space_out cth_space_out_so_SOURCES = cth_space_out.c cth_space_out_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_space_out_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_space_out_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_space_out_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_spiral/cth_spiral.c lebiniou-3.40/plugins/stable/main/cth_spiral/cth_spiral.c --- lebiniou-3.32/plugins/stable/main/cth_spiral/cth_spiral.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_spiral/cth_spiral.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "translation.h" +#include "parameters.h" u_long id = 949050897; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Spiral"; char desc[] = "Spiral effect"; @@ -36,6 +38,17 @@ const float q = M_PI / 2; const float p = 45.0 / 180.0 * M_PI; +static float p_factor = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_P_FACTOR, p_factor, -0.01, 0.01); + + return params; +} + static Map_t cth_spiral(const short in_x, const short in_y) @@ -67,8 +80,8 @@ ang += M_PI; } - dx = ceil(-sin(ang-p)*dist/10.0); - dy = ceil(cos(ang-p)*dist/10.0); + dx = ceil(-sin(ang - p * p_factor) * dist / 10.0); + dy = ceil( cos(ang - p * p_factor) * dist / 10.0); if ((i == MINX) || (i == MAXX)) { dx = cx - i; @@ -92,8 +105,31 @@ void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_P_FACTOR, &p_factor, 0, 10); + + if (reload) { + Translation_delete(t_spiral); + t_spiral = Translation_new(&cth_spiral, &init_params); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void on_switch_on(Context_t *ctx) { + p_factor = 1; Translation_batch_init(t_spiral); } diff -Nru lebiniou-3.32/plugins/stable/main/cth_spiral/Makefile.am lebiniou-3.40/plugins/stable/main/cth_spiral/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_spiral/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_spiral/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_spiral_so_SOURCES = cth_spiral.c cth_spiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_spiral_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_spiral/Makefile.in lebiniou-3.40/plugins/stable/main/cth_spiral/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_spiral/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_spiral/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_spiral cth_spiral_so_SOURCES = cth_spiral.c cth_spiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_spiral_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_xroller/cth_xroller.c lebiniou-3.40/plugins/stable/main/cth_xroller/cth_xroller.c --- lebiniou-3.32/plugins/stable/main/cth_xroller/cth_xroller.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_xroller/cth_xroller.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949677607; +uint32_t version = 0; u_long options = BE_ROLL|BEQ_HOR|BE_LENS; char dname[] = "X roll"; char desc[] = "Rolls the screen vertically"; diff -Nru lebiniou-3.32/plugins/stable/main/cth_xroller/Makefile.am lebiniou-3.40/plugins/stable/main/cth_xroller/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_xroller/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_xroller/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_xroller_so_SOURCES = cth_xroller.c cth_xroller_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_xroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_xroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_xroller_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_xroller/Makefile.in lebiniou-3.40/plugins/stable/main/cth_xroller/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_xroller/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_xroller/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_xroller cth_xroller_so_SOURCES = cth_xroller.c cth_xroller_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_xroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_xroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_xroller_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/cth_yroller/cth_yroller.c lebiniou-3.40/plugins/stable/main/cth_yroller/cth_yroller.c --- lebiniou-3.32/plugins/stable/main/cth_yroller/cth_yroller.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_yroller/cth_yroller.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949677608; +uint32_t version = 0; u_long options = BE_ROLL|BEQ_VER|BE_LENS; char dname[] = "Y roll"; char desc[] = "Rolls the screen horizontally"; diff -Nru lebiniou-3.32/plugins/stable/main/cth_yroller/Makefile.am lebiniou-3.40/plugins/stable/main/cth_yroller/Makefile.am --- lebiniou-3.32/plugins/stable/main/cth_yroller/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_yroller/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ cth_yroller_so_SOURCES = cth_yroller.c cth_yroller_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_yroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_yroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_yroller_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/cth_yroller/Makefile.in lebiniou-3.40/plugins/stable/main/cth_yroller/Makefile.in --- lebiniou-3.32/plugins/stable/main/cth_yroller/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/cth_yroller/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/cth_yroller cth_yroller_so_SOURCES = cth_yroller.c cth_yroller_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -cth_yroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +cth_yroller_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include cth_yroller_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay2/delay2.c lebiniou-3.40/plugins/stable/main/delay2/delay2.c --- lebiniou-3.32/plugins/stable/main/delay2/delay2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay2/delay2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -23,6 +23,7 @@ u_long id = 1192734840; +uint32_t version = 0; u_long options = BE_SFX3D|BEQ_PARTICLES|BEQ_NORANDOM; u_long mode = OVERLAY; char desc[] = "Phase-space reconstruction with lines"; diff -Nru lebiniou-3.32/plugins/stable/main/delay2/Makefile.am lebiniou-3.40/plugins/stable/main/delay2/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay2_so_SOURCES = delay2.c delay2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay2/Makefile.in lebiniou-3.40/plugins/stable/main/delay2/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay2/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay2/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay2 delay2_so_SOURCES = delay2.c delay2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay3/delay3.c lebiniou-3.40/plugins/stable/main/delay3/delay3.c --- lebiniou-3.32/plugins/stable/main/delay3/delay3.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay3/delay3.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ #include "particles.h" u_long id = 1194552390; +uint32_t version = 0; u_long options = BE_SFX3D|BEQ_PARTICLES|BEQ_NORANDOM; u_long mode = OVERLAY; char desc[] = "Fountain effect"; diff -Nru lebiniou-3.32/plugins/stable/main/delay3/Makefile.am lebiniou-3.40/plugins/stable/main/delay3/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay3/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay3/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay3_so_SOURCES = delay3.c delay3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay3_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay3/Makefile.in lebiniou-3.40/plugins/stable/main/delay3/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay3/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay3/Makefile.in 2020-01-23 13:57:15.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay3 delay3_so_SOURCES = delay3.c delay3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay3_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay_l/delay_l.c lebiniou-3.40/plugins/stable/main/delay_l/delay_l.c --- lebiniou-3.32/plugins/stable/main/delay_l/delay_l.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_l/delay_l.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1547125655; +uint32_t version = 0; u_long options = BE_SFX3D; u_long mode = OVERLAY; char desc[] = "Phase-space reconstruction"; diff -Nru lebiniou-3.32/plugins/stable/main/delay_l/Makefile.am lebiniou-3.40/plugins/stable/main/delay_l/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay_l/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_l/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay_l_so_SOURCES = delay_l.c delay_l_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_l_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_l_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_l_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay_l/Makefile.in lebiniou-3.40/plugins/stable/main/delay_l/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay_l/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_l/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay_l delay_l_so_SOURCES = delay_l.c delay_l_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_l_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_l_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_l_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay_ls/delay_ls.c lebiniou-3.40/plugins/stable/main/delay_ls/delay_ls.c --- lebiniou-3.32/plugins/stable/main/delay_ls/delay_ls.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ls/delay_ls.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,11 +20,12 @@ #include "context.h" #include "spline.h" #include "particles.h" -#include "../include/delay.h" +#include "delay.h" // #define PARTICLES u_long id = 948640645; +uint32_t version = 0; u_long options = BE_SFX3D #ifdef PARTICLES |BEQ_PARTICLES diff -Nru lebiniou-3.32/plugins/stable/main/delay_ls/Makefile.am lebiniou-3.40/plugins/stable/main/delay_ls/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay_ls/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ls/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay_ls_so_SOURCES = delay_ls.c delay_ls_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_ls_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay_ls/Makefile.in lebiniou-3.40/plugins/stable/main/delay_ls/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay_ls/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ls/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay_ls delay_ls_so_SOURCES = delay_ls.c delay_ls_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_ls_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay_p/delay_p.c lebiniou-3.40/plugins/stable/main/delay_p/delay_p.c --- lebiniou-3.32/plugins/stable/main/delay_p/delay_p.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_p/delay_p.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1546947361; +uint32_t version = 0; u_long options = BE_SFX3D; u_long mode = OVERLAY; char desc[] = "Phase-space reconstruction"; diff -Nru lebiniou-3.32/plugins/stable/main/delay_p/Makefile.am lebiniou-3.40/plugins/stable/main/delay_p/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay_p/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_p/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay_p_so_SOURCES = delay_p.c delay_p_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_p_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_p_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_p_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay_p/Makefile.in lebiniou-3.40/plugins/stable/main/delay_p/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay_p/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_p/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay_p delay_p_so_SOURCES = delay_p.c delay_p_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_p_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_p_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_p_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay_pp/delay_pp.c lebiniou-3.40/plugins/stable/main/delay_pp/delay_pp.c --- lebiniou-3.32/plugins/stable/main/delay_pp/delay_pp.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_pp/delay_pp.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,9 +19,11 @@ #include "context.h" #include "particles.h" +#include "parameters.h" u_long id = 1547215841; +uint32_t version = 0; u_long options = BE_SFX3D|BEQ_PARTICLES; u_long mode = OVERLAY; char desc[] = "Phase-space reconstruction using particles"; @@ -30,6 +32,39 @@ static const Point3d_t ORIGIN = { { 0.0, 0.0, 0.0 } }; static Particle_System_t *ps = NULL; +static float pos_factor = 0; +static float vel_factor = 0; +static float ttl_factor = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_POS_FACTOR, pos_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_VEL_FACTOR, vel_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_TTL_FACTOR, ttl_factor, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_POS_FACTOR, &pos_factor, 0, 100); + plugin_parameter_parse_float_range(in_parameters, BPP_VEL_FACTOR, &vel_factor, 0, 100); + plugin_parameter_parse_float_range(in_parameters, BPP_TTL_FACTOR, &ttl_factor, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + static void Delay1_particles(Context_t *ctx) @@ -53,9 +88,9 @@ p.pos.x = input->data[A_MONO][x]; p.pos.y = input->data[A_MONO][y]; p.pos.z = input->data[A_MONO][z]; - const float ttl = Input_random_float_range(input, 0.2, 1); + const float ttl = Input_random_float_range(input, 0.2, 1) * ttl_factor; Pixel_t color = Input_random_color(input); - const Particle_t *part = Particle_new_indexed(ttl, color, p3d_mul(&p, 2.5), p3d_mul(&p, .1), ORIGIN, 0.0); + const Particle_t *part = Particle_new_indexed(ttl, color, p3d_mul(&p, pos_factor), p3d_mul(&p, vel_factor), ORIGIN, 0.0); Particle_System_add(ps, part); } @@ -69,7 +104,6 @@ create(Context_t *ctx) { ps = Particle_System_new(PS_NOLIMIT); - return 1; } @@ -83,6 +117,16 @@ } +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + pos_factor = 2.5; + vel_factor = 0.1; + ttl_factor = 1.0; +} + + void run(Context_t *ctx) { diff -Nru lebiniou-3.32/plugins/stable/main/delay_pp/Makefile.am lebiniou-3.40/plugins/stable/main/delay_pp/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay_pp/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_pp/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay_pp_so_SOURCES = delay_pp.c delay_pp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_pp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_pp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_pp_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay_pp/Makefile.in lebiniou-3.40/plugins/stable/main/delay_pp/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay_pp/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_pp/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay_pp delay_pp_so_SOURCES = delay_pp.c delay_pp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_pp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_pp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_pp_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delay_ps/delay_ps.c lebiniou-3.40/plugins/stable/main/delay_ps/delay_ps.c --- lebiniou-3.32/plugins/stable/main/delay_ps/delay_ps.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ps/delay_ps.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,11 +20,12 @@ #include "context.h" #include "spline.h" #include "particles.h" -#include "../include/delay.h" +#include "delay.h" // #define PARTICLES u_long id = 1547656272; +uint32_t version = 0; u_long options = BE_SFX3D #ifdef PARTICLES |BEQ_PARTICLES diff -Nru lebiniou-3.32/plugins/stable/main/delay_ps/Makefile.am lebiniou-3.40/plugins/stable/main/delay_ps/Makefile.am --- lebiniou-3.32/plugins/stable/main/delay_ps/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ps/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delay_ps_so_SOURCES = delay_ps.c delay_ps_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_ps_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_ps_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_ps_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delay_ps/Makefile.in lebiniou-3.40/plugins/stable/main/delay_ps/Makefile.in --- lebiniou-3.32/plugins/stable/main/delay_ps/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delay_ps/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delay_ps delay_ps_so_SOURCES = delay_ps.c delay_ps_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delay_ps_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delay_ps_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delay_ps_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delayS_ls/delayS_ls.c lebiniou-3.40/plugins/stable/main/delayS_ls/delayS_ls.c --- lebiniou-3.32/plugins/stable/main/delayS_ls/delayS_ls.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_ls/delayS_ls.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,11 +20,12 @@ #include "context.h" #include "spline.h" #include "particles.h" -#include "../include/delay.h" +#include "delay.h" // #define PARTICLES u_long id = 1547466099; +uint32_t version = 0; u_long options = BE_SFX3D #ifdef PARTICLES |BEQ_PARTICLES diff -Nru lebiniou-3.32/plugins/stable/main/delayS_ls/Makefile.am lebiniou-3.40/plugins/stable/main/delayS_ls/Makefile.am --- lebiniou-3.32/plugins/stable/main/delayS_ls/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_ls/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delayS_ls_so_SOURCES = delayS_ls.c delayS_ls_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delayS_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delayS_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delayS_ls_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delayS_ls/Makefile.in lebiniou-3.40/plugins/stable/main/delayS_ls/Makefile.in --- lebiniou-3.32/plugins/stable/main/delayS_ls/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_ls/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delayS_ls delayS_ls_so_SOURCES = delayS_ls.c delayS_ls_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delayS_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delayS_ls_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delayS_ls_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/delayS_lsp/delayS_lsp.c lebiniou-3.40/plugins/stable/main/delayS_lsp/delayS_lsp.c --- lebiniou-3.32/plugins/stable/main/delayS_lsp/delayS_lsp.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_lsp/delayS_lsp.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,9 +20,10 @@ #include "context.h" #include "spline.h" #include "particles.h" -#include "../include/delay.h" +#include "delay.h" u_long id = 1547584147; +uint32_t version = 0; u_long options = BE_SFX3D|BEQ_PARTICLES; u_long mode = OVERLAY; char desc[] = "Stereo phase-space reconstruction with spline and particles"; diff -Nru lebiniou-3.32/plugins/stable/main/delayS_lsp/Makefile.am lebiniou-3.40/plugins/stable/main/delayS_lsp/Makefile.am --- lebiniou-3.32/plugins/stable/main/delayS_lsp/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_lsp/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ delayS_lsp_so_SOURCES = delayS_lsp.c delayS_lsp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delayS_lsp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delayS_lsp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delayS_lsp_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/delayS_lsp/Makefile.in lebiniou-3.40/plugins/stable/main/delayS_lsp/Makefile.in --- lebiniou-3.32/plugins/stable/main/delayS_lsp/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/delayS_lsp/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/delayS_lsp delayS_lsp_so_SOURCES = delayS_lsp.c delayS_lsp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -delayS_lsp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +delayS_lsp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include delayS_lsp_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/drops/drops.c lebiniou-3.40/plugins/stable/main/drops/drops.c --- lebiniou-3.32/plugins/stable/main/drops/drops.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/drops/drops.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1075754710; +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; char desc[] = "Falling drops"; diff -Nru lebiniou-3.32/plugins/stable/main/drops/Makefile.am lebiniou-3.40/plugins/stable/main/drops/Makefile.am --- lebiniou-3.32/plugins/stable/main/drops/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/drops/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ drops_so_SOURCES = drops.c drops_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -drops_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +drops_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include drops_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/drops/Makefile.in lebiniou-3.40/plugins/stable/main/drops/Makefile.in --- lebiniou-3.32/plugins/stable/main/drops/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/drops/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/drops drops_so_SOURCES = drops.c drops_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -drops_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +drops_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include drops_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/edge/edge.c lebiniou-3.40/plugins/stable/main/edge/edge.c --- lebiniou-3.32/plugins/stable/main/edge/edge.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/edge/edge.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949845873; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "Edge-detect"; char desc[] = "Edge-detection filter"; diff -Nru lebiniou-3.32/plugins/stable/main/edge/Makefile.am lebiniou-3.40/plugins/stable/main/edge/Makefile.am --- lebiniou-3.32/plugins/stable/main/edge/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/edge/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ edge_so_SOURCES = edge.c edge_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -edge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +edge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include edge_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/edge/Makefile.in lebiniou-3.40/plugins/stable/main/edge/Makefile.in --- lebiniou-3.32/plugins/stable/main/edge/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/edge/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/edge edge_so_SOURCES = edge.c edge_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -edge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +edge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include edge_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/emboss/emboss.c lebiniou-3.40/plugins/stable/main/emboss/emboss.c --- lebiniou-3.32/plugins/stable/main/emboss/emboss.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/emboss/emboss.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949846112; +uint32_t version = 0; u_long options = BE_LENS; char desc[] = "Emboss filter"; diff -Nru lebiniou-3.32/plugins/stable/main/emboss/Makefile.am lebiniou-3.40/plugins/stable/main/emboss/Makefile.am --- lebiniou-3.32/plugins/stable/main/emboss/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/emboss/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ emboss_so_SOURCES = emboss.c emboss_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -emboss_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +emboss_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include emboss_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/emboss/Makefile.in lebiniou-3.40/plugins/stable/main/emboss/Makefile.in --- lebiniou-3.32/plugins/stable/main/emboss/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/emboss/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/emboss emboss_so_SOURCES = emboss.c emboss_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -emboss_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +emboss_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include emboss_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/fadeout/fadeout.c lebiniou-3.40/plugins/stable/main/fadeout/fadeout.c --- lebiniou-3.32/plugins/stable/main/fadeout/fadeout.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/fadeout/fadeout.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -32,6 +32,7 @@ */ u_long id = 1557758631; +uint32_t version = 0; u_long options = BEQ_SPLASH|BEQ_FIRST; char desc[] = "Fade previous sequence"; @@ -69,7 +70,7 @@ { uint32_t i; Pixel_t *p = last->buffer; - + for (i = 0; i < BUFFSIZE; i++, p++) { if (*p >= 20) { *p *= 0.6; diff -Nru lebiniou-3.32/plugins/stable/main/fadeout/Makefile.am lebiniou-3.40/plugins/stable/main/fadeout/Makefile.am --- lebiniou-3.32/plugins/stable/main/fadeout/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/fadeout/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ fadeout_so_SOURCES = fadeout.c fadeout_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -fadeout_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +fadeout_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include fadeout_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/fadeout/Makefile.in lebiniou-3.40/plugins/stable/main/fadeout/Makefile.in --- lebiniou-3.32/plugins/stable/main/fadeout/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/fadeout/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/fadeout fadeout_so_SOURCES = fadeout.c fadeout_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -fadeout_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +fadeout_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include fadeout_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/faders/faders.c lebiniou-3.40/plugins/stable/main/faders/faders.c --- lebiniou-3.32/plugins/stable/main/faders/faders.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/faders/faders.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1180546912; +uint32_t version = 0; u_long options = BE_GFX|BEQ_FIRST; u_long mode = OVERLAY; char desc[] = "Cellular automaton"; @@ -106,20 +107,20 @@ Pixel_t new; switch (old) { - case 0: - /* dead cell, becomes alive ? */ - new = firing(i, j) ? 255 : 0; - break; - - case 255: - /* firing cell, keeps firing ? */ - new = firing(i, j) ? 255 : 254; - break; - - default: - /* cell decays */ - new = old - 2; - break; + case 0: + /* dead cell, becomes alive ? */ + new = firing(i, j) ? 255 : 0; + break; + + case 255: + /* firing cell, keeps firing ? */ + new = firing(i, j) ? 255 : 254; + break; + + default: + /* cell decays */ + new = old - 2; + break; } set_pixel_nc(game2, i, j, new); diff -Nru lebiniou-3.32/plugins/stable/main/faders/Makefile.am lebiniou-3.40/plugins/stable/main/faders/Makefile.am --- lebiniou-3.32/plugins/stable/main/faders/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/faders/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ faders_so_SOURCES = faders.c faders_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -faders_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +faders_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include faders_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/faders/Makefile.in lebiniou-3.40/plugins/stable/main/faders/Makefile.in --- lebiniou-3.32/plugins/stable/main/faders/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/faders/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/faders faders_so_SOURCES = faders.c faders_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -faders_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +faders_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include faders_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/flow/flow.c lebiniou-3.40/plugins/stable/main/flow/flow.c --- lebiniou-3.32/plugins/stable/main/flow/flow.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/flow/flow.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -108,9 +108,11 @@ /* Adapted for Le Biniou by */ #include "context.h" +#include "parameters.h" u_long id = 1069709528; /* it's pseudo-3d */ +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; char desc[] = "Flow effect"; @@ -151,6 +153,57 @@ /* #define MRAND(x) (b_rand_int_range(0, x)) */ /* #define RAND(x) (b_rand_int_range(0, x)) */ +#define NB_FLOW 8 + +static void fill_flow_struct(); + +enum Mode { MODE_SELECTED = 0, MODE_RANDOM, MODE_NB } Mode_e; +const char *mode_list[MODE_NB] = { "Selected", "Random" }; + +/* parameters */ +static enum Mode flow_mode = MODE_RANDOM; +static int flow_id = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_string_list(params, BPP_MODE, MODE_NB, mode_list, flow_mode); + plugin_parameters_add_int(params, BPP_FLOW_ID, flow_id, -1, 1); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_int_range(in_parameters, BPP_FLOW_ID, &flow_id, 0, NB_FLOW-1) & PLUGIN_PARAMETER_CHANGED; + + int mode_idx = 0; + if (plugin_parameter_parse_string_list_as_int_range(in_parameters, BPP_MODE, MODE_NB, mode_list, &mode_idx, 0, MODE_NB-1)) { + flow_mode = (enum Mode)mode_idx; + reload = 1; + } + + if (reload) { + if (flow_mode == MODE_SELECTED) { + fill_flow_struct(); + } + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + typedef struct { int count; double size; @@ -252,26 +305,14 @@ } -void -on_switch_on(Context_t *ctx) +static void +fill_flow_struct() { flowstruct *sp; int b; double beemult = 1 ; dvector range; - int rand; - - /* valgrind relou test */ - rand = NRAND(8); - b_timer_start(changeme); - - /* - if (flows == NULL) { - if ((flows = xcalloc(1,sizeof(flowstruct))) == NULL) - return; - } - */ sp = &flow; sp->count = 0; sp->tumble.theta = balance_rand(M_PI); @@ -290,102 +331,102 @@ sp->taillen = MINTRAIL; } - switch (rand) { - case 0: - sp->view.depth = 10; - sp->view.height = 0.2; - beemult = 3; - /* fallthrough */ - case 1: - sp->ODE = Lorenz; - sp->step = 0.02; - sp->size = 60; - sp->centre.x = 0; - sp->centre.y = 0; - sp->centre.z = 24; - range.x = 5; - range.y = 5; - range.z = 1; - sp->par.a = 10 + balance_rand(5); - sp->par.b = 28 + balance_rand(5); - sp->par.c = 2 + balance_rand(1); - break; - case 2: - sp->view.depth = 10; - sp->view.height = 0.1; - beemult = 4; - /* fallthrough */ - case 3: - sp->ODE = Rossler; - sp->step = 0.05; - sp->size = 24; - sp->centre.x = 0; - sp->centre.y = 0; - sp->centre.z = 3; - range.x = 6; - range.y = 6; - range.z = 5; - sp->par.a = 2 + balance_rand(1); - sp->par.b = 0.2 + balance_rand(0.1); - sp->par.c = 0.2 + balance_rand(0.1); - break; - case 4: - sp->view.depth = 10; - sp->view.height = 0.1; - beemult = 3; - /* fallthrough */ - case 5: - sp->ODE = RosslerCone; - sp->step = 0.05; - sp->size = 24; - sp->centre.x = 0; - sp->centre.y = 0; - sp->centre.z = 3; - range.x = 6; - range.y = 6; - range.z = 6; - sp->par.a = 2; - sp->par.b = 0.2; - sp->par.c = 0.331 + balance_rand(0.01); - break; - case 6: - sp->ODE = Birkhoff; - sp->step = 0.04; - sp->size = 2.6; - sp->centre.x = 0; - sp->centre.y = 0; - sp->centre.z = 0; - range.x = 3; - range.y = 4; - range.z = 0; - sp->par.a = 10 + balance_rand(5); - sp->par.b = 0.35 + balance_rand(0.25); - sp->par.c = 1.57; - sp->tumble.theta = 0; - sp->tumble.phi = 0; - sp->tumble.dtheta = 0; - sp->tumble.dphi = 0; - break; - case 7: - default: - sp->ODE = Duffing; - sp->step = 0.02; - sp->size = 30; - sp->centre.x = 0; - sp->centre.y = 0; - sp->centre.z = 0; - range.x = 20; - range.y = 20; - range.z = 0; - sp->par.a = 0.2 + balance_rand(0.1); - sp->par.b = 27.0 + balance_rand(3.0); - sp->par.c = 1.33; - sp->tumble.theta = 0; - sp->tumble.phi = 0; - sp->tumble.dtheta = -NRAND(2)*sp->par.c*sp->step; - sp->tumble.dphi = 0; - beemult = 0.5; - break; + switch (flow_id) { + case 0: + sp->view.depth = 10; + sp->view.height = 0.2; + beemult = 3; + /* fallthrough */ + case 1: + sp->ODE = Lorenz; + sp->step = 0.02; + sp->size = 60; + sp->centre.x = 0; + sp->centre.y = 0; + sp->centre.z = 24; + range.x = 5; + range.y = 5; + range.z = 1; + sp->par.a = 10 + balance_rand(5); + sp->par.b = 28 + balance_rand(5); + sp->par.c = 2 + balance_rand(1); + break; + case 2: + sp->view.depth = 10; + sp->view.height = 0.1; + beemult = 4; + /* fallthrough */ + case 3: + sp->ODE = Rossler; + sp->step = 0.05; + sp->size = 24; + sp->centre.x = 0; + sp->centre.y = 0; + sp->centre.z = 3; + range.x = 6; + range.y = 6; + range.z = 5; + sp->par.a = 2 + balance_rand(1); + sp->par.b = 0.2 + balance_rand(0.1); + sp->par.c = 0.2 + balance_rand(0.1); + break; + case 4: + sp->view.depth = 10; + sp->view.height = 0.1; + beemult = 3; + /* fallthrough */ + case 5: + sp->ODE = RosslerCone; + sp->step = 0.05; + sp->size = 24; + sp->centre.x = 0; + sp->centre.y = 0; + sp->centre.z = 3; + range.x = 6; + range.y = 6; + range.z = 6; + sp->par.a = 2; + sp->par.b = 0.2; + sp->par.c = 0.331 + balance_rand(0.01); + break; + case 6: + sp->ODE = Birkhoff; + sp->step = 0.04; + sp->size = 2.6; + sp->centre.x = 0; + sp->centre.y = 0; + sp->centre.z = 0; + range.x = 3; + range.y = 4; + range.z = 0; + sp->par.a = 10 + balance_rand(5); + sp->par.b = 0.35 + balance_rand(0.25); + sp->par.c = 1.57; + sp->tumble.theta = 0; + sp->tumble.phi = 0; + sp->tumble.dtheta = 0; + sp->tumble.dphi = 0; + break; + case 7: + default: + sp->ODE = Duffing; + sp->step = 0.02; + sp->size = 30; + sp->centre.x = 0; + sp->centre.y = 0; + sp->centre.z = 0; + range.x = 20; + range.y = 20; + range.z = 0; + sp->par.a = 0.2 + balance_rand(0.1); + sp->par.b = 27.0 + balance_rand(3.0); + sp->par.c = 1.33; + sp->tumble.theta = 0; + sp->tumble.phi = 0; + sp->tumble.dtheta = -NRAND(2)*sp->par.c*sp->step; + sp->tumble.dphi = 0; + beemult = 0.5; + break; } if (sp) { @@ -404,14 +445,21 @@ } /* Initialize point positions, velocities, etc. */ - for (b = 0; b < sp->beecount; b++) { X(1, b) = X(0, b) = balance_rand(range.x); Y(1, b) = Y(0, b) = balance_rand(range.y); Z(1, b) = Z(0, b) = balance_rand(range.z); } +} + + +void +on_switch_on(Context_t *ctx) +{ + flow_id = NRAND(NB_FLOW); + fill_flow_struct(); - /* printf("+++ flow::on_switch_on() done\n"); */ + b_timer_start(changeme); } @@ -472,7 +520,6 @@ M[2][0]= 0; M[2][1]= 0; M[2][2]= 0; - } for (col = 0; col < NCOL; col++) { @@ -629,7 +676,7 @@ if(++sp->count > 512)*/ ++sp->count; - if (b_timer_elapsed(changeme) > 30) { + if (flow_mode == MODE_RANDOM && b_timer_elapsed(changeme) > 30) { on_switch_on(ctx); } } diff -Nru lebiniou-3.32/plugins/stable/main/flow/Makefile.am lebiniou-3.40/plugins/stable/main/flow/Makefile.am --- lebiniou-3.32/plugins/stable/main/flow/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/flow/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ flow_so_SOURCES = flow.c flow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -flow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +flow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include flow_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/flow/Makefile.in lebiniou-3.40/plugins/stable/main/flow/Makefile.in --- lebiniou-3.32/plugins/stable/main/flow/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/flow/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/flow flow_so_SOURCES = flow.c flow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -flow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +flow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include flow_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/foo/foo.c lebiniou-3.40/plugins/stable/main/foo/foo.c --- lebiniou-3.32/plugins/stable/main/foo/foo.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/foo/foo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -40,7 +40,8 @@ u_long id = 944338581; /* options */ -u_long options = BE_GFX|BEQ_UNIQUE; +uint32_t version = 0; +u_long options = BE_SFX2D|BE_GFX|BEQ_UNIQUE; /* default layer mode */ u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/foo/Makefile.am lebiniou-3.40/plugins/stable/main/foo/Makefile.am --- lebiniou-3.32/plugins/stable/main/foo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/foo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ foo_so_SOURCES = foo.c foo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -foo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +foo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include foo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/foo/Makefile.in lebiniou-3.40/plugins/stable/main/foo/Makefile.in --- lebiniou-3.32/plugins/stable/main/foo/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/foo/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/foo foo_so_SOURCES = foo.c foo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -foo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +foo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include foo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/galaxy/galaxy.c lebiniou-3.40/plugins/stable/main/galaxy/galaxy.c --- lebiniou-3.32/plugins/stable/main/galaxy/galaxy.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/galaxy/galaxy.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 947190672; +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; char desc[] = "Galaxy effect"; diff -Nru lebiniou-3.32/plugins/stable/main/galaxy/Makefile.am lebiniou-3.40/plugins/stable/main/galaxy/Makefile.am --- lebiniou-3.32/plugins/stable/main/galaxy/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/galaxy/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ galaxy_so_SOURCES = galaxy.c galaxy_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -galaxy_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +galaxy_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include galaxy_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/galaxy/Makefile.in lebiniou-3.40/plugins/stable/main/galaxy/Makefile.in --- lebiniou-3.32/plugins/stable/main/galaxy/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/galaxy/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/galaxy galaxy_so_SOURCES = galaxy.c galaxy_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -galaxy_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +galaxy_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include galaxy_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/GLCube/GLCube.c lebiniou-3.40/plugins/stable/main/GLCube/GLCube.c --- lebiniou-3.32/plugins/stable/main/GLCube/GLCube.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/GLCube/GLCube.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 1328382269; +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; @@ -169,85 +170,85 @@ face(Context_t *ctx, const char f) { switch (f) { - case 0: // front face - get_texture(ctx, ACTIVE_BUFFER, 1); - NORMAL( - t1(); CE(8); - t2(); CE(5); - t3(); CE(6); - t4(); CE(7)); - break; - - case 1: // back face - get_texture(ctx, ACTIVE_BUFFER, 1); - INVERT( - t4(); CE(2); - t3(); CE(1); - t2(); CE(4); - t1(); CE(3)); - break; + case 0: // front face + get_texture(ctx, ACTIVE_BUFFER, 1); + NORMAL( + t1(); CE(8); + t2(); CE(5); + t3(); CE(6); + t4(); CE(7)); + break; - case 2: // left face + case 1: // back face + get_texture(ctx, ACTIVE_BUFFER, 1); + INVERT( + t4(); CE(2); + t3(); CE(1); + t2(); CE(4); + t1(); CE(3)); + break; + + case 2: // left face #ifdef WITH_WEBCAM - get_texture(ctx, (ctx->webcams >= 2) ? 1 : 0, 0); + get_texture(ctx, (ctx->webcams >= 2) ? 1 : 0, 0); #else - get_texture(ctx, 0, 0); + get_texture(ctx, 0, 0); #endif - NORMAL( - t4(); CE(3); - t3(); CE(4); - t2(); CE(5); - t1(); CE(8)); - break; - - case 3: // right face - get_texture(ctx, 0, 0); - if ( + NORMAL( + t4(); CE(3); + t3(); CE(4); + t2(); CE(5); + t1(); CE(8)); + break; + + case 3: // right face + get_texture(ctx, 0, 0); + if ( #ifdef WITH_WEBCAM - ctx->webcams > 1 + ctx->webcams > 1 #else - 1 + 1 #endif - ) { - if (1) - NORMAL( + ) { + if (1) + NORMAL( + t1(); CE(7); + t2(); CE(6); + t3(); CE(1); + t4(); CE(2)); + } else { + INVERT( t1(); CE(7); t2(); CE(6); t3(); CE(1); t4(); CE(2)); - } else { - INVERT( - t1(); CE(7); - t2(); CE(6); - t3(); CE(1); - t4(); CE(2)); - } - break; - - case 4: // up face - NORMAL({}); - break; - t1(); - CE(5); - t2(); - CE(4); - t3(); - CE(1); - t4(); - CE(6); - break; + } + break; + + case 4: // up face + NORMAL({}); + break; + t1(); + CE(5); + t2(); + CE(4); + t3(); + CE(1); + t4(); + CE(6); + break; #if 0 - case 5: // bottom face - t1(); - CE(3); - t2(); - CE(8); - t3(); - CE(7); - t4(); - CE(2); - break; + case 5: // bottom face + t1(); + CE(3); + t2(); + CE(8); + t3(); + CE(7); + t4(); + CE(2); + break; #endif } } diff -Nru lebiniou-3.32/plugins/stable/main/GLCube/Makefile.am lebiniou-3.40/plugins/stable/main/GLCube/Makefile.am --- lebiniou-3.32/plugins/stable/main/GLCube/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/GLCube/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ GLCube_so_SOURCES = GLCube.c GLCube_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -GLCube_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +GLCube_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include GLCube_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/GLCube/Makefile.in lebiniou-3.40/plugins/stable/main/GLCube/Makefile.in --- lebiniou-3.32/plugins/stable/main/GLCube/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/GLCube/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/GLCube GLCube_so_SOURCES = GLCube.c GLCube_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -GLCube_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +GLCube_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include GLCube_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/hodge/hodge.c lebiniou-3.40/plugins/stable/main/hodge/hodge.c --- lebiniou-3.32/plugins/stable/main/hodge/hodge.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/hodge/hodge.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1184941398; +uint32_t version = 0; u_long options = BE_DISPLACE|BE_LENS; char dname[] = "Hodge"; u_long mode = XOR; diff -Nru lebiniou-3.32/plugins/stable/main/hodge/Makefile.am lebiniou-3.40/plugins/stable/main/hodge/Makefile.am --- lebiniou-3.32/plugins/stable/main/hodge/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/hodge/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ hodge_so_SOURCES = hodge.c hodge_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -hodge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +hodge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include hodge_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/hodge/Makefile.in lebiniou-3.40/plugins/stable/main/hodge/Makefile.in --- lebiniou-3.32/plugins/stable/main/hodge/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/hodge/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/hodge hodge_so_SOURCES = hodge.c hodge_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -hodge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +hodge_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include hodge_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iColrot/iColrot.c lebiniou-3.40/plugins/stable/main/iColrot/iColrot.c --- lebiniou-3.32/plugins/stable/main/iColrot/iColrot.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrot/iColrot.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -35,6 +35,7 @@ #define COLORCOUNT 5 /* how many colors are visible in each chunk */ u_long id = 1553340853; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_IMAGE; u_long mode = OVERLAY; char desc[] = "Show image scrolling colors"; @@ -51,11 +52,11 @@ for (k = 0; k < BUFFSIZE; k++, src++) { if ( /* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { dst[k] = *src; } else { dst[k] = 0; diff -Nru lebiniou-3.32/plugins/stable/main/iColrot/Makefile.am lebiniou-3.40/plugins/stable/main/iColrot/Makefile.am --- lebiniou-3.32/plugins/stable/main/iColrot/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrot/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iColrot_so_SOURCES = iColrot.c iColrot_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrot_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iColrot/Makefile.in lebiniou-3.40/plugins/stable/main/iColrot/Makefile.in --- lebiniou-3.32/plugins/stable/main/iColrot/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrot/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iColrot iColrot_so_SOURCES = iColrot.c iColrot_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrot_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iColrotbeat/iColrotbeat.c lebiniou-3.40/plugins/stable/main/iColrotbeat/iColrotbeat.c --- lebiniou-3.32/plugins/stable/main/iColrotbeat/iColrotbeat.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotbeat/iColrotbeat.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -48,6 +48,7 @@ floor(INIT_INC * CURVE_VOL_STEP) > INIT_INC */ u_long id = 1553341827; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BE_LENS|BEQ_IMAGE; u_long mode = OVERLAY; char desc[] = "Show image scrolling colors on beat"; @@ -84,11 +85,11 @@ Pixel_t *dst = passive_buffer(ctx)->buffer; for (k = 0; k < BUFFSIZE; k++, src++) { if ( /* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { dst[k] = *src; } else { dst[k] = 0; diff -Nru lebiniou-3.32/plugins/stable/main/iColrotbeat/Makefile.am lebiniou-3.40/plugins/stable/main/iColrotbeat/Makefile.am --- lebiniou-3.32/plugins/stable/main/iColrotbeat/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotbeat/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iColrotbeat_so_SOURCES = iColrotbeat.c iColrotbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrotbeat_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iColrotbeat/Makefile.in lebiniou-3.40/plugins/stable/main/iColrotbeat/Makefile.in --- lebiniou-3.32/plugins/stable/main/iColrotbeat/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotbeat/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iColrotbeat iColrotbeat_so_SOURCES = iColrotbeat.c iColrotbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrotbeat_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iColrotslow/iColrotslow.c lebiniou-3.40/plugins/stable/main/iColrotslow/iColrotslow.c --- lebiniou-3.32/plugins/stable/main/iColrotslow/iColrotslow.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotslow/iColrotslow.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -35,6 +35,7 @@ #define INTERVAL 2 /* How often (in loop count) we rotate color values */ u_long id = 1553341808; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_IMAGE; u_long mode = OVERLAY; char desc[] = "Show image scrolling colors"; @@ -52,11 +53,11 @@ for (k = 0; k < BUFFSIZE; k++, src++) { if ( /* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src & MASK_SIZE) > min1) && ((*src & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src & MASK_SIZE)> min1) || ((*src & MASK_SIZE) < max1)))) { dst[k] = *src; } else { dst[k] = 0; diff -Nru lebiniou-3.32/plugins/stable/main/iColrotslow/Makefile.am lebiniou-3.40/plugins/stable/main/iColrotslow/Makefile.am --- lebiniou-3.32/plugins/stable/main/iColrotslow/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotslow/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iColrotslow_so_SOURCES = iColrotslow.c iColrotslow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrotslow_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iColrotslow/Makefile.in lebiniou-3.40/plugins/stable/main/iColrotslow/Makefile.in --- lebiniou-3.32/plugins/stable/main/iColrotslow/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iColrotslow/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iColrotslow iColrotslow_so_SOURCES = iColrotslow.c iColrotslow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iColrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iColrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iColrotslow_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iDissolve/iDissolve.c lebiniou-3.40/plugins/stable/main/iDissolve/iDissolve.c --- lebiniou-3.32/plugins/stable/main/iDissolve/iDissolve.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iDissolve/iDissolve.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -26,6 +26,7 @@ #include "images.h" u_long id = 1550933228; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Show images smoothly"; diff -Nru lebiniou-3.32/plugins/stable/main/iDissolve/Makefile.am lebiniou-3.40/plugins/stable/main/iDissolve/Makefile.am --- lebiniou-3.32/plugins/stable/main/iDissolve/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iDissolve/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iDissolve_so_SOURCES = iDissolve.c iDissolve_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iDissolve_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iDissolve_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iDissolve_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iDissolve/Makefile.in lebiniou-3.40/plugins/stable/main/iDissolve/Makefile.in --- lebiniou-3.32/plugins/stable/main/iDissolve/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iDissolve/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iDissolve iDissolve_so_SOURCES = iDissolve.c iDissolve_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iDissolve_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iDissolve_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iDissolve_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/imagedrop/imagedrop.c lebiniou-3.40/plugins/stable/main/imagedrop/imagedrop.c --- lebiniou-3.32/plugins/stable/main/imagedrop/imagedrop.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/imagedrop/imagedrop.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -39,6 +39,7 @@ u_long id = 1556217225; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE; char desc[] = "Image drops"; @@ -114,15 +115,15 @@ int dx = j - x; int dy = i - y; if (((dx * dx) + (dy * dy)) < distsq) { - if (((dx * dx) + (dy * dy)) < distsq2) { - mbuff[i * WIDTH + j] = mark; - } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { + if (((dx * dx) + (dy * dy)) < distsq2) { + mbuff[i * WIDTH + j] = mark; + } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { /* hazy pixel */ - mbuff[i * WIDTH + j] = mark; - } else { + mbuff[i * WIDTH + j] = mark; + } else { /* outside circle */ - mbuff[i * WIDTH + j] = -1; - } + mbuff[i * WIDTH + j] = -1; + } } } } @@ -132,7 +133,7 @@ run(Context_t *ctx) { static uint32_t imageid = 0; /* we store image id so that we can disable - drops when image changes */ + drops when image changes */ u_long i; if (ctx->imgf->dst->id != imageid) { /* image change detected */ imageid = ctx->imgf->dst->id; @@ -149,17 +150,17 @@ for (i = 0; i < DROPCOUNT; i++) { if (drops[i].x > -1) { /* in use */ if ((drops[i].current + READY_TOL) < drops[i].target) { - drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; - drops[i].incr = (drops[i].target - drops[i].current) * INCR_RATIO; - if (drops[i].incr < 1.0) { - drops[i].incr = 1.0; /* values less that 1 won't have any effect */ - } - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; + drops[i].incr = (drops[i].target - drops[i].current) * INCR_RATIO; + if (drops[i].incr < 1.0) { + drops[i].incr = 1.0; /* values less that 1 won't have any effect */ + } + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); } else { - /* this drop is done */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].target, -1, mask); - drops[i].x = -1; + /* this drop is done */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].target, -1, mask); + drops[i].x = -1; } } } @@ -171,12 +172,12 @@ /* new random drop */ drops[i].x = b_rand_int_range(0, WIDTH); drops[i].y = b_rand_int_range(0, HEIGHT); - drops[i].target = b_rand_double_range(DROPSIZE_MIN, DROPSIZE_MAX); + drops[i].target = b_rand_double_range(DROPSIZE_MIN, DROPSIZE_MAX); drops[i].current = drops[i].target * PROG_RATIO ; drops[i].incr = drops[i].target; - next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); break; } } @@ -189,11 +190,11 @@ Pixel_t col = src[i]; if (mask[i] >= 0) { if (col > ctx->imgf->cur->buff->buffer[i]) { - col = ((col - drops[mask[i]].incr) > ctx->imgf->cur->buff->buffer[i]) ? - col - drops[mask[i]].incr : ctx->imgf->cur->buff->buffer[i]; + col = ((col - drops[mask[i]].incr) > ctx->imgf->cur->buff->buffer[i]) ? + col - drops[mask[i]].incr : ctx->imgf->cur->buff->buffer[i]; } else if (col < ctx->imgf->cur->buff->buffer[i]) { - col = (col < (ctx->imgf->cur->buff->buffer[i] - drops[mask[i]].incr)) ? - col + drops[mask[i]].incr : ctx->imgf->cur->buff->buffer[i]; + col = (col < (ctx->imgf->cur->buff->buffer[i] - drops[mask[i]].incr)) ? + col + drops[mask[i]].incr : ctx->imgf->cur->buff->buffer[i]; } } *dst++ = col; diff -Nru lebiniou-3.32/plugins/stable/main/imagedrop/Makefile.am lebiniou-3.40/plugins/stable/main/imagedrop/Makefile.am --- lebiniou-3.32/plugins/stable/main/imagedrop/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/imagedrop/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ imagedrop_so_SOURCES = imagedrop.c imagedrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -imagedrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +imagedrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include imagedrop_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/imagedrop/Makefile.in lebiniou-3.40/plugins/stable/main/imagedrop/Makefile.in --- lebiniou-3.32/plugins/stable/main/imagedrop/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/imagedrop/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/imagedrop imagedrop_so_SOURCES = imagedrop.c imagedrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -imagedrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +imagedrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include imagedrop_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/include/blur.h lebiniou-3.40/plugins/stable/main/include/blur.h --- lebiniou-3.32/plugins/stable/main/include/blur.h 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/blur.h 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * Copyright 2019 Laurent Marsac + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#ifndef __BLUR_H +#define __BLUR_H + +static enum BorderMode border_mode; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_string_list(params, BPP_BORDER_MODE, BM_NB, border_list, border_mode); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int border_mode_idx = 0; + if (plugin_parameter_parse_string_list_as_int_range(in_parameters, BPP_BORDER_MODE, BM_NB, border_list, &border_mode_idx, 0, BM_NB-1)) { + border_mode = (enum BorderMode)border_mode_idx; + } +} + + +json_t * +parameters(json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +#endif /* __BLUR_H */ diff -Nru lebiniou-3.32/plugins/stable/main/include/delay.h lebiniou-3.40/plugins/stable/main/include/delay.h --- lebiniou-3.32/plugins/stable/main/include/delay.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/delay.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,8 @@ #ifndef __DELAY_H #define __DELAY_H +#include "parameters.h" + // to separate left and right channels #define DELAY_XOFFSET 0.5 diff -Nru lebiniou-3.32/plugins/stable/main/include/gum.h lebiniou-3.40/plugins/stable/main/include/gum.h --- lebiniou-3.32/plugins/stable/main/include/gum.h 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/gum.h 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,51 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * Copyright 2019 Laurent Marsac + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#ifndef __GUM_H +#define __GUM_H + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 1); +} + + +json_t * +parameters(json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + +#endif /* __GUM_H */ diff -Nru lebiniou-3.32/plugins/stable/main/include/infinity.h lebiniou-3.40/plugins/stable/main/include/infinity.h --- lebiniou-3.32/plugins/stable/main/include/infinity.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/infinity.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #ifndef __INFINITY_H #define __INFINITY_H +#include "parameters.h" typedef struct { gfloat x,y; diff -Nru lebiniou-3.32/plugins/stable/main/include/parameters.h lebiniou-3.40/plugins/stable/main/include/parameters.h --- lebiniou-3.32/plugins/stable/main/include/parameters.h 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/parameters.h 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,51 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#ifndef __BINIOU_PLUGIN_PARAMETERS_H +#define __BINIOU_PLUGIN_PARAMETERS_H + +#define BPP_BORDER_MODE "border_mode" +#define BPP_BORDER_X "border_x" +#define BPP_BORDER_Y "border_y" +#define BPP_COLOR_FACTOR "color_factor" +#define BPP_DECAY "decay" +#define BPP_DELAY "delay" +#define BPP_EFFECT "effect" +#define BPP_FLOW_ID "flow_id" +#define BPP_LENGTH "length" +#define BPP_LENGTH_MIN "length_min" +#define BPP_LENGTH_MAX "length_max" +#define BPP_MODE "mode" +#define BPP_MOVE_FACTOR "move_factor" +#define BPP_NB_MIN_ROTORS "nb_min_rotors" +#define BPP_NB_SPHERES "nb_spheres" +#define BPP_P_FACTOR "p_factor" +#define BPP_POS_FACTOR "pos_factor" +#define BPP_PROBA_VISIBLE "proba_visible" +#define BPP_RADIUS_FACTOR "radius_factor" +#define BPP_SCALE "scale" +#define BPP_SENSITIVITY "sensitivity" +#define BPP_SPECTRUM_ID_FACTOR "spectrum_id_factor" +#define BPP_SPEED "speed" +#define BPP_SPEED_FACTOR "speed_factor" +#define BPP_TTL_FACTOR "ttl_factor" +#define BPP_VEL_FACTOR "vel_factor" +#define BPP_VOLUME_SCALE "volume_scale" + +#endif /* __BINIOU_PLUGIN_PARAMETERS_H */ diff -Nru lebiniou-3.32/plugins/stable/main/include/shaker.h lebiniou-3.40/plugins/stable/main/include/shaker.h --- lebiniou-3.32/plugins/stable/main/include/shaker.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/shaker.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,8 +20,39 @@ #ifndef __SHAKER_H #define __SHAKER_H +#include "parameters.h" + #define SOUND_DISTURB_K 127 + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + static inline void check_width(short *value) { diff -Nru lebiniou-3.32/plugins/stable/main/include/spectrum.h lebiniou-3.40/plugins/stable/main/include/spectrum.h --- lebiniou-3.32/plugins/stable/main/include/spectrum.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/include/spectrum.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,35 @@ #ifndef __SPECTRUM_H #define __SPECTRUM_H +#include "parameters.h" + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + static inline u_short float_to_ushort(float x, u_short minval, u_short maxval) diff -Nru lebiniou-3.32/plugins/stable/main/infinity/infinity.c lebiniou-3.40/plugins/stable/main/infinity/infinity.c --- lebiniou-3.32/plugins/stable/main/infinity/infinity.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/infinity/infinity.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,11 @@ */ #include "context.h" -#include "../include/infinity.h" +#include "infinity.h" u_long id = 1188927899; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Infinity"; char desc[] = "Infinity effect"; @@ -35,6 +36,56 @@ */ #define NB_FCT 6 +static BTimer_t *timer = NULL; + +enum Mode { MODE_SELECTED = 0, MODE_RANDOM, MODE_NB } Mode_e; +const char *mode_list[MODE_NB] = { "Selected", "Random" }; + +/* parameters */ +static enum Mode mode = MODE_RANDOM; +static int effect = 0; +static int delay = 5; + + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_string_list(params, BPP_MODE, MODE_NB, mode_list, mode); + plugin_parameters_add_int(params, BPP_EFFECT, effect, -1, 1); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_int_range(in_parameters, BPP_EFFECT, &effect, 0, NB_FCT-1) & PLUGIN_PARAMETER_CHANGED; + int restart = 0; + restart |= plugin_parameter_parse_int_range(in_parameters, BPP_DELAY, &delay, 1, 60) & PLUGIN_PARAMETER_CHANGED; + + int mode_idx = 0; + if (plugin_parameter_parse_string_list_as_int_range(in_parameters, BPP_MODE, MODE_NB, mode_list, &mode_idx, 0, MODE_NB-1)) { + mode = (enum Mode)mode_idx; + reload = 1; + } + + if (restart) { + b_timer_restart(timer); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + static t_complex fct(t_complex a, guint32 n, gint32 p1, gint32 p2) /* p1 et p2:0-4 */ @@ -50,86 +101,86 @@ a.y -= HHEIGHT; switch (n) { - case 0: - an = 0.025*(p1-2)+0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.25; - speed = (gfloat)2000+p2*500; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - case 1: - an = 0.015*(p1-2)+0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.45; - speed = (gfloat)4000+p2*1000; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - fact = (sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - case 2: - an = 0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.25; - speed = (gfloat)400+p2*100; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - case 3: - an = (sinf(sqrtf(a.x*a.x+a.y*a.y)/20)/20)+0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.25; - speed = (gfloat)4000; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - case 4: - an = 0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.25; - speed = sinf(sqrtf(a.x*a.x+a.y*a.y)/5)*3000+4000; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - case 5: - an = 0.002; - co = cosf(an); - si = sinf(an); - circle_size = HEIGHT*0.25; - fact = 1+cosf(atanf(a.x/(a.y+0.00001))*6)*0.02; - b.x = (co*a.x-si*a.y); - b.y = (si*a.x+co*a.y); - b.x = (b.x*fact); - b.y = (b.y*fact); - break; - - default: - b.x = 0.0; - b.y = 0.0; + case 0: + an = 0.025*(p1-2)+0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.25; + speed = (gfloat)2000+p2*500; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + case 1: + an = 0.015*(p1-2)+0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.45; + speed = (gfloat)4000+p2*1000; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + fact = (sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + case 2: + an = 0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.25; + speed = (gfloat)400+p2*100; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + case 3: + an = (sinf(sqrtf(a.x*a.x+a.y*a.y)/20)/20)+0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.25; + speed = (gfloat)4000; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + case 4: + an = 0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.25; + speed = sinf(sqrtf(a.x*a.x+a.y*a.y)/5)*3000+4000; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + fact = -(sqrtf(b.x*b.x+b.y*b.y)-circle_size)/speed+1; + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + case 5: + an = 0.002; + co = cosf(an); + si = sinf(an); + circle_size = HEIGHT*0.25; + fact = 1+cosf(atanf(a.x/(a.y+0.00001))*6)*0.02; + b.x = (co*a.x-si*a.y); + b.y = (si*a.x+co*a.y); + b.x = (b.x*fact); + b.y = (b.y*fact); + break; + + default: + b.x = 0.0; + b.y = 0.0; } b.x += HWIDTH; @@ -145,7 +196,6 @@ /* Biniou plugin callbacks */ static u_char num_effect = 0; -static BTimer_t *timer = NULL; static Shuffler_t *shuffler = NULL; static VectorField_t *vf = NULL; @@ -157,6 +207,9 @@ timer = b_timer_new(); shuffler = Shuffler_new(NB_FCT); + mode = MODE_RANDOM; + effect = 0; + return 1; } @@ -181,11 +234,13 @@ void run(Context_t *ctx) { - /* printf("oOo %s:%d: effect= %d\n", __FILE__, __LINE__, num_effect); */ + if (mode == MODE_SELECTED) { + num_effect = effect; + } + VectorField_run(vf, ctx, num_effect); - /* TODO remove hardcoded 5 seconds delay */ - if (b_timer_elapsed(timer) > 5) { + if ((mode == MODE_RANDOM) && (b_timer_elapsed(timer) > delay)) { on_switch_on(ctx); } } diff -Nru lebiniou-3.32/plugins/stable/main/infinity/Makefile.am lebiniou-3.40/plugins/stable/main/infinity/Makefile.am --- lebiniou-3.32/plugins/stable/main/infinity/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/infinity/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ infinity_so_SOURCES = infinity.c infinity_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -infinity_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +infinity_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include infinity_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/infinity/Makefile.in lebiniou-3.40/plugins/stable/main/infinity/Makefile.in --- lebiniou-3.32/plugins/stable/main/infinity/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/infinity/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/infinity infinity_so_SOURCES = infinity.c infinity_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -infinity_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +infinity_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include infinity_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iPulse/iPulse.c lebiniou-3.40/plugins/stable/main/iPulse/iPulse.c --- lebiniou-3.32/plugins/stable/main/iPulse/iPulse.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse/iPulse.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,9 +19,11 @@ #include "context.h" #include "images.h" +#include "parameters.h" u_long id = 1216566743; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BEQ_IMAGE; u_long mode = OVERLAY; char desc[] = "Pulse pictures"; @@ -31,10 +33,40 @@ static const Image8_t *pic = NULL; +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + volume_scale = 1; + pic = Images_random(images); } @@ -48,7 +80,7 @@ u_long p, k; img = pic->buff; - volume = Input_get_volume(ctx->input); + volume = Input_get_volume(ctx->input) * volume_scale; //volume = expf(volume)/expf(1.0); // printf("Vol= %f\n", volume); p = (u_long)(volume * BUFFSIZE * 1); diff -Nru lebiniou-3.32/plugins/stable/main/iPulse/Makefile.am lebiniou-3.40/plugins/stable/main/iPulse/Makefile.am --- lebiniou-3.32/plugins/stable/main/iPulse/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iPulse_so_SOURCES = iPulse.c iPulse_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iPulse/Makefile.in lebiniou-3.40/plugins/stable/main/iPulse/Makefile.in --- lebiniou-3.32/plugins/stable/main/iPulse/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iPulse iPulse_so_SOURCES = iPulse.c iPulse_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iPulse2/iPulse2.c lebiniou-3.40/plugins/stable/main/iPulse2/iPulse2.c --- lebiniou-3.32/plugins/stable/main/iPulse2/iPulse2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse2/iPulse2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ #define CURVE_VOL_MULT 1.55 /* multiplier on count on one step */ u_long id = 1546524847; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Show image colors on beat"; diff -Nru lebiniou-3.32/plugins/stable/main/iPulse2/Makefile.am lebiniou-3.40/plugins/stable/main/iPulse2/Makefile.am --- lebiniou-3.32/plugins/stable/main/iPulse2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iPulse2_so_SOURCES = iPulse2.c iPulse2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iPulse2/Makefile.in lebiniou-3.40/plugins/stable/main/iPulse2/Makefile.in --- lebiniou-3.32/plugins/stable/main/iPulse2/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse2/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iPulse2 iPulse2_so_SOURCES = iPulse2.c iPulse2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iPulse3/iPulse3.c lebiniou-3.40/plugins/stable/main/iPulse3/iPulse3.c --- lebiniou-3.32/plugins/stable/main/iPulse3/iPulse3.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse3/iPulse3.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ #define CURVE_VOL_MULT 1.35 /* multiplier on count on one step */ u_long id = 1546957332; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Show image colors on beat"; @@ -72,7 +73,7 @@ if (col > (MAXCOLOR - colorsel - colorcount)) { if (dst->buffer[k] < col) { dst->buffer[k] = (col > (dst->buffer[k] + colorcount)) ? - (dst->buffer[k] + colorcount) : col; + (dst->buffer[k] + colorcount) : col; } } } diff -Nru lebiniou-3.32/plugins/stable/main/iPulse3/Makefile.am lebiniou-3.40/plugins/stable/main/iPulse3/Makefile.am --- lebiniou-3.32/plugins/stable/main/iPulse3/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse3/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iPulse3_so_SOURCES = iPulse3.c iPulse3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse3_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iPulse3/Makefile.in lebiniou-3.40/plugins/stable/main/iPulse3/Makefile.in --- lebiniou-3.32/plugins/stable/main/iPulse3/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse3/Makefile.in 2020-01-23 13:57:16.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iPulse3 iPulse3_so_SOURCES = iPulse3.c iPulse3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse3_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/iPulse4/iPulse4.c lebiniou-3.40/plugins/stable/main/iPulse4/iPulse4.c --- lebiniou-3.32/plugins/stable/main/iPulse4/iPulse4.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse4/iPulse4.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ static u_char pattern[PATTERNSIZE]; u_long id = 1546957355; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Show image colors on beat"; diff -Nru lebiniou-3.32/plugins/stable/main/iPulse4/Makefile.am lebiniou-3.40/plugins/stable/main/iPulse4/Makefile.am --- lebiniou-3.32/plugins/stable/main/iPulse4/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse4/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ iPulse4_so_SOURCES = iPulse4.c iPulse4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse4_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/iPulse4/Makefile.in lebiniou-3.40/plugins/stable/main/iPulse4/Makefile.in --- lebiniou-3.32/plugins/stable/main/iPulse4/Makefile.in 2019-12-04 14:09:23.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/iPulse4/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/iPulse4 iPulse4_so_SOURCES = iPulse4.c iPulse4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -iPulse4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +iPulse4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include iPulse4_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/isquares/isquares.c lebiniou-3.40/plugins/stable/main/isquares/isquares.c --- lebiniou-3.32/plugins/stable/main/isquares/isquares.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquares/isquares.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 1090876849; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Random image squares"; diff -Nru lebiniou-3.32/plugins/stable/main/isquares/Makefile.am lebiniou-3.40/plugins/stable/main/isquares/Makefile.am --- lebiniou-3.32/plugins/stable/main/isquares/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquares/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ isquares_so_SOURCES = isquares.c isquares_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -isquares_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +isquares_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include isquares_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/isquares/Makefile.in lebiniou-3.40/plugins/stable/main/isquares/Makefile.in --- lebiniou-3.32/plugins/stable/main/isquares/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquares/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/isquares isquares_so_SOURCES = isquares.c isquares_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -isquares_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +isquares_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include isquares_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/isquaresbeat/isquaresbeat.c lebiniou-3.40/plugins/stable/main/isquaresbeat/isquaresbeat.c --- lebiniou-3.32/plugins/stable/main/isquaresbeat/isquaresbeat.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquaresbeat/isquaresbeat.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ #define SQUARES_MAX 70 u_long id = 1552167091; +uint32_t version = 0; u_long options = BE_GFX|BE_SFX2D|BEQ_IMAGE; u_long mode = NORMAL; char desc[] = "Random image squares in beat"; @@ -42,7 +43,7 @@ if (ctx->input->on_beat) { maxsq = SQUARES_PER_TURN_BEAT + - SQUARES_PER_TURN_POWER_COEFF * ctx->input->peakpower; + SQUARES_PER_TURN_POWER_COEFF * ctx->input->peakpower; } else { maxsq = SQUARES_PER_TURN_DEFAULT; } diff -Nru lebiniou-3.32/plugins/stable/main/isquaresbeat/Makefile.am lebiniou-3.40/plugins/stable/main/isquaresbeat/Makefile.am --- lebiniou-3.32/plugins/stable/main/isquaresbeat/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquaresbeat/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ isquaresbeat_so_SOURCES = isquaresbeat.c isquaresbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -isquaresbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +isquaresbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include isquaresbeat_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/isquaresbeat/Makefile.in lebiniou-3.40/plugins/stable/main/isquaresbeat/Makefile.in --- lebiniou-3.32/plugins/stable/main/isquaresbeat/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/isquaresbeat/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/isquaresbeat isquaresbeat_so_SOURCES = isquaresbeat.c isquaresbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -isquaresbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +isquaresbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include isquaresbeat_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/kaleid2/kaleid2.c lebiniou-3.40/plugins/stable/main/kaleid2/kaleid2.c --- lebiniou-3.32/plugins/stable/main/kaleid2/kaleid2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/kaleid2/kaleid2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949844284; +uint32_t version = 0; u_long options = BE_LENS; char desc[] = "Kaleidoscope effect"; diff -Nru lebiniou-3.32/plugins/stable/main/kaleid2/Makefile.am lebiniou-3.40/plugins/stable/main/kaleid2/Makefile.am --- lebiniou-3.32/plugins/stable/main/kaleid2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/kaleid2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ kaleid2_so_SOURCES = kaleid2.c kaleid2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -kaleid2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +kaleid2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include kaleid2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/kaleid2/Makefile.in lebiniou-3.40/plugins/stable/main/kaleid2/Makefile.in --- lebiniou-3.32/plugins/stable/main/kaleid2/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/kaleid2/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/kaleid2 kaleid2_so_SOURCES = kaleid2.c kaleid2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -kaleid2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +kaleid2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include kaleid2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/life/life.c lebiniou-3.40/plugins/stable/main/life/life.c --- lebiniou-3.32/plugins/stable/main/life/life.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/life/life.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1077223395; +uint32_t version = 0; u_long options = BE_GFX|BEQ_UNIQUE; char desc[] = "Cellular automaton"; diff -Nru lebiniou-3.32/plugins/stable/main/life/Makefile.am lebiniou-3.40/plugins/stable/main/life/Makefile.am --- lebiniou-3.32/plugins/stable/main/life/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/life/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ life_so_SOURCES = life.c life_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -life_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +life_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include life_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/life/Makefile.in lebiniou-3.40/plugins/stable/main/life/Makefile.in --- lebiniou-3.32/plugins/stable/main/life/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/life/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/life life_so_SOURCES = life.c life_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -life_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +life_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include life_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/Makefile.am lebiniou-3.40/plugins/stable/main/Makefile.am --- lebiniou-3.32/plugins/stable/main/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/Makefile.am 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,10 @@ EXTRA_DIST = include/shaker.h \ - include/infinity.h \ + include/blur.h \ include/delay.h \ + include/gum.h \ + include/infinity.h \ + include/parameters.h \ + include/shaker.h \ include/spectrum.h SUBDIRS = \ diff -Nru lebiniou-3.32/plugins/stable/main/Makefile.in lebiniou-3.40/plugins/stable/main/Makefile.in --- lebiniou-3.32/plugins/stable/main/Makefile.in 2019-12-04 14:09:22.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -275,6 +275,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -319,6 +321,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -379,8 +383,12 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = include/shaker.h \ - include/infinity.h \ + include/blur.h \ include/delay.h \ + include/gum.h \ + include/infinity.h \ + include/parameters.h \ + include/shaker.h \ include/spectrum.h diff -Nru lebiniou-3.32/plugins/stable/main/melt/Makefile.am lebiniou-3.40/plugins/stable/main/melt/Makefile.am --- lebiniou-3.32/plugins/stable/main/melt/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/melt/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ melt_so_SOURCES = melt.c melt_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -melt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +melt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include melt_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/melt/Makefile.in lebiniou-3.40/plugins/stable/main/melt/Makefile.in --- lebiniou-3.32/plugins/stable/main/melt/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/melt/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/melt melt_so_SOURCES = melt.c melt_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -melt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +melt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include melt_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/melt/melt.c lebiniou-3.40/plugins/stable/main/melt/melt.c --- lebiniou-3.32/plugins/stable/main/melt/melt.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/melt/melt.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,13 +18,55 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1178827232; +uint32_t version = 0; u_long options = BE_DISPLACE; char desc[] = "Melt effect"; +static int speed = 0; +static float color_factor = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_int(params, BPP_SPEED, speed, -1, 1); + plugin_parameters_add_double(params, BPP_COLOR_FACTOR, color_factor, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_int_range(in_parameters, BPP_SPEED, &speed, -7, 7); + plugin_parameter_parse_float_range(in_parameters, BPP_COLOR_FACTOR, &color_factor, 0, 1); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + speed = 3; + color_factor = 0.5; +} + + void run(Context_t *ctx) { @@ -33,22 +75,43 @@ int x, y; - for (x = 0; x < WIDTH; x++) { - set_pixel_nc(dst, x, 0, get_pixel_nc(src, x, 0)); - } - - for (y = 1; y < HEIGHT; y++) { + if (speed < 0) { for (x = 0; x < WIDTH; x++) { - Pixel_t c = get_pixel_nc(src, x, y); - int y2 = y - (c >> 5); + set_pixel_nc(dst, x, HEIGHT-1, get_pixel_nc(src, x, HEIGHT-1)); + } - if (y2 < 0) { - y2 = 0; + for (y = HEIGHT-2; y > 0; y--) { + for (x = 0; x < WIDTH; x++) { + Pixel_t c = get_pixel_nc(src, x, y); + int y2 = y + (c >> (8+speed)); + + if (y2 > HEIGHT-1) { + y2 = HEIGHT-1; + } + + set_pixel_nc(dst, x, y, c * color_factor); + set_pixel_nc(dst, x, y2, c); } + } + } else { + for (x = 0; x < WIDTH; x++) { + set_pixel_nc(dst, x, 0, get_pixel_nc(src, x, 0)); + } - set_pixel_nc(dst, x, y, c/2); - set_pixel_nc(dst, x, y2, c); + for (y = 1; y < HEIGHT; y++) { + for (x = 0; x < WIDTH; x++) { + Pixel_t c = get_pixel_nc(src, x, y); + int y2 = y - (c >> (8-speed)); + + if (y2 < 0) { + y2 = 0; + } + + set_pixel_nc(dst, x, y, c * color_factor); + set_pixel_nc(dst, x, y2, c); + } } } + h_line_nc(dst, MAXY, 0, MAXX, 0); } diff -Nru lebiniou-3.32/plugins/stable/main/mosaic/Makefile.am lebiniou-3.40/plugins/stable/main/mosaic/Makefile.am --- lebiniou-3.32/plugins/stable/main/mosaic/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/mosaic/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ mosaic_so_SOURCES = mosaic.c mosaic_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -mosaic_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +mosaic_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include mosaic_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/mosaic/Makefile.in lebiniou-3.40/plugins/stable/main/mosaic/Makefile.in --- lebiniou-3.32/plugins/stable/main/mosaic/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/mosaic/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/mosaic mosaic_so_SOURCES = mosaic.c mosaic_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -mosaic_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +mosaic_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include mosaic_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/mosaic/mosaic.c lebiniou-3.40/plugins/stable/main/mosaic/mosaic.c --- lebiniou-3.32/plugins/stable/main/mosaic/mosaic.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/mosaic/mosaic.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1169583898; +uint32_t version = 0; u_long options = BE_LENS; char desc[] = "Mosaic effect"; diff -Nru lebiniou-3.32/plugins/stable/main/nspiral/Makefile.am lebiniou-3.40/plugins/stable/main/nspiral/Makefile.am --- lebiniou-3.32/plugins/stable/main/nspiral/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/nspiral/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ nspiral_so_SOURCES = nspiral.c nspiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -nspiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +nspiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include nspiral_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/nspiral/Makefile.in lebiniou-3.40/plugins/stable/main/nspiral/Makefile.in --- lebiniou-3.32/plugins/stable/main/nspiral/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/nspiral/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/nspiral nspiral_so_SOURCES = nspiral.c nspiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -nspiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +nspiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include nspiral_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/nspiral/nspiral.c lebiniou-3.40/plugins/stable/main/nspiral/nspiral.c --- lebiniou-3.32/plugins/stable/main/nspiral/nspiral.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/nspiral/nspiral.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1167487171; +uint32_t version = 0; u_long options = BE_WARP|BE_LENS; char desc[] = "Nested spirals filter"; diff -Nru lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/Makefile.am lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/Makefile.am --- lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ of_archimedean_spiral_3d_so_SOURCES = of_archimedean_spiral_3d.c of_archimedean_spiral_3d_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -of_archimedean_spiral_3d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +of_archimedean_spiral_3d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include of_archimedean_spiral_3d_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/Makefile.in lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/Makefile.in --- lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -218,6 +218,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -262,6 +264,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -324,7 +328,7 @@ plugindir = @libdir@/lebiniou/plugins/main/of_archimedean_spiral_3d of_archimedean_spiral_3d_so_SOURCES = of_archimedean_spiral_3d.c of_archimedean_spiral_3d_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -of_archimedean_spiral_3d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +of_archimedean_spiral_3d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include of_archimedean_spiral_3d_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/of_archimedean_spiral_3d.c lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/of_archimedean_spiral_3d.c --- lebiniou-3.32/plugins/stable/main/of_archimedean_spiral_3d/of_archimedean_spiral_3d.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_archimedean_spiral_3d/of_archimedean_spiral_3d.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,13 +18,50 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1073678364; +uint32_t version = 0; u_long options = BE_SFX3D|BEQ_NORANDOM; char dname[] = "OF A-Spiral"; u_long mode = OVERLAY; char desc[] = "3D Archimedean spiral"; +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 1); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + void run(Context_t *ctx) @@ -34,7 +71,7 @@ Buffer8_clear(dst); - float random = Input_get_volume(ctx->input); + float random = Input_get_volume(ctx->input) * volume_scale; for (t = 0 ; t < 8 * M_PI ; t += 0.1) { Point3d_t P; diff -Nru lebiniou-3.32/plugins/stable/main/of_spiral/Makefile.am lebiniou-3.40/plugins/stable/main/of_spiral/Makefile.am --- lebiniou-3.32/plugins/stable/main/of_spiral/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_spiral/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ of_spiral_so_SOURCES = of_spiral.c of_spiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -of_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +of_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include of_spiral_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/of_spiral/Makefile.in lebiniou-3.40/plugins/stable/main/of_spiral/Makefile.in --- lebiniou-3.32/plugins/stable/main/of_spiral/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_spiral/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/of_spiral of_spiral_so_SOURCES = of_spiral.c of_spiral_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -of_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +of_spiral_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include of_spiral_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/of_spiral/of_spiral.c lebiniou-3.40/plugins/stable/main/of_spiral/of_spiral.c --- lebiniou-3.32/plugins/stable/main/of_spiral/of_spiral.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/of_spiral/of_spiral.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,13 +18,50 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1057526835; +uint32_t version = 0; u_long options = BE_SFX2D; char dname[] = "OF Spiral"; u_long mode = OVERLAY; char desc[] = "Pulsing spiral"; +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 1); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + void run(Context_t *ctx) @@ -36,7 +73,7 @@ Buffer8_clear(dst); - x1 = Input_get_volume(ctx->input) * WIDTH; /* Nb de pts par droite */ + x1 = Input_get_volume(ctx->input) * WIDTH * volume_scale; /* Nb de pts par droite */ x2 = 0.3 + ctx->input->data[A_MONO][((int)x1 % ctx->input->size)]; for (i = 0; i < WIDTH; i++) { diff -Nru lebiniou-3.32/plugins/stable/main/paintdrop/Makefile.am lebiniou-3.40/plugins/stable/main/paintdrop/Makefile.am --- lebiniou-3.32/plugins/stable/main/paintdrop/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/paintdrop/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ paintdrop_so_SOURCES = paintdrop.c paintdrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -paintdrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +paintdrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include paintdrop_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/paintdrop/Makefile.in lebiniou-3.40/plugins/stable/main/paintdrop/Makefile.in --- lebiniou-3.32/plugins/stable/main/paintdrop/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/paintdrop/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/paintdrop paintdrop_so_SOURCES = paintdrop.c paintdrop_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -paintdrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +paintdrop_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include paintdrop_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/paintdrop/paintdrop.c lebiniou-3.40/plugins/stable/main/paintdrop/paintdrop.c --- lebiniou-3.32/plugins/stable/main/paintdrop/paintdrop.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/paintdrop/paintdrop.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -37,6 +37,7 @@ u_long id = 1558717656; +uint32_t version = 0; u_long options = BE_GFX; char desc[] = "Color drops"; @@ -112,15 +113,15 @@ int dx = j - x; int dy = i - y; if (((dx * dx) + (dy * dy)) < distsq) { - if (((dx * dx) + (dy * dy)) < distsq2) { - mbuff[i * WIDTH + j] = mark; - } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { + if (((dx * dx) + (dy * dy)) < distsq2) { + mbuff[i * WIDTH + j] = mark; + } else if (b_rand_int_range(0, HAZY_RATIO) == 0) { /* hazy pixels */ - mbuff[i * WIDTH + j] = mark; - } else { + mbuff[i * WIDTH + j] = mark; + } else { /* outside circle */ - mbuff[i * WIDTH + j] = -1; - } + mbuff[i * WIDTH + j] = -1; + } } } } @@ -135,13 +136,13 @@ for (i = 0; i < DROPCOUNT; i++) { if (drops[i].x > -1) { /* in use */ if ((drops[i].current + READY_TOL) < drops[i].target) { - drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + drops[i].current += (drops[i].target - drops[i].current) * PROG_RATIO; + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); } else { - /* this drop is done */ - mark_circle_range(drops[i].x, drops[i].y,drops[i].current, -1, mask); - drops[i].x = -1; + /* this drop is done */ + mark_circle_range(drops[i].x, drops[i].y,drops[i].current, -1, mask); + drops[i].x = -1; } } } @@ -157,9 +158,9 @@ drops[i].color = b_rand_int_range(0, PIXEL_MAXVAL); drops[i].target = b_rand_double_range(DROPSIZE_MIN, DROPSIZE_MAX); drops[i].current = drops[i].target * PROG_RATIO ; - next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); - /* mark area where this drop affects this round */ - mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); + next_drop = b_rand_int_range(WAIT_MIN, WAIT_MAX); + /* mark area where this drop affects this round */ + mark_circle_range(drops[i].x, drops[i].y, drops[i].current, i, mask); break; } } diff -Nru lebiniou-3.32/plugins/stable/main/poincare/Makefile.am lebiniou-3.40/plugins/stable/main/poincare/Makefile.am --- lebiniou-3.32/plugins/stable/main/poincare/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/poincare/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ poincare_so_SOURCES = poincare.c poincare_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -poincare_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +poincare_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include poincare_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/poincare/Makefile.in lebiniou-3.40/plugins/stable/main/poincare/Makefile.in --- lebiniou-3.32/plugins/stable/main/poincare/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/poincare/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/poincare poincare_so_SOURCES = poincare.c poincare_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -poincare_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +poincare_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include poincare_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/poincare/poincare.c lebiniou-3.40/plugins/stable/main/poincare/poincare.c --- lebiniou-3.32/plugins/stable/main/poincare/poincare.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/poincare/poincare.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 947430864; +uint32_t version = 0; u_long options = BEQ_NORANDOM; char desc[] = "Poincare effect"; diff -Nru lebiniou-3.32/plugins/stable/main/polaroscillo/Makefile.am lebiniou-3.40/plugins/stable/main/polaroscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/polaroscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/polaroscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ polaroscillo_so_SOURCES = polaroscillo.c polaroscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -polaroscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +polaroscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include polaroscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/polaroscillo/Makefile.in lebiniou-3.40/plugins/stable/main/polaroscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/polaroscillo/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/polaroscillo/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/polaroscillo polaroscillo_so_SOURCES = polaroscillo.c polaroscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -polaroscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +polaroscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include polaroscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/polaroscillo/polaroscillo.c lebiniou-3.40/plugins/stable/main/polaroscillo/polaroscillo.c --- lebiniou-3.32/plugins/stable/main/polaroscillo/polaroscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/polaroscillo/polaroscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482114; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Draw an oscillo in a radar way"; @@ -32,7 +34,34 @@ static float polar_theta, polar_inc_theta; static u_short polar_radius; static float polar_length; -static int connect = 1; +static int polaroscillo_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} void @@ -45,7 +74,7 @@ P->origin = last_polar; - t.v_j_factor = MAXY/4 * 0.85; + t.v_j_factor = MAXY/4 * volume_scale; polar_inc_theta = 2. * M_PI * polar_length / (float)(input->size); @@ -99,9 +128,17 @@ void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 0.85; +} + + +void run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, polaroscillo_connect); init(ctx->input); } diff -Nru lebiniou-3.32/plugins/stable/main/pulse/Makefile.am lebiniou-3.40/plugins/stable/main/pulse/Makefile.am --- lebiniou-3.32/plugins/stable/main/pulse/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/pulse/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ pulse_so_SOURCES = pulse.c pulse_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -pulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +pulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include pulse_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/pulse/Makefile.in lebiniou-3.40/plugins/stable/main/pulse/Makefile.in --- lebiniou-3.32/plugins/stable/main/pulse/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/pulse/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/pulse pulse_so_SOURCES = pulse.c pulse_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -pulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +pulse_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include pulse_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/pulse/pulse.c lebiniou-3.40/plugins/stable/main/pulse/pulse.c --- lebiniou-3.32/plugins/stable/main/pulse/pulse.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/pulse/pulse.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 948557759; +uint32_t version = 0; u_long options = BEQ_COLORMAP; u_long mode = NONE; char desc[] = "Pulse the colormap"; @@ -58,9 +59,9 @@ for (i = 1; i <= L; i++) //somme += ctx->input->spectrum_log_norme[A_MONO][i]; - { - somme += ctx->input->spectrum[A_MONO][i]; - } + { + somme += ctx->input->spectrum[A_MONO][i]; + } somme /= L; /* FIXME */ diff -Nru lebiniou-3.32/plugins/stable/main/ripple/Makefile.am lebiniou-3.40/plugins/stable/main/ripple/Makefile.am --- lebiniou-3.32/plugins/stable/main/ripple/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ripple/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ ripple_so_SOURCES = ripple.c ripple_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ripple_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ripple_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ripple_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/ripple/Makefile.in lebiniou-3.40/plugins/stable/main/ripple/Makefile.in --- lebiniou-3.32/plugins/stable/main/ripple/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ripple/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/ripple ripple_so_SOURCES = ripple.c ripple_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ripple_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ripple_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ripple_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/ripple/ripple.c lebiniou-3.40/plugins/stable/main/ripple/ripple.c --- lebiniou-3.32/plugins/stable/main/ripple/ripple.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ripple/ripple.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ #include "context.h" u_long id = 957202985; +uint32_t version = 0; u_long options = BE_WARP | BE_LENS; char desc[] = "Ripple effect"; diff -Nru lebiniou-3.32/plugins/stable/main/roscillo/Makefile.am lebiniou-3.40/plugins/stable/main/roscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/roscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/roscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ roscillo_so_SOURCES = roscillo.c roscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -roscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +roscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include roscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/roscillo/Makefile.in lebiniou-3.40/plugins/stable/main/roscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/roscillo/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/roscillo/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/roscillo roscillo_so_SOURCES = roscillo.c roscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -roscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +roscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include roscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/roscillo/roscillo.c lebiniou-3.40/plugins/stable/main/roscillo/roscillo.c --- lebiniou-3.32/plugins/stable/main/roscillo/roscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/roscillo/roscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482109; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Rotating oscilloscope"; @@ -32,7 +34,37 @@ #define RADIUS (HMINSCREEN * 0.85) static float alpha = 0.0; -static int connect = 1; +static int roscillo_connect = 1; + +static float volume_scale = 0; +static float speed = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SPEED, speed, -0.2, 0.2); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); + plugin_parameter_parse_float_range(in_parameters, BPP_SPEED, &speed, -100, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} static void @@ -46,7 +78,7 @@ P->origin.x = CENTERX - RADIUS * cos (alpha); P->origin.y = CENTERY - RADIUS * sin (alpha); - t.v_j_factor = HMAXY * 0.85; + t.v_j_factor = HMAXY * volume_scale; t.v_i.x = (2.0 / (float)(P->size - 1) * (float)RADIUS) * cos (alpha); t.v_i.y = (2.0 / (float)(P->size - 1) * (float)RADIUS) * sin (alpha); @@ -80,6 +112,9 @@ void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + volume_scale = 0.85; + speed = 1; /* connect = b_rand_boolean(); */ } @@ -88,10 +123,10 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, roscillo_connect); /* FIXME hardcoded */ - alpha += 0.005; + alpha += 0.005 * speed; if (alpha > 2*M_PI) { alpha -= 2*M_PI; diff -Nru lebiniou-3.32/plugins/stable/main/rotors/Makefile.am lebiniou-3.40/plugins/stable/main/rotors/Makefile.am --- lebiniou-3.32/plugins/stable/main/rotors/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ rotors_so_SOURCES = rotors.c rotors_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rotors_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rotors_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rotors_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/rotors/Makefile.in lebiniou-3.40/plugins/stable/main/rotors/Makefile.in --- lebiniou-3.32/plugins/stable/main/rotors/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/rotors rotors_so_SOURCES = rotors.c rotors_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rotors_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rotors_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rotors_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/rotors/rotors.c lebiniou-3.40/plugins/stable/main/rotors/rotors.c --- lebiniou-3.32/plugins/stable/main/rotors/rotors.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors/rotors.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -24,8 +24,10 @@ */ #include "context.h" +#include "parameters.h" u_long id = 949178536; +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; char desc[] = "Rotors effect"; @@ -56,7 +58,7 @@ static _Complex float ci; static float min_rnd_factor, max_rnd_factor; -static u_short length, nb_rotors, min_color, max_color; +static u_short nb_rotors, min_color, max_color; static float freq_base_moy, freq_base_ect; static float freq_var_moy, freq_var_ect; static float ampl_var_moy, ampl_var_ect; @@ -66,6 +68,50 @@ static Rotor tab[MAX_ROTORS]; static float time_step; +static int nb_min_rotors = 0; +static int length = 0; +static float speed = 0; +static float scale = 0; + +static void post_init(); + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_int(params, BPP_NB_MIN_ROTORS, nb_min_rotors, -1, 1); + plugin_parameters_add_double(params, BPP_PROBA_VISIBLE, proba_visible, -0.01, 0.01); + plugin_parameters_add_int(params, BPP_LENGTH, length, -10, 10); + plugin_parameters_add_double(params, BPP_SPEED, speed, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SCALE, scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_int_range(in_parameters, BPP_NB_MIN_ROTORS, &nb_min_rotors, 0, 1) & PLUGIN_PARAMETER_CHANGED; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_PROBA_VISIBLE, &proba_visible, 0, 1) & PLUGIN_PARAMETER_CHANGED; + plugin_parameter_parse_int_range(in_parameters, BPP_LENGTH, &length, 10, 1000); + plugin_parameter_parse_float_range(in_parameters, BPP_SPEED, &speed, -10, 10); + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_SCALE, &scale, 0, 2) & PLUGIN_PARAMETER_CHANGED; + + if (reload) { + post_init(); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} /* note: this is _NOT_ a perfect binary-tree, * ie a node might have 1 or 2 sons @@ -143,7 +189,7 @@ build() { build_rotor_tree(); - init_rotor_tree(tab, MINSCREEN); + init_rotor_tree(tab, scale * MINSCREEN); } @@ -172,7 +218,7 @@ static inline Pixel_t -couleur() +color() { float d = drand48() * (max_color - min_color) + min_color; return (Pixel_t)d; @@ -194,6 +240,21 @@ } } VERBOSE(printf(" done\n")); + + /* Setting at least 1 rotor, if asked */ + if (nb_min_rotors == 1) { + uint8_t n_visible = 0; + for (i = 7; i < MAX_ROTORS; i++) + if (tab[i].visible) { + n_visible++; + } + + if (n_visible == 0) { + uint8_t v = b_rand_int_range(7, MAX_ROTORS-1); + VERBOSE(printf("set %d visible\n", v)); + tab[v].visible = 1; + } + } } @@ -203,7 +264,7 @@ int i; for (i = 0; i < nb_rotors; i++) { - tab[i].coul = couleur(); + tab[i].coul = color(); tab[i].freq = norm_freq_base(); tab[i].freq_var = norm_freq(); tab[i].ampl_var = norm_ampl(); @@ -222,7 +283,6 @@ /* printf("Rotors: %f+%f*i\n", creal(ci), cimag(ci)); */ nb_rotors = 16; - length = 200; min_color = 200; max_color = 250; min_rnd_factor = 0.3; @@ -249,8 +309,7 @@ float f, arg, alpha; _Complex float pos_rel; - f = rotor->freq - * exp(rotor->ampl_var * cos(2 * M_PI * rotor->freq_var * rotor_time)); + f = rotor->freq * exp(rotor->ampl_var * cos(2 * M_PI * rotor->freq_var * rotor_time)); arg = f * rotor_time; arg -= (long)(arg); alpha = 2 * M_PI * arg; @@ -281,7 +340,6 @@ short x, y; x = (short)(creal(tab[i].centre) + CENTERX); y = (short)(cimag(tab[i].centre) + CENTERY); - /* printf ("x= %d\ty= %d\n", x, y);*/ #if 1 set_pixel(dst, x, y, tab[i].coul); @@ -299,7 +357,7 @@ Buffer8_clear(passive_buffer(ctx)); for (i = 0; i < length; i++) { - rotor_time += time_step; + rotor_time += time_step * speed; refresh(tab); display(ctx); } @@ -328,5 +386,10 @@ void on_switch_on(Context_t *ctx) { + nb_min_rotors = 1; + proba_visible = 0.33; + length = 200; + speed = 1; + scale = 1; post_init(); } diff -Nru lebiniou-3.32/plugins/stable/main/rotors_freq/Makefile.am lebiniou-3.40/plugins/stable/main/rotors_freq/Makefile.am --- lebiniou-3.32/plugins/stable/main/rotors_freq/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors_freq/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ rotors_freq_so_SOURCES = rotors_freq.c rotors_freq_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rotors_freq_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rotors_freq_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rotors_freq_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/rotors_freq/Makefile.in lebiniou-3.40/plugins/stable/main/rotors_freq/Makefile.in --- lebiniou-3.32/plugins/stable/main/rotors_freq/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors_freq/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/rotors_freq rotors_freq_so_SOURCES = rotors_freq.c rotors_freq_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rotors_freq_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rotors_freq_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rotors_freq_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/rotors_freq/rotors_freq.c lebiniou-3.40/plugins/stable/main/rotors_freq/rotors_freq.c --- lebiniou-3.32/plugins/stable/main/rotors_freq/rotors_freq.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rotors_freq/rotors_freq.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -23,8 +23,10 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1567343672; +uint32_t version = 0; u_long options = BE_GFX | BE_SFX2D; u_long mode = OVERLAY; char dname[] = "Rotors freq"; @@ -54,6 +56,63 @@ static Rotor tab[MAX_ROTORS]; static float time_step; +static int nb_min_rotors = 0; +static float length_min = 0; +static float length_max = 0; +static float spectrum_id_factor = 0; +static float speed = 0; +static float scale = 0; + +static void post_init(); + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_int(params, BPP_NB_MIN_ROTORS, nb_min_rotors, -1, 1); + plugin_parameters_add_double(params, BPP_PROBA_VISIBLE, proba_visible, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_LENGTH_MIN, length_min, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_LENGTH_MAX, length_max, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SPECTRUM_ID_FACTOR, spectrum_id_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SPEED, speed, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SCALE, scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_int_range(in_parameters, BPP_NB_MIN_ROTORS, &nb_min_rotors, 0, 1) & PLUGIN_PARAMETER_CHANGED; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_PROBA_VISIBLE, &proba_visible, 0, 1) & PLUGIN_PARAMETER_CHANGED; + + float __length_min = length_min, __length_max = length_max; + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MIN, &__length_min, 0.01, 0.2); + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MAX, &__length_max, 0.02, 10); + if (__length_min <= __length_max) { + length_min = __length_min; + length_max = __length_max; + } + + plugin_parameter_parse_float_range(in_parameters, BPP_SPECTRUM_ID_FACTOR, &spectrum_id_factor, 0, 20); + plugin_parameter_parse_float_range(in_parameters, BPP_SPEED, &speed, -10, 10); + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_SCALE, &scale, 0, 2) & PLUGIN_PARAMETER_CHANGED; + + if (reload) { + post_init(); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} /* note: this is _NOT_ a perfect binary-tree, * ie a node might have 1 or 2 sons @@ -131,7 +190,7 @@ build() { build_rotor_tree(); - init_rotor_tree(tab, MINSCREEN); + init_rotor_tree(tab, scale * MINSCREEN); } @@ -160,7 +219,7 @@ static inline Pixel_t -couleur() +color() { float d = drand48() * (max_color - min_color) + min_color; return (Pixel_t)d; @@ -183,16 +242,19 @@ } VERBOSE(printf(" done\n")); - /* Setting at least 1 rotor */ - uint8_t n_visible = 0; - for (i = 7; i < MAX_ROTORS; i++) - if (tab[i].visible) - n_visible++; - - if (n_visible == 0) { - uint8_t v = b_rand_int_range(7, MAX_ROTORS-1); - VERBOSE(printf("set %d visible\n", v)); - tab[v].visible = 1; + /* Setting at least 1 rotor, if asked */ + if (nb_min_rotors == 1) { + uint8_t n_visible = 0; + for (i = 7; i < MAX_ROTORS; i++) + if (tab[i].visible) { + n_visible++; + } + + if (n_visible == 0) { + uint8_t v = b_rand_int_range(7, MAX_ROTORS-1); + VERBOSE(printf("set %d visible\n", v)); + tab[v].visible = 1; + } } } @@ -203,7 +265,7 @@ int i; for (i = 0; i < nb_rotors; i++) { - tab[i].coul = couleur(); + tab[i].coul = color(); tab[i].freq = norm_freq_base(); tab[i].freq_var = norm_freq(); tab[i].ampl_var = norm_ampl(); @@ -248,8 +310,7 @@ float f, arg, alpha; _Complex float pos_rel; - f = rotor->freq - * exp(rotor->ampl_var * cos(2 * M_PI * rotor->freq_var * rotor_time)); + f = rotor->freq * exp(rotor->ampl_var * cos(2 * M_PI * rotor->freq_var * rotor_time)); arg = f * rotor_time; arg -= (long)(arg); alpha = 2 * M_PI * arg; @@ -280,7 +341,6 @@ short x, y; x = (short)(creal(tab[i].centre) + CENTERX); y = (short)(cimag(tab[i].centre) + CENTERY); - /* printf ("x= %d\ty= %d\n", x, y);*/ #if 1 set_pixel(dst, x, y, tab[i].coul); @@ -294,9 +354,8 @@ run(Context_t *ctx) { uint16_t original_fft_size = 513; /* FFT size used when below parameters were set */ - uint16_t length_min = 8 * WIDTH/960; /* minimum length, in pixels, scales with WIDTH */ - uint16_t length_max = 200 * WIDTH/960; /* maximum length, in pixels, scales with WIDTH */ - double spectrum_id_factor = 8; /* length will be length_max - average_frequency * spectrum_id_factor */ + u_short length_min_px = round(length_min * WIDTH); + u_short length_max_px = round(length_max * WIDTH); double spectrum_low_treshold_factor = 0.1; /* spectrum value higher than this treshold will be used, between 0 and 1 */ pthread_mutex_lock(&ctx->input->mutex); @@ -307,15 +366,15 @@ average_freq_id = round((double)average_freq_id * (double)original_fft_size / (double)ctx->input->spectrum_size); /* compute length based on average frequency */ - uint16_t length = length_max - MIN(average_freq_id * spectrum_id_factor, length_max); - length = MAX(MIN(length, length_max), length_min); + uint16_t length = length_max_px - MIN(average_freq_id * spectrum_id_factor, length_max_px); + length = MAX(MIN(length, length_max_px), length_min_px); pthread_mutex_unlock(&ctx->input->mutex); Buffer8_clear(passive_buffer(ctx)); for (uint16_t i = 0; i < length; i++) { - rotor_time += time_step; + rotor_time += time_step * speed; refresh(tab); display(ctx); } @@ -325,5 +384,12 @@ void on_switch_on(Context_t *ctx) { + nb_min_rotors = 1; + proba_visible = 0.33; + length_min = 0.01; + length_max = 0.2; + spectrum_id_factor = 8; + speed = 1; + scale = 1; post_init(); } diff -Nru lebiniou-3.32/plugins/stable/main/rp/Makefile.am lebiniou-3.40/plugins/stable/main/rp/Makefile.am --- lebiniou-3.32/plugins/stable/main/rp/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rp/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ rp_so_SOURCES = rp.c rp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rp_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/rp/Makefile.in lebiniou-3.40/plugins/stable/main/rp/Makefile.in --- lebiniou-3.32/plugins/stable/main/rp/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rp/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/rp rp_so_SOURCES = rp.c rp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -rp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +rp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include rp_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/rp/rp.c lebiniou-3.40/plugins/stable/main/rp/rp.c --- lebiniou-3.32/plugins/stable/main/rp/rp.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/rp/rp.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 1088107667; +uint32_t version = 0; u_long options = BEQ_LAST; char dname[] = "Recurrence"; u_long mode = OVERLAY; @@ -80,16 +81,16 @@ for (jj = 0; jj < MINSCREEN; jj++) { int j = (int)((float)jj - / (float)MINSCREEN - * (float)(ctx->input->size-3.0)); + / (float)MINSCREEN + * (float)(ctx->input->size-3.0)); int last_i = -1; Pixel_t last_c = 0; for (ii = jj; ii < MINSCREEN; ii++) { Pixel_t c = last_c; int i = (int)((float)ii - / (float)MINSCREEN - * (float)(ctx->input->size-3.0)); + / (float)MINSCREEN + * (float)(ctx->input->size-3.0)); if (i != last_i) { c = get_color(ctx->input, i, j); diff -Nru lebiniou-3.32/plugins/stable/main/scroll_bt/Makefile.am lebiniou-3.40/plugins/stable/main/scroll_bt/Makefile.am --- lebiniou-3.32/plugins/stable/main/scroll_bt/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_bt/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ scroll_bt_so_SOURCES = scroll_bt.c scroll_bt_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_bt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_bt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_bt_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/scroll_bt/Makefile.in lebiniou-3.40/plugins/stable/main/scroll_bt/Makefile.in --- lebiniou-3.32/plugins/stable/main/scroll_bt/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_bt/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/scroll_bt scroll_bt_so_SOURCES = scroll_bt.c scroll_bt_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_bt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_bt_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_bt_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/scroll_bt/scroll_bt.c lebiniou-3.40/plugins/stable/main/scroll_bt/scroll_bt.c --- lebiniou-3.32/plugins/stable/main/scroll_bt/scroll_bt.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_bt/scroll_bt.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944684128; +uint32_t version = 0; u_long options = BE_SCROLL|BEQ_VER; char dname[] = "Scroll up"; char desc[] = "Scroll the screen upwards"; diff -Nru lebiniou-3.32/plugins/stable/main/scroll_lr/Makefile.am lebiniou-3.40/plugins/stable/main/scroll_lr/Makefile.am --- lebiniou-3.32/plugins/stable/main/scroll_lr/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_lr/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ scroll_lr_so_SOURCES = scroll_lr.c scroll_lr_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_lr_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_lr_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_lr_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/scroll_lr/Makefile.in lebiniou-3.40/plugins/stable/main/scroll_lr/Makefile.in --- lebiniou-3.32/plugins/stable/main/scroll_lr/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_lr/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/scroll_lr scroll_lr_so_SOURCES = scroll_lr.c scroll_lr_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_lr_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_lr_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_lr_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/scroll_lr/scroll_lr.c lebiniou-3.40/plugins/stable/main/scroll_lr/scroll_lr.c --- lebiniou-3.32/plugins/stable/main/scroll_lr/scroll_lr.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_lr/scroll_lr.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944684127; +uint32_t version = 0; u_long options = BE_SCROLL|BEQ_HOR; char dname[] = "Scroll right"; char desc[] = "Scroll the screen rightwards"; diff -Nru lebiniou-3.32/plugins/stable/main/scroll_rl/Makefile.am lebiniou-3.40/plugins/stable/main/scroll_rl/Makefile.am --- lebiniou-3.32/plugins/stable/main/scroll_rl/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_rl/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ scroll_rl_so_SOURCES = scroll_rl.c scroll_rl_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_rl_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_rl_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_rl_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/scroll_rl/Makefile.in lebiniou-3.40/plugins/stable/main/scroll_rl/Makefile.in --- lebiniou-3.32/plugins/stable/main/scroll_rl/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_rl/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/scroll_rl scroll_rl_so_SOURCES = scroll_rl.c scroll_rl_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_rl_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_rl_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_rl_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/scroll_rl/scroll_rl.c lebiniou-3.40/plugins/stable/main/scroll_rl/scroll_rl.c --- lebiniou-3.32/plugins/stable/main/scroll_rl/scroll_rl.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_rl/scroll_rl.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944684126; +uint32_t version = 0; u_long options = BE_SCROLL|BEQ_HOR; char dname[] = "Scroll left"; char desc[] = "Scroll the screen leftwards"; diff -Nru lebiniou-3.32/plugins/stable/main/scroll_tb/Makefile.am lebiniou-3.40/plugins/stable/main/scroll_tb/Makefile.am --- lebiniou-3.32/plugins/stable/main/scroll_tb/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_tb/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ scroll_tb_so_SOURCES = scroll_tb.c scroll_tb_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_tb_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_tb_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_tb_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/scroll_tb/Makefile.in lebiniou-3.40/plugins/stable/main/scroll_tb/Makefile.in --- lebiniou-3.32/plugins/stable/main/scroll_tb/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_tb/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/scroll_tb scroll_tb_so_SOURCES = scroll_tb.c scroll_tb_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -scroll_tb_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +scroll_tb_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include scroll_tb_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/scroll_tb/scroll_tb.c lebiniou-3.40/plugins/stable/main/scroll_tb/scroll_tb.c --- lebiniou-3.32/plugins/stable/main/scroll_tb/scroll_tb.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/scroll_tb/scroll_tb.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944684129; +uint32_t version = 0; u_long options = BE_SCROLL|BEQ_VER; char dname[] = "Scroll down"; char desc[] = "Scroll the screen downwards"; diff -Nru lebiniou-3.32/plugins/stable/main/sin1oscillo/Makefile.am lebiniou-3.40/plugins/stable/main/sin1oscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/sin1oscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin1oscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ sin1oscillo_so_SOURCES = sin1oscillo.c sin1oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -sin1oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +sin1oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include sin1oscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/sin1oscillo/Makefile.in lebiniou-3.40/plugins/stable/main/sin1oscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/sin1oscillo/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin1oscillo/Makefile.in 2020-01-23 13:57:17.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/sin1oscillo sin1oscillo_so_SOURCES = sin1oscillo.c sin1oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -sin1oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +sin1oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include sin1oscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/sin1oscillo/sin1oscillo.c lebiniou-3.40/plugins/stable/main/sin1oscillo/sin1oscillo.c --- lebiniou-3.32/plugins/stable/main/sin1oscillo/sin1oscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin1oscillo/sin1oscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482112; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Oscilloscope based on a sine-wave"; @@ -35,7 +37,34 @@ static float sin1_freq; /* initialized on create */ static float sin1_target_freq; /* initialized on create */ static float sin1_freq_inc; /* initialized on create */ -static int connect = 1; +static int sin1oscillo_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} static inline float @@ -86,7 +115,7 @@ P->origin.x = 1; P->origin.y = HMAXY; - t.v_j_factor = HMAXY / 2 * .85; + t.v_j_factor = HMAXY / 2 * volume_scale; for (i = 0; i < P->size-1; i++) { float ya = HMAXY + t.v_j_factor * sin(sin1_freq * (float)(i) / (float)(ctx->input->size - 1) + sin1_phi); @@ -128,6 +157,8 @@ void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + volume_scale = 0.85; /* connect = b_rand_boolean(); */ } @@ -136,7 +167,7 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, sin1oscillo_connect); change_params(); init(ctx); } diff -Nru lebiniou-3.32/plugins/stable/main/sin2oscillo/Makefile.am lebiniou-3.40/plugins/stable/main/sin2oscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/sin2oscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin2oscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ sin2oscillo_so_SOURCES = sin2oscillo.c sin2oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -sin2oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +sin2oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include sin2oscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/sin2oscillo/Makefile.in lebiniou-3.40/plugins/stable/main/sin2oscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/sin2oscillo/Makefile.in 2019-12-04 14:09:24.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin2oscillo/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/sin2oscillo sin2oscillo_so_SOURCES = sin2oscillo.c sin2oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -sin2oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +sin2oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include sin2oscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/sin2oscillo/sin2oscillo.c lebiniou-3.40/plugins/stable/main/sin2oscillo/sin2oscillo.c --- lebiniou-3.32/plugins/stable/main/sin2oscillo/sin2oscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/sin2oscillo/sin2oscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482113; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Oscilloscope based on a sine-wave"; @@ -35,7 +37,35 @@ static float sin2_freq; /* initialized on create */ static float sin2_target_freq; /* initialized on create */ static float sin2_freq_inc; /* initialized on create */ -static int connect = 1; +static int sin2oscillo_connect = 1; + + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} static inline float @@ -85,7 +115,7 @@ P->origin.x = 1; P->origin.y = HMAXY; - t.v_j_factor = HMAXY / 2 * .85; + t.v_j_factor = HMAXY / 2 * volume_scale; for (i = 0; i < P->size; i++) { float y = (t.v_j_factor @@ -128,10 +158,18 @@ void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 0.85; +} + + +void run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, sin2oscillo_connect); change_params(); init(ctx); } diff -Nru lebiniou-3.32/plugins/stable/main/snake/Makefile.am lebiniou-3.40/plugins/stable/main/snake/Makefile.am --- lebiniou-3.32/plugins/stable/main/snake/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ snake_so_SOURCES = snake.c snake_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -snake_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +snake_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include snake_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/snake/Makefile.in lebiniou-3.40/plugins/stable/main/snake/Makefile.in --- lebiniou-3.32/plugins/stable/main/snake/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/snake snake_so_SOURCES = snake.c snake_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -snake_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +snake_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include snake_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/snake/snake.c lebiniou-3.40/plugins/stable/main/snake/snake.c --- lebiniou-3.32/plugins/stable/main/snake/snake.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake/snake.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -29,9 +29,11 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1555581982; +uint32_t version = 0; u_long options = BE_GFX|BEQ_UNIQUE|BE_SFX2D; u_long mode = OVERLAY; @@ -39,9 +41,66 @@ char dname[] = "snake"; char desc[] = "Snake"; - static u_short x = 0, y = 0; +static int snake_mode = 0; +static float length_min = 0; /* minimum length of the snake, in pixels, scales with WIDTH */ +static float length_max = 0; /* maximum length of the snake, in pixels, scales with WIDTH */ +static float spectrum_id_factor = 0; +static float color_factor = 0; /* scaling of the computed color */ + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_int(params, BPP_MODE, snake_mode, -1, 1); + plugin_parameters_add_double(params, BPP_LENGTH_MIN, length_min, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_LENGTH_MAX, length_max, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SPECTRUM_ID_FACTOR, spectrum_id_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_COLOR_FACTOR, color_factor, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_int_range(in_parameters, BPP_MODE, &snake_mode, 0, 2); + + float __length_min = length_min, __length_max = length_max; + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MIN, &__length_min, 0.01, 0.2); + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MAX, &__length_max, 0.02, 0.5); + if (__length_min <= __length_max) { + length_min = __length_min; + length_max = __length_max; + } + + plugin_parameter_parse_float_range(in_parameters, BPP_SPECTRUM_ID_FACTOR, &spectrum_id_factor, 0, 4); + plugin_parameter_parse_float_range(in_parameters, BPP_COLOR_FACTOR, &color_factor, 0, 5); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + snake_mode = 1; /* 0: direction changes at each run, 1: direction randomy changes, 2: also randomly changes orientation */ + length_min = 0.01; /* minimum length of the snake, between 0 and 1, 1 meaning WIDTH */ + length_max = 0.08; /* maximum length of the snake, between 0 and 1, 1 meaning WIDTH */ + spectrum_id_factor = 2; /* snake length will be length_max_px - average_frequency * spectrum_id_factor */ + color_factor = 3.0; /* scaling of the computed color */ +} + void run(Context_t *ctx) @@ -50,18 +109,15 @@ Buffer8_clear(dst); u_short original_fft_size = 513; /* FFT size used when below parameters were set */ - u_short length_min = 8 * WIDTH/960; /* minimum length of the snake, in pixels, scales with WIDTH */ - u_short length_max = 80 * WIDTH/960; /* maximum length of the snake, in pixels, scales with WIDTH */ - double spectrum_id_factor = 2; /* snake length will be length_max - average_frequency * spectrum_id_factor */ + u_short length_min_px = round(length_min * WIDTH); /* minimum length of the snake, in pixels, scales with WIDTH */ + u_short length_max_px = round(length_max * WIDTH); /* maximum length of the snake, in pixels, scales with WIDTH */ double spectrum_low_treshold_factor = 0.1; /* spectrum value higher than this treshold will be used, between 0 and 1 */ u_short spectrum_id_orientation_factor = 40; /* smaller means changing orientation more often */ /* choose direction and increment mode */ - static u_short mode = 1; /* 0: direction changes at each run, 1: direction randomy changes, 2: also randomly changes orientation */ + u_short mode = snake_mode; /* 0: direction changes at each run, 1: direction randomy changes, 2: also randomly changes orientation */ u_short change_inc_on_hf = 1; /* 0: no change, 1: change orientation more often on high frequency */ - double color_factor = 3.0; /* scaling of the computed color */ - pthread_mutex_lock(&ctx->input->mutex); u_short average_freq_id = compute_avg_freq_id(ctx->input, spectrum_low_treshold_factor); @@ -70,32 +126,32 @@ average_freq_id = round((double)average_freq_id * (double)original_fft_size / (double)ctx->input->spectrum_size); /* compute snake length based on average frequency */ - u_short length = length_max - average_freq_id * spectrum_id_factor; - if (length < length_min) { - length = length_min; + u_short length = length_max_px - average_freq_id * spectrum_id_factor; + if (length < length_min_px) { + length = length_min_px; } - if (length > length_max) { - length = length_max; + if (length > length_max_px) { + length = length_max_px; } static u_short dir = 0; /* direction: 0 is Y and 1 is X */ short inc = 1; /* increment: 1 or -1 */ switch (mode) { - default: - case 0: - dir = !dir; - break; - - case 1: - dir = drand48() < .5; - break; - - /* random dir and inc */ - case 2: - dir = drand48() < .5; - inc = drand48() < .5 ? -1 : 1; - break; + default: + case 0: + dir = !dir; + break; + + case 1: + dir = drand48() < .5; + break; + + /* random dir and inc */ + case 2: + dir = drand48() < .5; + inc = drand48() < .5 ? -1 : 1; + break; } /* if set, change orientation on high frequency */ diff -Nru lebiniou-3.32/plugins/stable/main/snake_oscillo/Makefile.am lebiniou-3.40/plugins/stable/main/snake_oscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/snake_oscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake_oscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ snake_oscillo_so_SOURCES = snake_oscillo.c snake_oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -snake_oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +snake_oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include snake_oscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/snake_oscillo/Makefile.in lebiniou-3.40/plugins/stable/main/snake_oscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/snake_oscillo/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake_oscillo/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/snake_oscillo snake_oscillo_so_SOURCES = snake_oscillo.c snake_oscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -snake_oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +snake_oscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include snake_oscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/snake_oscillo/snake_oscillo.c lebiniou-3.40/plugins/stable/main/snake_oscillo/snake_oscillo.c --- lebiniou-3.32/plugins/stable/main/snake_oscillo/snake_oscillo.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/snake_oscillo/snake_oscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -27,13 +27,15 @@ #include "context.h" #include "oscillo.h" +#include "parameters.h" static Porteuse_t *P = NULL; -static int connect = 1; +static int snake_connect = 1; u_short sgn_size = 0 ; u_long id = 1556272346; +uint32_t version = 0; u_long options = BE_GFX|BEQ_UNIQUE|BE_SFX2D; u_long mode = OVERLAY; @@ -44,11 +46,61 @@ static u_short x = 0, y = 0; +static float volume_scale = 0; +static int snake_mode = 0; +static float length_min = 0; /* minimum length of the snake, in pixels, scales with WIDTH */ +static float length_max = 0; /* maximum length of the snake, in pixels, scales with WIDTH */ +static float spectrum_id_factor = 0; +static float color_factor = 0; /* scaling of the computed color */ -void init_oscillo(Context_t *ctx, u_short x, u_short y, u_short length, u_short dir, short inc) +json_t * +get_parameters() { - double y_factor = 0.1; - double x_factor = 0.04; + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + plugin_parameters_add_int(params, BPP_MODE, snake_mode, -1, 1); + plugin_parameters_add_double(params, BPP_LENGTH_MIN, length_min, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_LENGTH_MAX, length_max, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SPECTRUM_ID_FACTOR, spectrum_id_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_COLOR_FACTOR, color_factor, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); + plugin_parameter_parse_int_range(in_parameters, BPP_MODE, &snake_mode, 0, 2); + + float __length_min = length_min, __length_max = length_max; + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MIN, &__length_min, 0.01, 0.2); + plugin_parameter_parse_float_range(in_parameters, BPP_LENGTH_MAX, &__length_max, 0.02, 0.5); + if (__length_min <= __length_max) { + length_min = __length_min; + length_max = __length_max; + } + + plugin_parameter_parse_float_range(in_parameters, BPP_SPECTRUM_ID_FACTOR, &spectrum_id_factor, 0, 4); + plugin_parameter_parse_float_range(in_parameters, BPP_COLOR_FACTOR, &color_factor, 0, 5); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +init_oscillo(Context_t *ctx, u_short x, u_short y, u_short length, u_short dir, short inc) +{ + double y_factor = 1.0; + double x_factor = 0.4; Porteuse_delete(P); @@ -66,14 +118,14 @@ memset(&t, 0, sizeof(t)); if (dir) { - t.v_j_factor = HMAXY * y_factor; + t.v_j_factor = HMAXY * y_factor * volume_scale; t.v_i.x = 1.0 / (float)(P->size - 1) * (float)length; if (inc < 0) { x = x - length; } } else { - t.v_j_factor = HMAXX * x_factor; + t.v_j_factor = HMAXX * x_factor * volume_scale; t.v_i.y = 1.0 / (float)(P->size - 1) * (float)length; if (inc < 0) { @@ -142,20 +194,31 @@ void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 0.1; + snake_mode = 1; /* 0: direction changes at each run, 1: direction randomy changes, 2: also randomly changes orientation */ + length_min = 0.01; /* minimum length of the snake, between 0 and 1, 1 meaning WIDTH */ + length_max = 0.08; /* maximum length of the snake, between 0 and 1, 1 meaning WIDTH */ + spectrum_id_factor = 2; /* snake length will be length_max_px - average_frequency * spectrum_id_factor */ + color_factor = 3.0; /* scaling of the computed color */ +} + + +void run(Context_t *ctx) { Buffer8_t *dst = passive_buffer(ctx); Buffer8_clear(dst); u_short original_fft_size = 513; /* FFT size used when below parameters were set */ - u_short length_min = 8 * WIDTH/960; /* minimum length of the snake, in pixels, scales with WIDTH */ - u_short length_max = 80 * WIDTH/960; /* maximum length of the snake, in pixels, scales with WIDTH */ - double spectrum_id_factor = 2; /* snake length will be length_max - average_frequency * spectrum_id_factor */ + u_short length_min_px = round(length_min * WIDTH); /* minimum length of the snake, in pixels, scales with WIDTH */ + u_short length_max_px = round(length_max * WIDTH); /* maximum length of the snake, in pixels, scales with WIDTH */ double spectrum_low_treshold_factor = 0.1; /* spectrum value higher than this treshold will be used, between 0 and 1 */ u_short spectrum_id_orientation_factor = 40; /* smaller means changing orientation more often */ /* choose direction and increment mode */ - static u_short mode = 1; /* 0: direction changes at each run, 1: direction randomy changes, 2: also randomly changes orientation */ u_short change_inc_on_hf = 1; /* 0: no change, 1: change orientation more often on high frequency */ u_short average_freq_id = compute_avg_freq_id(ctx->input, spectrum_low_treshold_factor); @@ -165,31 +228,31 @@ /* compute snake length based on average frequency */ u_short length = length_max - average_freq_id * spectrum_id_factor; - if (length < length_min) { - length = length_min; + if (length < length_min_px) { + length = length_min_px; } - if (length > length_max) { - length = length_max; + if (length > length_max_px) { + length = length_max_px; } static u_short dir = 0; /* direction: 0 is Y and 1 is X */ short inc = 1; /* increment: 1 or -1 */ - switch (mode) { - default: - case 0: - dir = !dir; - break; - - case 1: - dir = drand48() < .5; - break; - - /* random dir and inc */ - case 2: - dir = drand48() < .5; - inc = drand48() < .5 ? -1 : 1; - break; + switch (snake_mode) { + default: + case 0: + dir = !dir; + break; + + case 1: + dir = drand48() < .5; + break; + + /* random dir and inc */ + case 2: + dir = drand48() < .5; + inc = drand48() < .5 ? -1 : 1; + break; } /* if set, change orientation on high frequency */ @@ -213,15 +276,15 @@ length = (u_short)ceil((double)length * (double)HEIGHT / (double)WIDTH); } - connect = 1; + snake_connect = 1; init_oscillo(ctx, x, y, length, dir, inc); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, snake_connect); /* X direction */ if (dir) { x = (x + inc * length) % WIDTH; } else { - /* Y direction */ + /* Y direction */ y = (y + inc * length) % HEIGHT; } } diff -Nru lebiniou-3.32/plugins/stable/main/speaker/Makefile.am lebiniou-3.40/plugins/stable/main/speaker/Makefile.am --- lebiniou-3.32/plugins/stable/main/speaker/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/speaker/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ speaker_so_SOURCES = speaker.c speaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -speaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +speaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include speaker_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/speaker/Makefile.in lebiniou-3.40/plugins/stable/main/speaker/Makefile.in --- lebiniou-3.32/plugins/stable/main/speaker/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/speaker/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/speaker speaker_so_SOURCES = speaker.c speaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -speaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +speaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include speaker_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/speaker/speaker.c lebiniou-3.40/plugins/stable/main/speaker/speaker.c --- lebiniou-3.32/plugins/stable/main/speaker/speaker.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/speaker/speaker.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "context.h" -#include "../include/infinity.h" +#include "infinity.h" +#include "parameters.h" u_long id = 1190050161; +uint32_t version = 0; u_long options = BE_DISPLACE; char dname[] = "Speaker"; char desc[] = "Infinity effect which reacts to volume"; @@ -31,6 +33,34 @@ static VectorField_t *vf = NULL; +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + static t_complex fct(t_complex a, guint32 n, gint32 p1, gint32 p2) { @@ -70,6 +100,14 @@ } +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + int8_t create(Context_t *ctx) { @@ -91,7 +129,8 @@ void run(Context_t *ctx) { - u_char volume = volume = (u_char)(Input_get_volume(ctx->input) * 10); + /* volume must be between 0 and NB_FCT-1 */ + u_char volume = volume = (u_char)(Input_get_volume(ctx->input) * volume_scale * NB_FCT); if (volume >= NB_FCT) { volume = NB_FCT-1; diff -Nru lebiniou-3.32/plugins/stable/main/spectrum/Makefile.am lebiniou-3.40/plugins/stable/main/spectrum/Makefile.am --- lebiniou-3.32/plugins/stable/main/spectrum/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrum/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ spectrum_so_SOURCES = spectrum.c spectrum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrum_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/spectrum/Makefile.in lebiniou-3.40/plugins/stable/main/spectrum/Makefile.in --- lebiniou-3.32/plugins/stable/main/spectrum/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrum/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/spectrum spectrum_so_SOURCES = spectrum.c spectrum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrum_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/spectrum/spectrum.c lebiniou-3.40/plugins/stable/main/spectrum/spectrum.c --- lebiniou-3.32/plugins/stable/main/spectrum/spectrum.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrum/spectrum.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,11 @@ */ #include "context.h" -#include "../include/spectrum.h" +#include "spectrum.h" u_long id = 1051738767; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Display the spectrum"; @@ -30,6 +31,14 @@ static u_short *v_start = NULL, *v_end = NULL; +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + int8_t create(Context_t *ctx) { @@ -70,7 +79,7 @@ for (i = 1; i < ctx->input->spectrum_size; i++) { u_short top, ye; - top = float_to_nearest_ushort(MAXY * ctx->input->spectrum_log[A_MONO][i], 0, MAXY); + top = float_to_nearest_ushort(MAXY * ctx->input->spectrum_log[A_MONO][i] * volume_scale, 0, MAXY); for (ye = 0; ye < top; ye++) { Pixel_t color = (Pixel_t)floor((float)ye / top * 255.0); h_line_nc(dst, ye, v_start[i], v_end[i], color); diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSh/Makefile.am lebiniou-3.40/plugins/stable/main/spectrumSh/Makefile.am --- lebiniou-3.32/plugins/stable/main/spectrumSh/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSh/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ spectrumSh_so_SOURCES = spectrumSh.c spectrumSh_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrumSh_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrumSh_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrumSh_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSh/Makefile.in lebiniou-3.40/plugins/stable/main/spectrumSh/Makefile.in --- lebiniou-3.32/plugins/stable/main/spectrumSh/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSh/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/spectrumSh spectrumSh_so_SOURCES = spectrumSh.c spectrumSh_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrumSh_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrumSh_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrumSh_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSh/spectrumSh.c lebiniou-3.40/plugins/stable/main/spectrumSh/spectrumSh.c --- lebiniou-3.32/plugins/stable/main/spectrumSh/spectrumSh.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSh/spectrumSh.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,11 @@ */ #include "context.h" -#include "../include/spectrum.h" +#include "spectrum.h" u_long id = 1548533802; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Horizontal stereo spectrum"; @@ -30,6 +31,14 @@ static u_short *v_start = NULL, *v_end = NULL; +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + int8_t create(Context_t *ctx) { @@ -71,14 +80,14 @@ u_short top, ye; /* top => left channel */ - top = float_to_nearest_ushort(HHEIGHT * ctx->input->spectrum_log[A_LEFT][i], 0, HHEIGHT); + top = float_to_nearest_ushort(HHEIGHT * ctx->input->spectrum_log[A_LEFT][i] * volume_scale, 0, HHEIGHT); for (ye = 0; ye < top; ye++) { Pixel_t color = (Pixel_t)floor((float)ye / top * 255.0); h_line_nc(dst, HHEIGHT + ye, v_start[i], v_end[i], color); } /* bottom => right channel */ - top = float_to_nearest_ushort(HHEIGHT * ctx->input->spectrum_log[A_RIGHT][i], 0, HHEIGHT); + top = float_to_nearest_ushort(HHEIGHT * ctx->input->spectrum_log[A_RIGHT][i]* volume_scale, 0, HHEIGHT); for (ye = 0; ye < top; ye++) { Pixel_t color = (Pixel_t)floor((float)ye / top * 255.0); h_line_nc(dst, HHEIGHT - ye, v_start[i], v_end[i], color); diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSv/Makefile.am lebiniou-3.40/plugins/stable/main/spectrumSv/Makefile.am --- lebiniou-3.32/plugins/stable/main/spectrumSv/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSv/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ spectrumSv_so_SOURCES = spectrumSv.c spectrumSv_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrumSv_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrumSv_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrumSv_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSv/Makefile.in lebiniou-3.40/plugins/stable/main/spectrumSv/Makefile.in --- lebiniou-3.32/plugins/stable/main/spectrumSv/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSv/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/spectrumSv spectrumSv_so_SOURCES = spectrumSv.c spectrumSv_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -spectrumSv_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +spectrumSv_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include spectrumSv_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/spectrumSv/spectrumSv.c lebiniou-3.40/plugins/stable/main/spectrumSv/spectrumSv.c --- lebiniou-3.32/plugins/stable/main/spectrumSv/spectrumSv.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/spectrumSv/spectrumSv.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,10 +18,11 @@ */ #include "context.h" -#include "../include/spectrum.h" +#include "spectrum.h" u_long id = 1548544772; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Vertical stereo spectrum"; @@ -30,6 +31,14 @@ static u_short *v_start = NULL, *v_end = NULL; +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + int8_t create(Context_t *ctx) { @@ -71,14 +80,14 @@ u_short top, xe; /* left => left channel */ - top = float_to_nearest_ushort(HWIDTH * ctx->input->spectrum_log[A_LEFT][i], 0, HWIDTH); + top = float_to_nearest_ushort(HWIDTH * ctx->input->spectrum_log[A_LEFT][i]* volume_scale, 0, HWIDTH); for (xe = 0; xe < top; xe++) { Pixel_t color = (Pixel_t)floor((float)xe / top * 255.0); v_line_nc(dst, HWIDTH + xe, v_start[i], v_end[i], color); } /* right => right channel */ - top = float_to_nearest_ushort(HWIDTH * ctx->input->spectrum_log[A_RIGHT][i], 0, HWIDTH); + top = float_to_nearest_ushort(HWIDTH * ctx->input->spectrum_log[A_RIGHT][i] * volume_scale, 0, HWIDTH); for (xe = 0; xe < top; xe++) { Pixel_t color = (Pixel_t)floor((float)xe / top * 255.0); v_line_nc(dst, HWIDTH - xe, v_start[i], v_end[i], color); diff -Nru lebiniou-3.32/plugins/stable/main/splash/Makefile.am lebiniou-3.40/plugins/stable/main/splash/Makefile.am --- lebiniou-3.32/plugins/stable/main/splash/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/splash/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ splash_so_SOURCES = splash.c splash_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -splash_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +splash_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include splash_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/splash/Makefile.in lebiniou-3.40/plugins/stable/main/splash/Makefile.in --- lebiniou-3.32/plugins/stable/main/splash/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/splash/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/splash splash_so_SOURCES = splash.c splash_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -splash_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +splash_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include splash_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/splash/splash.c lebiniou-3.40/plugins/stable/main/splash/splash.c --- lebiniou-3.32/plugins/stable/main/splash/splash.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/splash/splash.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 1070733064; +uint32_t version = 0; u_long options = BEQ_SPLASH|BEQ_FIRST|BEQ_IMAGE; char desc[] = "Splash screen effect"; diff -Nru lebiniou-3.32/plugins/stable/main/swarm/Makefile.am lebiniou-3.40/plugins/stable/main/swarm/Makefile.am --- lebiniou-3.32/plugins/stable/main/swarm/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/swarm/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ swarm_so_SOURCES = swarm.c swarm_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -swarm_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +swarm_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include swarm_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/swarm/Makefile.in lebiniou-3.40/plugins/stable/main/swarm/Makefile.in --- lebiniou-3.32/plugins/stable/main/swarm/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/swarm/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/swarm swarm_so_SOURCES = swarm.c swarm_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -swarm_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +swarm_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include swarm_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/swarm/swarm.c lebiniou-3.40/plugins/stable/main/swarm/swarm.c --- lebiniou-3.32/plugins/stable/main/swarm/swarm.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/swarm/swarm.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -45,6 +45,7 @@ u_long id = 1069699791; +uint32_t version = 0; u_long options = BE_GFX; u_long mode = OVERLAY; char desc[] = "Swarm effect"; diff -Nru lebiniou-3.32/plugins/stable/main/taquin/Makefile.am lebiniou-3.40/plugins/stable/main/taquin/Makefile.am --- lebiniou-3.32/plugins/stable/main/taquin/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/taquin/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ taquin_so_SOURCES = taquin.c taquin_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -taquin_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +taquin_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include taquin_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/taquin/Makefile.in lebiniou-3.40/plugins/stable/main/taquin/Makefile.in --- lebiniou-3.32/plugins/stable/main/taquin/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/taquin/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/taquin taquin_so_SOURCES = taquin.c taquin_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -taquin_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +taquin_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include taquin_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/taquin/taquin.c lebiniou-3.40/plugins/stable/main/taquin/taquin.c --- lebiniou-3.32/plugins/stable/main/taquin/taquin.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/taquin/taquin.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 970430119; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "Taquin"; char desc[] = "Taquin effect"; @@ -335,21 +336,21 @@ slide() { switch (dir) { - case SLIDE_RL: - slide_rl(); - break; - case SLIDE_DT: - slide_dt(); - break; - case SLIDE_LR: - slide_lr(); - break; - case SLIDE_TD: - slide_td(); - break; - default: - xerror("T'as qu'un taquin"); - break; + case SLIDE_RL: + slide_rl(); + break; + case SLIDE_DT: + slide_dt(); + break; + case SLIDE_LR: + slide_lr(); + break; + case SLIDE_TD: + slide_td(); + break; + default: + xerror("T'as qu'un taquin"); + break; } } diff -Nru lebiniou-3.32/plugins/stable/main/test_beat_detection/Makefile.am lebiniou-3.40/plugins/stable/main/test_beat_detection/Makefile.am --- lebiniou-3.32/plugins/stable/main/test_beat_detection/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/test_beat_detection/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ test_beat_detection_so_SOURCES = test_beat_detection.c test_beat_detection_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -test_beat_detection_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +test_beat_detection_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include test_beat_detection_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/test_beat_detection/Makefile.in lebiniou-3.40/plugins/stable/main/test_beat_detection/Makefile.in --- lebiniou-3.32/plugins/stable/main/test_beat_detection/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/test_beat_detection/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -218,6 +218,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -262,6 +264,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -324,7 +328,7 @@ plugindir = @libdir@/lebiniou/plugins/main/test_beat_detection test_beat_detection_so_SOURCES = test_beat_detection.c test_beat_detection_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -test_beat_detection_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +test_beat_detection_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include test_beat_detection_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/test_beat_detection/test_beat_detection.c lebiniou-3.40/plugins/stable/main/test_beat_detection/test_beat_detection.c --- lebiniou-3.32/plugins/stable/main/test_beat_detection/test_beat_detection.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/test_beat_detection/test_beat_detection.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1550935904; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_NORANDOM; u_long mode = OVERLAY; char desc[] = "Test beat detection"; diff -Nru lebiniou-3.32/plugins/stable/main/touw_eiffel/Makefile.am lebiniou-3.40/plugins/stable/main/touw_eiffel/Makefile.am --- lebiniou-3.32/plugins/stable/main/touw_eiffel/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/touw_eiffel/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ touw_eiffel_so_SOURCES = touw_eiffel.c touw_eiffel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -touw_eiffel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +touw_eiffel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include touw_eiffel_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/touw_eiffel/Makefile.in lebiniou-3.40/plugins/stable/main/touw_eiffel/Makefile.in --- lebiniou-3.32/plugins/stable/main/touw_eiffel/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/touw_eiffel/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/touw_eiffel touw_eiffel_so_SOURCES = touw_eiffel.c touw_eiffel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -touw_eiffel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +touw_eiffel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include touw_eiffel_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/touw_eiffel/touw_eiffel.c lebiniou-3.40/plugins/stable/main/touw_eiffel/touw_eiffel.c --- lebiniou-3.32/plugins/stable/main/touw_eiffel/touw_eiffel.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/touw_eiffel/touw_eiffel.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1165173455; +uint32_t version = 0; u_long options = BE_GFX; char dname[] = "Le Touw Eiffel"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tunnel/Makefile.am lebiniou-3.40/plugins/stable/main/tunnel/Makefile.am --- lebiniou-3.32/plugins/stable/main/tunnel/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tunnel/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tunnel_so_SOURCES = tunnel.c tunnel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tunnel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tunnel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tunnel_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tunnel/Makefile.in lebiniou-3.40/plugins/stable/main/tunnel/Makefile.in --- lebiniou-3.32/plugins/stable/main/tunnel/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tunnel/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tunnel tunnel_so_SOURCES = tunnel.c tunnel_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tunnel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tunnel_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tunnel_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tunnel/tunnel.c lebiniou-3.40/plugins/stable/main/tunnel/tunnel.c --- lebiniou-3.32/plugins/stable/main/tunnel/tunnel.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tunnel/tunnel.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 944746507; +uint32_t version = 0; u_long options = BE_WARP|BE_LENS; char desc[] = "Tunnel effect"; diff -Nru lebiniou-3.32/plugins/stable/main/tv_1d/Makefile.am lebiniou-3.40/plugins/stable/main/tv_1d/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_1d/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_1d/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_1d_so_SOURCES = tv_1d.c tv_1d_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_1d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_1d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_1d_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_1d/Makefile.in lebiniou-3.40/plugins/stable/main/tv_1d/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_1d/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_1d/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_1d tv_1d_so_SOURCES = tv_1d.c tv_1d_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_1d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_1d_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_1d_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_1d/tv_1d.c lebiniou-3.40/plugins/stable/main/tv_1d/tv_1d.c --- lebiniou-3.32/plugins/stable/main/tv_1d/tv_1d.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_1d/tv_1d.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1325105220; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "1dTV plugin from the EffecTV project"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrot/Makefile.am lebiniou-3.40/plugins/stable/main/tv_colrot/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_colrot/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrot/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_colrot_so_SOURCES = tv_colrot.c tv_colrot_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrot_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrot/Makefile.in lebiniou-3.40/plugins/stable/main/tv_colrot/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_colrot/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrot/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_colrot tv_colrot_so_SOURCES = tv_colrot.c tv_colrot_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrot_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrot_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrot/tv_colrot.c lebiniou-3.40/plugins/stable/main/tv_colrot/tv_colrot.c --- lebiniou-3.32/plugins/stable/main/tv_colrot/tv_colrot.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrot/tv_colrot.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti + * * This file is part of lebiniou. * * lebiniou is free software: you can redistribute it and/or modify @@ -33,6 +34,7 @@ #define COLORCOUNT 5 /* how many colors are visible in each chunk */ u_long id = 1552405159; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_MUTE_CAM; char desc[] = "Show webcam scrolling colors"; u_long mode = OVERLAY; @@ -51,11 +53,11 @@ src1 = ctx->cam_save[ctx->cam][0]->buffer; for (; dst < start + BUFFSIZE * sizeof(Pixel_t); src1++, dst++) { if ( /* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { *dst = *src1; } else { *dst = 0; diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotbeat/Makefile.am lebiniou-3.40/plugins/stable/main/tv_colrotbeat/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_colrotbeat/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotbeat/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_colrotbeat_so_SOURCES = tv_colrotbeat.c tv_colrotbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrotbeat_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotbeat/Makefile.in lebiniou-3.40/plugins/stable/main/tv_colrotbeat/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_colrotbeat/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotbeat/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_colrotbeat tv_colrotbeat_so_SOURCES = tv_colrotbeat.c tv_colrotbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrotbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrotbeat_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotbeat/tv_colrotbeat.c lebiniou-3.40/plugins/stable/main/tv_colrotbeat/tv_colrotbeat.c --- lebiniou-3.32/plugins/stable/main/tv_colrotbeat/tv_colrotbeat.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotbeat/tv_colrotbeat.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti + * * This file is part of lebiniou. * * lebiniou is free software: you can redistribute it and/or modify @@ -44,6 +45,7 @@ #define INIT_INCREMENT 2 /* initial increment on beat. Algorithm works if floor(INIT_INC * CURVE_VOL_STEP) > INIT_INC */ u_long id = 1552774707; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BE_SFX2D|BEQ_MUTE_CAM; char desc[] = "Show overlay of cam, scrolling thru colors on beat"; u_long mode = OVERLAY; @@ -84,11 +86,11 @@ src1 = ctx->cam_save[ctx->cam][0]->buffer; for (; dst < start + BUFFSIZE * sizeof(Pixel_t); src1++, dst++) { if (/* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { *dst = *src1; } else { *dst = 0; diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotslow/Makefile.am lebiniou-3.40/plugins/stable/main/tv_colrotslow/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_colrotslow/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotslow/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_colrotslow_so_SOURCES = tv_colrotslow.c tv_colrotslow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrotslow_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotslow/Makefile.in lebiniou-3.40/plugins/stable/main/tv_colrotslow/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_colrotslow/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotslow/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_colrotslow tv_colrotslow_so_SOURCES = tv_colrotslow.c tv_colrotslow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_colrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_colrotslow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_colrotslow_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_colrotslow/tv_colrotslow.c lebiniou-3.40/plugins/stable/main/tv_colrotslow/tv_colrotslow.c --- lebiniou-3.32/plugins/stable/main/tv_colrotslow/tv_colrotslow.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_colrotslow/tv_colrotslow.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti + * * This file is part of lebiniou. * * lebiniou is free software: you can redistribute it and/or modify @@ -34,6 +35,7 @@ #define INTERVAL 2 /* how often to scroll colors, 1 means every round */ u_long id = 1552773786; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_MUTE_CAM; char desc[] = "Show overlay of cam, scrolling thru colors"; u_long mode = OVERLAY; @@ -54,11 +56,11 @@ src2 = ctx->cam_ref[ctx->cam]->buffer; for (; dst < start + BUFFSIZE * sizeof(Pixel_t); src1++, src2++, dst++) { if ( /* max1 is bigger than min, show values between them */ - ((max1 > min1) && - ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || - /* max is rotated over, show values below max or above min */ - ((max1 < min1) && - (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { + ((max1 > min1) && + ((*src1 & MASK_SIZE) > min1) && ((*src1 & MASK_SIZE) < max1)) || + /* max is rotated over, show values below max or above min */ + ((max1 < min1) && + (((*src1 & MASK_SIZE)> min1) || ((*src1 & MASK_SIZE) < max1)))) { *dst = *src1; } else { *dst = 0; diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff/Makefile.am lebiniou-3.40/plugins/stable/main/tv_diff/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_diff/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_diff_so_SOURCES = tv_diff.c tv_diff_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff/Makefile.in lebiniou-3.40/plugins/stable/main/tv_diff/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_diff/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_diff tv_diff_so_SOURCES = tv_diff.c tv_diff_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff/tv_diff.c lebiniou-3.40/plugins/stable/main/tv_diff/tv_diff.c --- lebiniou-3.32/plugins/stable/main/tv_diff/tv_diff.c 2019-11-12 02:20:30.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff/tv_diff.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1329763807; +uint32_t version = 0; u_long options = BE_GFX|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "DiffTV"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff2/Makefile.am lebiniou-3.40/plugins/stable/main/tv_diff2/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_diff2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_diff2_so_SOURCES = tv_diff2.c tv_diff2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff2/Makefile.in lebiniou-3.40/plugins/stable/main/tv_diff2/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_diff2/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff2/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_diff2 tv_diff2_so_SOURCES = tv_diff2.c tv_diff2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff2/tv_diff2.c lebiniou-3.40/plugins/stable/main/tv_diff2/tv_diff2.c --- lebiniou-3.32/plugins/stable/main/tv_diff2/tv_diff2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff2/tv_diff2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ but also show more flickering */ u_long id = 1552077641; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "Show cam pic which differs"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff3/Makefile.am lebiniou-3.40/plugins/stable/main/tv_diff3/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_diff3/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff3/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_diff3_so_SOURCES = tv_diff3.c tv_diff3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff3_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff3/Makefile.in lebiniou-3.40/plugins/stable/main/tv_diff3/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_diff3/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff3/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_diff3 tv_diff3_so_SOURCES = tv_diff3.c tv_diff3_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff3_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff3_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff3/tv_diff3.c lebiniou-3.40/plugins/stable/main/tv_diff3/tv_diff3.c --- lebiniou-3.32/plugins/stable/main/tv_diff3/tv_diff3.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff3/tv_diff3.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -25,6 +25,7 @@ but also show more flickering */ u_long id = 1552077700; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "Show cam pic which differs"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff4/Makefile.am lebiniou-3.40/plugins/stable/main/tv_diff4/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_diff4/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff4/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_diff4_so_SOURCES = tv_diff4.c tv_diff4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff4_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff4/Makefile.in lebiniou-3.40/plugins/stable/main/tv_diff4/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_diff4/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff4/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_diff4 tv_diff4_so_SOURCES = tv_diff4.c tv_diff4_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diff4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diff4_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diff4_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_diff4/tv_diff4.c lebiniou-3.40/plugins/stable/main/tv_diff4/tv_diff4.c --- lebiniou-3.32/plugins/stable/main/tv_diff4/tv_diff4.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diff4/tv_diff4.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ but also show more flickering */ u_long id = 1552169199; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "Show cam pic which differs"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_diffbeat/Makefile.am lebiniou-3.40/plugins/stable/main/tv_diffbeat/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_diffbeat/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diffbeat/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_diffbeat_so_SOURCES = tv_diffbeat.c tv_diffbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diffbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diffbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diffbeat_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_diffbeat/Makefile.in lebiniou-3.40/plugins/stable/main/tv_diffbeat/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_diffbeat/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diffbeat/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_diffbeat tv_diffbeat_so_SOURCES = tv_diffbeat.c tv_diffbeat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_diffbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_diffbeat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_diffbeat_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_diffbeat/tv_diffbeat.c lebiniou-3.40/plugins/stable/main/tv_diffbeat/tv_diffbeat.c --- lebiniou-3.32/plugins/stable/main/tv_diffbeat/tv_diffbeat.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_diffbeat/tv_diffbeat.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -38,6 +38,7 @@ so we need at least 2 */ u_long id = 1552382051; +uint32_t version = 0; u_long options = BE_GFX|BE_LENS|BE_SFX2D|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "Show cam pic which differs, react beat"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_fire/Makefile.am lebiniou-3.40/plugins/stable/main/tv_fire/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_fire/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_fire/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_fire_so_SOURCES = tv_fire.c tv_fire_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_fire_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_fire_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_fire_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_fire/Makefile.in lebiniou-3.40/plugins/stable/main/tv_fire/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_fire/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_fire/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_fire tv_fire_so_SOURCES = tv_fire.c tv_fire_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_fire_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_fire_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_fire_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_fire/tv_fire.c lebiniou-3.40/plugins/stable/main/tv_fire/tv_fire.c --- lebiniou-3.32/plugins/stable/main/tv_fire/tv_fire.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_fire/tv_fire.c 2020-01-23 13:56:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ u_long id = 1325531475; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE|BEQ_MUTE_CAM; char desc[] = "FireTV plugin from the EffecTV project"; u_long mode = OVERLAY; @@ -214,9 +215,9 @@ // for (x = 1; x < WIDTH - 1; x++) for (x = 0; x < WIDTH; x++) // dest[y * WIDTH + x] = palette[buffer[y*video_width+x]]; - { - dst[y * WIDTH + x] = buffer->buffer[y * WIDTH + x]; - } + { + dst[y * WIDTH + x] = buffer->buffer[y * WIDTH + x]; + } } @@ -235,29 +236,29 @@ } switch(mode) { - case 0: - default: - diff = image_bgsubtract_y(src); - for(i=0; i>16) & 0xff; - if(v > 150) { - buffer[i] |= v; + case 0: + default: + diff = image_bgsubtract_y(src); + for(i=0; i>16) & 0xff; + if(v > 150) { + buffer[i] |= v; + } } - } - break; + break; + case 2: + for(i=0; itype == SDL_KEYDOWN) { switch(event->key.keysym.sym) { - case SDLK_SPACE: - if(mode == 0) { - bgIsSet = 0; - } - break; - case SDLK_1: - case SDLK_KP1: - mode = 0; - break; - case SDLK_2: - case SDLK_KP2: - mode = 1; - break; - case SDLK_3: - case SDLK_KP3: - mode = 2; - break; - default: - break; + case SDLK_SPACE: + if(mode == 0) { + bgIsSet = 0; + } + break; + case SDLK_1: + case SDLK_KP1: + mode = 0; + break; + case SDLK_2: + case SDLK_KP2: + mode = 1; + break; + case SDLK_3: + case SDLK_KP3: + mode = 2; + break; + default: + break; } } return 0; diff -Nru lebiniou-3.32/plugins/stable/main/tv_nervous/Makefile.am lebiniou-3.40/plugins/stable/main/tv_nervous/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_nervous/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_nervous/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_nervous_so_SOURCES = tv_nervous.c tv_nervous_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_nervous_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_nervous_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_nervous_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_nervous/Makefile.in lebiniou-3.40/plugins/stable/main/tv_nervous/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_nervous/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_nervous/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_nervous tv_nervous_so_SOURCES = tv_nervous.c tv_nervous_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_nervous_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_nervous_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_nervous_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_nervous/tv_nervous.c lebiniou-3.40/plugins/stable/main/tv_nervous/tv_nervous.c --- lebiniou-3.32/plugins/stable/main/tv_nervous/tv_nervous.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_nervous/tv_nervous.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -33,6 +33,7 @@ u_long id = 1325194798; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE|BEQ_MUTE_CAM; char desc[] = "NervousTV plugin from the EffecTV project"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_predator/Makefile.am lebiniou-3.40/plugins/stable/main/tv_predator/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_predator/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_predator/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_predator_so_SOURCES = tv_predator.c tv_predator_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_predator_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_predator_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_predator_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_predator/Makefile.in lebiniou-3.40/plugins/stable/main/tv_predator/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_predator/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_predator/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_predator tv_predator_so_SOURCES = tv_predator.c tv_predator_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_predator_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_predator_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_predator_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_predator/tv_predator.c lebiniou-3.40/plugins/stable/main/tv_predator/tv_predator.c --- lebiniou-3.32/plugins/stable/main/tv_predator/tv_predator.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_predator/tv_predator.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ u_long id = 1325445400; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE|BEQ_MUTE_CAM|BEQ_NORANDOM; char desc[] = "PredatorTV plugin from the EffecTV project"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_quark/Makefile.am lebiniou-3.40/plugins/stable/main/tv_quark/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_quark/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_quark/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_quark_so_SOURCES = tv_quark.c tv_quark_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_quark_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_quark_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_quark_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_quark/Makefile.in lebiniou-3.40/plugins/stable/main/tv_quark/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_quark/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_quark/Makefile.in 2020-01-23 13:57:18.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_quark tv_quark_so_SOURCES = tv_quark.c tv_quark_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_quark_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_quark_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_quark_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_quark/tv_quark.c lebiniou-3.40/plugins/stable/main/tv_quark/tv_quark.c --- lebiniou-3.32/plugins/stable/main/tv_quark/tv_quark.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_quark/tv_quark.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ u_long id = 1324068377; +uint32_t version = 0; u_long options = BE_GFX|BEQ_WEBCAM|BEQ_MUTE_CAM; char desc[] = "QuarkTV plugin from the EffecTV project"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/tv_streak/Makefile.am lebiniou-3.40/plugins/stable/main/tv_streak/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_streak/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_streak/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_streak_so_SOURCES = tv_streak.c tv_streak_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_streak_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_streak_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_streak_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_streak/Makefile.in lebiniou-3.40/plugins/stable/main/tv_streak/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_streak/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_streak/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_streak tv_streak_so_SOURCES = tv_streak.c tv_streak_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_streak_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_streak_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_streak_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_streak/tv_streak.c lebiniou-3.40/plugins/stable/main/tv_streak/tv_streak.c --- lebiniou-3.32/plugins/stable/main/tv_streak/tv_streak.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_streak/tv_streak.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ u_long id = 1325100452; +uint32_t version = 0; u_long options = BE_GFX|BEQ_WEBCAM|BEQ_MUTE_CAM; char desc[] = "StreakTV plugin from the EffecTV project"; u_long mode = OVERLAY; @@ -87,13 +88,13 @@ cf = plane & (STRIDE-1); for (i = 0; i < BUFFSIZE; i++) { dst[i] = planetable[cf][i] - + planetable[cf+STRIDE][i] - + planetable[cf+STRIDE*2][i] - + planetable[cf+STRIDE*3][i] - + planetable[cf+STRIDE*4][i] - + planetable[cf+STRIDE*5][i] - + planetable[cf+STRIDE*6][i] - + planetable[cf+STRIDE*7][i]; + + planetable[cf+STRIDE][i] + + planetable[cf+STRIDE*2][i] + + planetable[cf+STRIDE*3][i] + + planetable[cf+STRIDE*4][i] + + planetable[cf+STRIDE*5][i] + + planetable[cf+STRIDE*6][i] + + planetable[cf+STRIDE*7][i]; } plane++; diff -Nru lebiniou-3.32/plugins/stable/main/tv_webcam/Makefile.am lebiniou-3.40/plugins/stable/main/tv_webcam/Makefile.am --- lebiniou-3.32/plugins/stable/main/tv_webcam/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_webcam/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ tv_webcam_so_SOURCES = tv_webcam.c tv_webcam_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_webcam_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_webcam_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_webcam_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/tv_webcam/Makefile.in lebiniou-3.40/plugins/stable/main/tv_webcam/Makefile.in --- lebiniou-3.32/plugins/stable/main/tv_webcam/Makefile.in 2019-12-04 14:09:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_webcam/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/tv_webcam tv_webcam_so_SOURCES = tv_webcam.c tv_webcam_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -tv_webcam_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +tv_webcam_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include tv_webcam_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/tv_webcam/tv_webcam.c lebiniou-3.40/plugins/stable/main/tv_webcam/tv_webcam.c --- lebiniou-3.32/plugins/stable/main/tv_webcam/tv_webcam.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/tv_webcam/tv_webcam.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 1172430309; +uint32_t version = 0; u_long options = BE_GFX|BEQ_WEBCAM|BEQ_MUTE_CAM; char desc[] = "Webcam plugin"; u_long mode = OVERLAY; diff -Nru lebiniou-3.32/plugins/stable/main/venus/Makefile.am lebiniou-3.40/plugins/stable/main/venus/Makefile.am --- lebiniou-3.32/plugins/stable/main/venus/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/venus/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ venus_so_SOURCES = venus.c venus_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -venus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +venus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include venus_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/venus/Makefile.in lebiniou-3.40/plugins/stable/main/venus/Makefile.in --- lebiniou-3.32/plugins/stable/main/venus/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/venus/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/venus venus_so_SOURCES = venus.c venus_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -venus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +venus_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include venus_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/venus/venus.c lebiniou-3.40/plugins/stable/main/venus/venus.c --- lebiniou-3.32/plugins/stable/main/venus/venus.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/venus/venus.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 1181509809; +uint32_t version = 0; u_long options = BE_GFX|BEQ_FIRST|BEQ_NORANDOM; u_long mode = XOR; char desc[] = "Cellular automaton"; @@ -92,24 +93,24 @@ #define C 1 switch (rule) { - case 0: - new = 2 * ((*nw&C) ^ (*sw&C)) + (*w&C); - break; - - case 1: - /* new = 2 * ((*nw&C) ^ (*ne&C)) + (*n&C);*/ - new = 2 * ((*nw&C) ^ (*(nw+2)&C)) + (*(nw+1)&C); - break; - - case 2: - /* new = 2 * ((*ne&C) ^ (*se&C)) + (*e&C);*/ - new = 2 * ((*(nw+2)&C) ^ (*(sw+2)&C)) + (*(w+2)&C); - break; - - case 3: - /* new = 2 * ((*se&C) ^ (*sw&C)) + (*s&C);*/ - new = 2 * ((*(sw+2)&C) ^ (*sw&C)) + (*(sw+1)&C); - break; + case 0: + new = 2 * ((*nw&C) ^ (*sw&C)) + (*w&C); + break; + + case 1: + /* new = 2 * ((*nw&C) ^ (*ne&C)) + (*n&C);*/ + new = 2 * ((*nw&C) ^ (*(nw+2)&C)) + (*(nw+1)&C); + break; + + case 2: + /* new = 2 * ((*ne&C) ^ (*se&C)) + (*e&C);*/ + new = 2 * ((*(nw+2)&C) ^ (*(sw+2)&C)) + (*(w+2)&C); + break; + + case 3: + /* new = 2 * ((*se&C) ^ (*sw&C)) + (*s&C);*/ + new = 2 * ((*(sw+2)&C) ^ (*sw&C)) + (*(sw+1)&C); + break; } *d = new; diff -Nru lebiniou-3.32/plugins/stable/main/video/Makefile.am lebiniou-3.40/plugins/stable/main/video/Makefile.am --- lebiniou-3.32/plugins/stable/main/video/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/video/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -2,6 +2,6 @@ plugin_PROGRAMS = video.so video_so_SOURCES = video.c -video_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +video_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include video_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src video_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/video/Makefile.in lebiniou-3.40/plugins/stable/main/video/Makefile.in --- lebiniou-3.32/plugins/stable/main/video/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/video/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -321,7 +325,7 @@ top_srcdir = @top_srcdir@ plugindir = @libdir@/lebiniou/plugins/main/video video_so_SOURCES = video.c -video_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +video_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include video_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src video_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/video/video.c lebiniou-3.40/plugins/stable/main/video/video.c --- lebiniou-3.32/plugins/stable/main/video/video.c 2019-11-21 14:08:34.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/video/video.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 1544575336; +uint32_t version = 0; u_long options = BE_GFX|BEQ_FIRST; char desc[] = "Video player"; diff -Nru lebiniou-3.32/plugins/stable/main/voiceprint/Makefile.am lebiniou-3.40/plugins/stable/main/voiceprint/Makefile.am --- lebiniou-3.32/plugins/stable/main/voiceprint/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/voiceprint/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ voiceprint_so_SOURCES = voiceprint.c voiceprint_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -voiceprint_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +voiceprint_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include voiceprint_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/voiceprint/Makefile.in lebiniou-3.40/plugins/stable/main/voiceprint/Makefile.in --- lebiniou-3.32/plugins/stable/main/voiceprint/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/voiceprint/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/voiceprint voiceprint_so_SOURCES = voiceprint.c voiceprint_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -voiceprint_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +voiceprint_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include voiceprint_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/voiceprint/voiceprint.c lebiniou-3.40/plugins/stable/main/voiceprint/voiceprint.c --- lebiniou-3.32/plugins/stable/main/voiceprint/voiceprint.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/voiceprint/voiceprint.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "context.h" +#include "parameters.h" u_long id = 945291309; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_NORANDOM; u_long mode = OVERLAY; char desc[] = "Voiceprint effect"; @@ -30,6 +32,42 @@ static u_short *v_start = NULL, *v_end = NULL; +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + static void init_v(Context_t *ctx) { @@ -56,7 +94,7 @@ pthread_mutex_lock(&ctx->input->mutex); for (k = 1; k < ctx->input->spectrum_size; k++) { - Pixel_t color1 = (Pixel_t)(255.0 * ctx->input->spectrum_log[A_MONO][k]); + Pixel_t color1 = (Pixel_t)(255.0 * ctx->input->spectrum_log[A_MONO][k] * volume_scale); v_line_nc(src, MAXX, v_start[k], v_end[k] - 1, color1); } pthread_mutex_unlock(&ctx->input->mutex); diff -Nru lebiniou-3.32/plugins/stable/main/warp/Makefile.am lebiniou-3.40/plugins/stable/main/warp/Makefile.am --- lebiniou-3.32/plugins/stable/main/warp/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/warp/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ warp_so_SOURCES = warp.c warp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -warp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +warp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include warp_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/warp/Makefile.in lebiniou-3.40/plugins/stable/main/warp/Makefile.in --- lebiniou-3.32/plugins/stable/main/warp/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/warp/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/warp warp_so_SOURCES = warp.c warp_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -warp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +warp_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include warp_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/warp/warp.c lebiniou-3.40/plugins/stable/main/warp/warp.c --- lebiniou-3.32/plugins/stable/main/warp/warp.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/warp/warp.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,6 +20,7 @@ #include "context.h" u_long id = 945172539; +uint32_t version = 0; u_long options = BE_WARP|BE_LENS; char desc[] = "Warp effect"; diff -Nru lebiniou-3.32/plugins/stable/main/xgum/Makefile.am lebiniou-3.40/plugins/stable/main/xgum/Makefile.am --- lebiniou-3.32/plugins/stable/main/xgum/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xgum/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xgum_so_SOURCES = xgum.c xgum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xgum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xgum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xgum_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xgum/Makefile.in lebiniou-3.40/plugins/stable/main/xgum/Makefile.in --- lebiniou-3.32/plugins/stable/main/xgum/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xgum/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xgum xgum_so_SOURCES = xgum.c xgum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xgum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xgum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xgum_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xgum/xgum.c lebiniou-3.40/plugins/stable/main/xgum/xgum.c --- lebiniou-3.32/plugins/stable/main/xgum/xgum.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xgum/xgum.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,6 +18,8 @@ */ #include "context.h" +#include "parameters.h" +#include "gum.h" /* TODO optimize * we can precompute an array for the "idx" variable @@ -26,11 +28,11 @@ */ u_long id = 1074631868; +uint32_t version = 0; u_long options = BE_LENS|BEQ_HOR; char dname[] = "X gum"; char desc[] = "Gum effect"; - static inline void gum(Context_t *ctx, u_short x, u_short max_y) { @@ -58,11 +60,19 @@ static inline void do_gum(Context_t *ctx, u_short x, float val) { - u_short max_y = HHEIGHT + val * HHEIGHT; + u_short max_y = HHEIGHT + val * volume_scale * HHEIGHT; gum(ctx, x, max_y); } +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + void run(Context_t *ctx) { diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_bottom/Makefile.am lebiniou-3.40/plugins/stable/main/xmirror_bottom/Makefile.am --- lebiniou-3.32/plugins/stable/main/xmirror_bottom/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_bottom/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xmirror_bottom_so_SOURCES = xmirror_bottom.c xmirror_bottom_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xmirror_bottom_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xmirror_bottom_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xmirror_bottom_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_bottom/Makefile.in lebiniou-3.40/plugins/stable/main/xmirror_bottom/Makefile.in --- lebiniou-3.32/plugins/stable/main/xmirror_bottom/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_bottom/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xmirror_bottom xmirror_bottom_so_SOURCES = xmirror_bottom.c xmirror_bottom_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xmirror_bottom_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xmirror_bottom_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xmirror_bottom_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_bottom/xmirror_bottom.c lebiniou-3.40/plugins/stable/main/xmirror_bottom/xmirror_bottom.c --- lebiniou-3.32/plugins/stable/main/xmirror_bottom/xmirror_bottom.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_bottom/xmirror_bottom.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 947154951; +uint32_t version = 0; u_long options = BE_MIRROR|BEQ_HOR; char dname[] = "Mirror bottom"; char desc[] = "Mirror effect"; diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_top/Makefile.am lebiniou-3.40/plugins/stable/main/xmirror_top/Makefile.am --- lebiniou-3.32/plugins/stable/main/xmirror_top/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_top/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xmirror_top_so_SOURCES = xmirror_top.c xmirror_top_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xmirror_top_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xmirror_top_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xmirror_top_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_top/Makefile.in lebiniou-3.40/plugins/stable/main/xmirror_top/Makefile.in --- lebiniou-3.32/plugins/stable/main/xmirror_top/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_top/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xmirror_top xmirror_top_so_SOURCES = xmirror_top.c xmirror_top_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xmirror_top_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xmirror_top_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xmirror_top_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xmirror_top/xmirror_top.c lebiniou-3.40/plugins/stable/main/xmirror_top/xmirror_top.c --- lebiniou-3.32/plugins/stable/main/xmirror_top/xmirror_top.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xmirror_top/xmirror_top.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 947154950; +uint32_t version = 0; u_long options = BE_MIRROR|BEQ_HOR; char dname[] = "Mirror top"; char desc[] = "Mirror effect"; diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo/Makefile.am lebiniou-3.40/plugins/stable/main/xoscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/xoscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xoscillo_so_SOURCES = xoscillo.c xoscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xoscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo/Makefile.in lebiniou-3.40/plugins/stable/main/xoscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/xoscillo/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xoscillo xoscillo_so_SOURCES = xoscillo.c xoscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xoscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo/xoscillo.c lebiniou-3.40/plugins/stable/main/xoscillo/xoscillo.c --- lebiniou-3.32/plugins/stable/main/xoscillo/xoscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo/xoscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482110; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_HOR; char dname[] = "X oscillo"; u_long mode = OVERLAY; @@ -28,7 +30,25 @@ static Porteuse_t *P = NULL; -static int connect = 1; +static int xoscillo_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} static void @@ -42,7 +62,7 @@ P->origin.x = 0; P->origin.y = CENTERY; - t.v_j_factor = HMAXY * 0.85; + t.v_j_factor = HMAXY * volume_scale; t.v_i.x = 1.0 / (float)(P->size - 1) * (float)MAXX; for (i = 0; i < P->size; i++) { @@ -53,6 +73,27 @@ } +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + if(in_parameters) { + init(); + } + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 0.85; + init(); +} + + int8_t create(Context_t *ctx) { @@ -76,5 +117,5 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, xoscillo_connect); } diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo_s/Makefile.am lebiniou-3.40/plugins/stable/main/xoscillo_s/Makefile.am --- lebiniou-3.32/plugins/stable/main/xoscillo_s/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo_s/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xoscillo_s_so_SOURCES = xoscillo_s.c xoscillo_s_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xoscillo_s_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo_s/Makefile.in lebiniou-3.40/plugins/stable/main/xoscillo_s/Makefile.in --- lebiniou-3.32/plugins/stable/main/xoscillo_s/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo_s/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xoscillo_s xoscillo_s_so_SOURCES = xoscillo_s.c xoscillo_s_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xoscillo_s_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xoscillo_s/xoscillo_s.c lebiniou-3.40/plugins/stable/main/xoscillo_s/xoscillo_s.c --- lebiniou-3.32/plugins/stable/main/xoscillo_s/xoscillo_s.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xoscillo_s/xoscillo_s.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,9 +18,11 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 1089152274; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_HOR; char dname[] = "X oscillo stereo"; u_long mode = OVERLAY; @@ -28,7 +30,25 @@ static Porteuse_t *PL = NULL, *PR = NULL; -static int connect = 1; +static int xoscillo_s_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} static void @@ -44,7 +64,7 @@ PL->origin.y = HHEIGHT/2; PR->origin.y = MAXY-HHEIGHT/2; - t.v_j_factor = HMAXY * 0.85; + t.v_j_factor = HMAXY * volume_scale; t.v_i.x = 1.0 / (float)(PL->size - 1) * (float)MAXX; for (i = 0; i < PL->size; i++) { @@ -67,9 +87,25 @@ } +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + if(in_parameters) { + init(); + } + + return get_parameters(); +} + + void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + volume_scale = 0.85; + init(); + /* connect = b_rand_boolean(); */ } @@ -88,6 +124,6 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(PL, ctx, connect); - Porteuse_draw(PR, ctx, connect); + Porteuse_draw(PL, ctx, xoscillo_s_connect); + Porteuse_draw(PR, ctx, xoscillo_s_connect); } diff -Nru lebiniou-3.32/plugins/stable/main/xscanline/Makefile.am lebiniou-3.40/plugins/stable/main/xscanline/Makefile.am --- lebiniou-3.32/plugins/stable/main/xscanline/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xscanline/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xscanline_so_SOURCES = xscanline.c xscanline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xscanline_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xscanline/Makefile.in lebiniou-3.40/plugins/stable/main/xscanline/Makefile.in --- lebiniou-3.32/plugins/stable/main/xscanline/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xscanline/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xscanline xscanline_so_SOURCES = xscanline.c xscanline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xscanline_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xscanline/xscanline.c lebiniou-3.40/plugins/stable/main/xscanline/xscanline.c --- lebiniou-3.32/plugins/stable/main/xscanline/xscanline.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xscanline/xscanline.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 949094844; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE; char dname[] = "X Scanline"; char desc[] = "Horizontal scanline"; diff -Nru lebiniou-3.32/plugins/stable/main/xshaker/Makefile.am lebiniou-3.40/plugins/stable/main/xshaker/Makefile.am --- lebiniou-3.32/plugins/stable/main/xshaker/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xshaker/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xshaker_so_SOURCES = xshaker.c xshaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xshaker_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xshaker/Makefile.in lebiniou-3.40/plugins/stable/main/xshaker/Makefile.in --- lebiniou-3.32/plugins/stable/main/xshaker/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xshaker/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xshaker xshaker_so_SOURCES = xshaker.c xshaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xshaker_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xshaker/xshaker.c lebiniou-3.40/plugins/stable/main/xshaker/xshaker.c --- lebiniou-3.32/plugins/stable/main/xshaker/xshaker.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xshaker/xshaker.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,15 +18,24 @@ */ #include "context.h" -#include "../include/shaker.h" +#include "shaker.h" u_long id = 947072846; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "X Shaker"; char desc[] = "Shaker effect"; void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); @@ -41,8 +50,8 @@ uint16_t j; for (j = 0; j < HEIGHT; j++) { - char dx = Input_clamp(ctx->input->data[A_LEFT][idx]) * SOUND_DISTURB_K; - char dy = Input_clamp(ctx->input->data[A_RIGHT][idx]) * SOUND_DISTURB_K; + char dx = Input_clamp(ctx->input->data[A_LEFT][idx]) * volume_scale * SOUND_DISTURB_K; + char dy = Input_clamp(ctx->input->data[A_RIGHT][idx]) * volume_scale * SOUND_DISTURB_K; if (++idx == ctx->input->size) { idx = 0; diff -Nru lebiniou-3.32/plugins/stable/main/xwave/Makefile.am lebiniou-3.40/plugins/stable/main/xwave/Makefile.am --- lebiniou-3.32/plugins/stable/main/xwave/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xwave/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ xwave_so_SOURCES = xwave.c xwave_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xwave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xwave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xwave_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/xwave/Makefile.in lebiniou-3.40/plugins/stable/main/xwave/Makefile.in --- lebiniou-3.32/plugins/stable/main/xwave/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xwave/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/xwave xwave_so_SOURCES = xwave.c xwave_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -xwave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +xwave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include xwave_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/xwave/xwave.c lebiniou-3.40/plugins/stable/main/xwave/xwave.c --- lebiniou-3.32/plugins/stable/main/xwave/xwave.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/xwave/xwave.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949847207; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "X Wave"; char desc[] = "Swap columns"; diff -Nru lebiniou-3.32/plugins/stable/main/ygum/Makefile.am lebiniou-3.40/plugins/stable/main/ygum/Makefile.am --- lebiniou-3.32/plugins/stable/main/ygum/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ygum/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ ygum_so_SOURCES = ygum.c ygum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ygum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ygum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ygum_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/ygum/Makefile.in lebiniou-3.40/plugins/stable/main/ygum/Makefile.in --- lebiniou-3.32/plugins/stable/main/ygum/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ygum/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/ygum ygum_so_SOURCES = ygum.c ygum_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ygum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ygum_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ygum_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/ygum/ygum.c lebiniou-3.40/plugins/stable/main/ygum/ygum.c --- lebiniou-3.32/plugins/stable/main/ygum/ygum.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ygum/ygum.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,6 +18,8 @@ */ #include "context.h" +#include "parameters.h" +#include "gum.h" /* TODO optimize * we can precompute an array for the "idx" variable @@ -26,6 +28,7 @@ */ u_long id = 1074631869; +uint32_t version = 0; u_long options = BE_LENS|BEQ_VER; char dname[] = "Y gum"; char desc[] = "Gum effect"; @@ -58,11 +61,19 @@ static inline void do_gum(Context_t *ctx, u_short y, float val) { - u_short max_x = HWIDTH + val * HWIDTH; + u_short max_x = HWIDTH + val * volume_scale * HWIDTH; gum(ctx, y, max_x); } +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + void run(Context_t *ctx) { diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_left/Makefile.am lebiniou-3.40/plugins/stable/main/ymirror_left/Makefile.am --- lebiniou-3.32/plugins/stable/main/ymirror_left/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_left/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ ymirror_left_so_SOURCES = ymirror_left.c ymirror_left_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ymirror_left_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ymirror_left_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ymirror_left_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_left/Makefile.in lebiniou-3.40/plugins/stable/main/ymirror_left/Makefile.in --- lebiniou-3.32/plugins/stable/main/ymirror_left/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_left/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/ymirror_left ymirror_left_so_SOURCES = ymirror_left.c ymirror_left_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ymirror_left_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ymirror_left_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ymirror_left_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_left/ymirror_left.c lebiniou-3.40/plugins/stable/main/ymirror_left/ymirror_left.c --- lebiniou-3.32/plugins/stable/main/ymirror_left/ymirror_left.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_left/ymirror_left.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 947154952; +uint32_t version = 0; u_long options = BE_MIRROR|BEQ_VER; char dname[] = "Mirror left"; char desc[] = "Mirror effect"; diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_right/Makefile.am lebiniou-3.40/plugins/stable/main/ymirror_right/Makefile.am --- lebiniou-3.32/plugins/stable/main/ymirror_right/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_right/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ ymirror_right_so_SOURCES = ymirror_right.c ymirror_right_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ymirror_right_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ymirror_right_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ymirror_right_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_right/Makefile.in lebiniou-3.40/plugins/stable/main/ymirror_right/Makefile.in --- lebiniou-3.32/plugins/stable/main/ymirror_right/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_right/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -217,6 +217,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -261,6 +263,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -323,7 +327,7 @@ plugindir = @libdir@/lebiniou/plugins/main/ymirror_right ymirror_right_so_SOURCES = ymirror_right.c ymirror_right_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ymirror_right_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ymirror_right_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ymirror_right_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/ymirror_right/ymirror_right.c lebiniou-3.40/plugins/stable/main/ymirror_right/ymirror_right.c --- lebiniou-3.32/plugins/stable/main/ymirror_right/ymirror_right.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ymirror_right/ymirror_right.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 947154953; +uint32_t version = 0; u_long options = BE_MIRROR|BEQ_VER; char dname[] = "Mirror right"; char desc[] = "Mirror effect"; diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo/Makefile.am lebiniou-3.40/plugins/stable/main/yoscillo/Makefile.am --- lebiniou-3.32/plugins/stable/main/yoscillo/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ yoscillo_so_SOURCES = yoscillo.c yoscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yoscillo_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo/Makefile.in lebiniou-3.40/plugins/stable/main/yoscillo/Makefile.in --- lebiniou-3.32/plugins/stable/main/yoscillo/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/yoscillo yoscillo_so_SOURCES = yoscillo.c yoscillo_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yoscillo_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yoscillo_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo/yoscillo.c lebiniou-3.40/plugins/stable/main/yoscillo/yoscillo.c --- lebiniou-3.32/plugins/stable/main/yoscillo/yoscillo.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo/yoscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,16 +18,36 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 946482111; +uint32_t version = 0; u_long options = BE_SFX2D; char dname[] = "Y oscillo"; u_long mode = OVERLAY; char desc[] = "Vertical mono oscilloscope"; static Porteuse_t *P = NULL; -static int connect = 1; +static int yoscillo_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} static void @@ -41,7 +61,7 @@ P->origin.x = CENTERX; P->origin.y = 0; - t.v_j_factor = HMAXX * 0.85; + t.v_j_factor = HMAXX * volume_scale; t.v_i.y = 1.0 / (float)(P->size - 1) * (float)MAXY; for (i = 0; i < P->size; i++) { @@ -52,6 +72,27 @@ } +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + if(in_parameters) { + init(); + } + + return get_parameters(); +} + + +void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 0.85; + init(); +} + + int8_t create(Context_t *ctx) { @@ -75,5 +116,5 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(P, ctx, connect); + Porteuse_draw(P, ctx, yoscillo_connect); } diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo_s/Makefile.am lebiniou-3.40/plugins/stable/main/yoscillo_s/Makefile.am --- lebiniou-3.32/plugins/stable/main/yoscillo_s/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo_s/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ yoscillo_s_so_SOURCES = yoscillo_s.c yoscillo_s_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yoscillo_s_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo_s/Makefile.in lebiniou-3.40/plugins/stable/main/yoscillo_s/Makefile.in --- lebiniou-3.32/plugins/stable/main/yoscillo_s/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo_s/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/yoscillo_s yoscillo_s_so_SOURCES = yoscillo_s.c yoscillo_s_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yoscillo_s_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yoscillo_s_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/yoscillo_s/yoscillo_s.c lebiniou-3.40/plugins/stable/main/yoscillo_s/yoscillo_s.c --- lebiniou-3.32/plugins/stable/main/yoscillo_s/yoscillo_s.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yoscillo_s/yoscillo_s.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,16 +18,36 @@ */ #include "oscillo.h" +#include "parameters.h" u_long id = 1089152275; +uint32_t version = 0; u_long options = BE_SFX2D|BEQ_VER; char dname[] = "Y oscillo stereo"; u_long mode = OVERLAY; char desc[] = "Vertical stereo oscilloscope"; static Porteuse_t *PL = NULL, *PR = NULL; -static int connect = 1; +static int yoscillo_s_connect = 1; + +static float volume_scale = 0; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); +} static void @@ -43,7 +63,7 @@ PL->origin.x = HWIDTH/2; PR->origin.x = MAXX-HWIDTH/2; - t.v_j_factor = HMAXX * 0.85; + t.v_j_factor = HMAXX * volume_scale; t.v_i.y = 1.0 / (float)(PL->size - 1) * (float)MAXY; for (i = 0; i < PL->size; i++) { @@ -76,9 +96,25 @@ } +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + if(in_parameters) { + init(); + } + + return get_parameters(); +} + + void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + volume_scale = 0.85; + init(); + /* connect = b_rand_boolean(); */ } @@ -87,6 +123,6 @@ run(Context_t *ctx) { Buffer8_clear(passive_buffer(ctx)); - Porteuse_draw(PL, ctx, connect); - Porteuse_draw(PR, ctx, connect); + Porteuse_draw(PL, ctx, yoscillo_s_connect); + Porteuse_draw(PR, ctx, yoscillo_s_connect); } diff -Nru lebiniou-3.32/plugins/stable/main/yscanline/Makefile.am lebiniou-3.40/plugins/stable/main/yscanline/Makefile.am --- lebiniou-3.32/plugins/stable/main/yscanline/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yscanline/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ yscanline_so_SOURCES = yscanline.c yscanline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yscanline_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/yscanline/Makefile.in lebiniou-3.40/plugins/stable/main/yscanline/Makefile.in --- lebiniou-3.32/plugins/stable/main/yscanline/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yscanline/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/yscanline yscanline_so_SOURCES = yscanline.c yscanline_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yscanline_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yscanline_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/yscanline/yscanline.c lebiniou-3.40/plugins/stable/main/yscanline/yscanline.c --- lebiniou-3.32/plugins/stable/main/yscanline/yscanline.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yscanline/yscanline.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -22,6 +22,7 @@ u_long id = 949094845; +uint32_t version = 0; u_long options = BE_GFX|BEQ_IMAGE; char dname[] = "Y Scanline"; char desc[] = "Vertical scanline"; diff -Nru lebiniou-3.32/plugins/stable/main/yshaker/Makefile.am lebiniou-3.40/plugins/stable/main/yshaker/Makefile.am --- lebiniou-3.32/plugins/stable/main/yshaker/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yshaker/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ yshaker_so_SOURCES = yshaker.c yshaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yshaker_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/yshaker/Makefile.in lebiniou-3.40/plugins/stable/main/yshaker/Makefile.in --- lebiniou-3.32/plugins/stable/main/yshaker/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yshaker/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/yshaker yshaker_so_SOURCES = yshaker.c yshaker_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -yshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +yshaker_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include yshaker_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/yshaker/yshaker.c lebiniou-3.40/plugins/stable/main/yshaker/yshaker.c --- lebiniou-3.32/plugins/stable/main/yshaker/yshaker.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/yshaker/yshaker.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -18,15 +18,24 @@ */ #include "context.h" -#include "../include/shaker.h" +#include "shaker.h" u_long id = 947072847; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "Y Shaker"; char desc[] = "Shaker effect"; void +on_switch_on(Context_t *ctx) +{ + /* Initialize parameters */ + volume_scale = 1; +} + + +void run(Context_t *ctx) { const Buffer8_t *src = active_buffer(ctx); @@ -41,8 +50,8 @@ uint16_t i; for (i = 0; i < WIDTH; i++) { - char dx = Input_clamp(ctx->input->data[A_LEFT][idx]) * SOUND_DISTURB_K; - char dy = Input_clamp(ctx->input->data[A_RIGHT][idx]) * SOUND_DISTURB_K; + char dx = Input_clamp(ctx->input->data[A_LEFT][idx]) * volume_scale * SOUND_DISTURB_K; + char dy = Input_clamp(ctx->input->data[A_RIGHT][idx]) * volume_scale * SOUND_DISTURB_K; if (++idx == ctx->input->size) { idx = 0; diff -Nru lebiniou-3.32/plugins/stable/main/ywave/Makefile.am lebiniou-3.40/plugins/stable/main/ywave/Makefile.am --- lebiniou-3.32/plugins/stable/main/ywave/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ywave/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ ywave_so_SOURCES = ywave.c ywave_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ywave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ywave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ywave_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/ywave/Makefile.in lebiniou-3.40/plugins/stable/main/ywave/Makefile.in --- lebiniou-3.32/plugins/stable/main/ywave/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ywave/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/ywave ywave_so_SOURCES = ywave.c ywave_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -ywave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +ywave_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include ywave_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/ywave/ywave.c lebiniou-3.40/plugins/stable/main/ywave/ywave.c --- lebiniou-3.32/plugins/stable/main/ywave/ywave.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/ywave/ywave.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -21,6 +21,7 @@ u_long id = 949847208; +uint32_t version = 0; u_long options = BE_LENS; char dname[] = "Y Wave"; char desc[] = "Swap rows"; diff -Nru lebiniou-3.32/plugins/stable/main/zblur1/Makefile.am lebiniou-3.40/plugins/stable/main/zblur1/Makefile.am --- lebiniou-3.32/plugins/stable/main/zblur1/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zblur1_so_SOURCES = zblur1.c zblur1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zblur1/Makefile.in lebiniou-3.40/plugins/stable/main/zblur1/Makefile.in --- lebiniou-3.32/plugins/stable/main/zblur1/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zblur1 zblur1_so_SOURCES = zblur1.c zblur1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zblur1/zblur1.c lebiniou-3.40/plugins/stable/main/zblur1/zblur1.c --- lebiniou-3.32/plugins/stable/main/zblur1/zblur1.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1/zblur1.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2014-2019 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -24,14 +24,54 @@ */ #include "context.h" +#include "parameters.h" u_long id = 1410477171; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_NORANDOM; char desc[] = "Color fade-out effect"; static float decay; +enum Mode { MODE_SELECTED = 0, MODE_RANDOM, MODE_NB } Mode_e; +const char *mode_list[MODE_NB] = { "Selected", "Random" }; + +/* parameters */ +static enum Mode mode = MODE_RANDOM; + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_string_list(params, BPP_MODE, MODE_NB, mode_list, mode); + plugin_parameters_add_double(params, BPP_DECAY, decay, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int mode_idx = 0; + if (plugin_parameter_parse_string_list_as_int_range(in_parameters, BPP_MODE, MODE_NB, mode_list, &mode_idx, 0, MODE_NB-1)) { + mode = (enum Mode)mode_idx; + } + + if (mode == MODE_SELECTED) { + plugin_parameter_parse_float_range(in_parameters, BPP_DECAY, &decay, 0, 1); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} void @@ -62,6 +102,7 @@ void on_switch_on(Context_t *ctx) { + mode = MODE_RANDOM; decay = (float) pow(2, b_rand_double_range(log2(1), log2(31))); decay = decay / (decay + 1.f); #ifdef DEBUG diff -Nru lebiniou-3.32/plugins/stable/main/zblur1beat/Makefile.am lebiniou-3.40/plugins/stable/main/zblur1beat/Makefile.am --- lebiniou-3.32/plugins/stable/main/zblur1beat/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1beat/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zblur1beat_so_SOURCES = zblur1beat.c zblur1beat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1beat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1beat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1beat_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zblur1beat/Makefile.in lebiniou-3.40/plugins/stable/main/zblur1beat/Makefile.in --- lebiniou-3.32/plugins/stable/main/zblur1beat/Makefile.in 2019-12-04 14:09:26.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1beat/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zblur1beat zblur1beat_so_SOURCES = zblur1beat.c zblur1beat_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1beat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1beat_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1beat_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zblur1beat/zblur1beat.c lebiniou-3.40/plugins/stable/main/zblur1beat/zblur1beat.c --- lebiniou-3.32/plugins/stable/main/zblur1beat/zblur1beat.c 2019-11-12 02:17:31.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1beat/zblur1beat.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright 2014-2018 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -32,6 +32,7 @@ #define CURVE_VOL_MULT (9.0 / 7.0) /* multiplier on count on one step */ u_long id = 1546935176; +uint32_t version = 0; u_long options = BE_BLUR|BE_SFX2D|BEQ_NORANDOM; char desc[] = "Color fade-out on beat"; @@ -53,11 +54,11 @@ colorcount = colorcount * CURVE_VOL_MULT; colorcount++; } - + if (colorcount > MAXCOLORCOUNT) { colorcount = MAXCOLORCOUNT; } - + for (i = 0; i < BUFFSIZE; i++) { Pixel_t col = *src++; diff -Nru lebiniou-3.32/plugins/stable/main/zblur1mist/Makefile.am lebiniou-3.40/plugins/stable/main/zblur1mist/Makefile.am --- lebiniou-3.32/plugins/stable/main/zblur1mist/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1mist/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zblur1mist_so_SOURCES = zblur1mist.c zblur1mist_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1mist_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1mist_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1mist_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zblur1mist/Makefile.in lebiniou-3.40/plugins/stable/main/zblur1mist/Makefile.in --- lebiniou-3.32/plugins/stable/main/zblur1mist/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1mist/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zblur1mist zblur1mist_so_SOURCES = zblur1mist.c zblur1mist_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1mist_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1mist_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1mist_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zblur1mist/zblur1mist.c lebiniou-3.40/plugins/stable/main/zblur1mist/zblur1mist.c --- lebiniou-3.32/plugins/stable/main/zblur1mist/zblur1mist.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1mist/zblur1mist.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright 2014-2018 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ #define RANDOM_FACTOR 5 /* 1/factor will be possibility of pixel to degrade to lower colod value */ u_long id = 1546800377; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_NORANDOM; char desc[] = "Slow color fade-out effect"; diff -Nru lebiniou-3.32/plugins/stable/main/zblur1slow/Makefile.am lebiniou-3.40/plugins/stable/main/zblur1slow/Makefile.am --- lebiniou-3.32/plugins/stable/main/zblur1slow/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1slow/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zblur1slow_so_SOURCES = zblur1slow.c zblur1slow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1slow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1slow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1slow_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zblur1slow/Makefile.in lebiniou-3.40/plugins/stable/main/zblur1slow/Makefile.in --- lebiniou-3.32/plugins/stable/main/zblur1slow/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1slow/Makefile.in 2020-01-23 13:57:19.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zblur1slow zblur1slow_so_SOURCES = zblur1slow.c zblur1slow_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur1slow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur1slow_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur1slow_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zblur1slow/zblur1slow.c lebiniou-3.40/plugins/stable/main/zblur1slow/zblur1slow.c --- lebiniou-3.32/plugins/stable/main/zblur1slow/zblur1slow.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur1slow/zblur1slow.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright 2014-2018 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel - * Copyright 2019 Tavasti + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski + * Copyright 2019-2020 Tavasti * * This file is part of lebiniou. * @@ -28,6 +28,7 @@ #define INTERVAL 0 /* How often (in FPS) we degrade color values */ u_long id = 1546800357; +uint32_t version = 0; u_long options = BE_BLUR|BEQ_NORANDOM; char desc[] = "Slow color fade-out effect"; diff -Nru lebiniou-3.32/plugins/stable/main/zblur2/Makefile.am lebiniou-3.40/plugins/stable/main/zblur2/Makefile.am --- lebiniou-3.32/plugins/stable/main/zblur2/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur2/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zblur2_so_SOURCES = zblur2.c zblur2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur2_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zblur2/Makefile.in lebiniou-3.40/plugins/stable/main/zblur2/Makefile.in --- lebiniou-3.32/plugins/stable/main/zblur2/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur2/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zblur2 zblur2_so_SOURCES = zblur2.c zblur2_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zblur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zblur2_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zblur2_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zblur2/zblur2.c lebiniou-3.40/plugins/stable/main/zblur2/zblur2.c --- lebiniou-3.32/plugins/stable/main/zblur2/zblur2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zblur2/zblur2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2014-2019 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ #include "context.h" u_long id = 1403972381; +uint32_t version = 0; u_long options = BE_BLUR; char desc[] = "Spherical blur (3x3)"; diff -Nru lebiniou-3.32/plugins/stable/main/zbroken/Makefile.am lebiniou-3.40/plugins/stable/main/zbroken/Makefile.am --- lebiniou-3.32/plugins/stable/main/zbroken/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zbroken/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zbroken_so_SOURCES = zbroken.c zbroken_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zbroken_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zbroken_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zbroken_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zbroken/Makefile.in lebiniou-3.40/plugins/stable/main/zbroken/Makefile.in --- lebiniou-3.32/plugins/stable/main/zbroken/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zbroken/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zbroken zbroken_so_SOURCES = zbroken.c zbroken_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zbroken_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zbroken_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zbroken_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zbroken/zbroken.c lebiniou-3.40/plugins/stable/main/zbroken/zbroken.c --- lebiniou-3.32/plugins/stable/main/zbroken/zbroken.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zbroken/zbroken.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2014-2019 Frantz Balinski + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -29,6 +29,7 @@ u_long id = 1405678380; +uint32_t version = 0; u_long options = BE_DISPLACE | BE_LENS; char desc[] = "Broken mirror effect"; diff -Nru lebiniou-3.32/plugins/stable/main/zebu1/Makefile.am lebiniou-3.40/plugins/stable/main/zebu1/Makefile.am --- lebiniou-3.32/plugins/stable/main/zebu1/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zebu1/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zebu1_so_SOURCES = zebu1.c zebu1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zebu1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zebu1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zebu1_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zebu1/Makefile.in lebiniou-3.40/plugins/stable/main/zebu1/Makefile.in --- lebiniou-3.32/plugins/stable/main/zebu1/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zebu1/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zebu1 zebu1_so_SOURCES = zebu1.c zebu1_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zebu1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zebu1_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zebu1_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zebu1/zebu1.c lebiniou-3.40/plugins/stable/main/zebu1/zebu1.c --- lebiniou-3.32/plugins/stable/main/zebu1/zebu1.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zebu1/zebu1.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2014-2019 Frantz Balinski - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -21,9 +21,11 @@ #include "constants.h" #include "context.h" +#include "parameters.h" u_long id = 1177412508; +uint32_t version = 0; u_long options = BE_SFX2D; u_long mode = OVERLAY; char desc[] = "Zebulon effect"; @@ -40,13 +42,8 @@ uint16_t x, y; } POSITION; -#define NB_SPHERES 24 - -/* radius max: HEIGHT / 24 */ -#define RADIUS(h) ((h)/24) - /* spheres centres */ -static POSITION centres[NB_SPHERES]; +static POSITION *centres = NULL; /* sphere radius */ static uint16_t radius; @@ -58,14 +55,71 @@ static uint16_t size_max; /* color indices grid */ -static Pixel_t *color_indices; +static Pixel_t *color_indices = NULL; + +/* parameters */ +static int nb_spheres = 0; +static float radius_factor = 0; /* sets radius max */ +static float volume_scale = 0; +static float sensibility = 0; +static float move_factor = 1; +static float border_x = 0; /* border will be set to border_x * HWIDTH */ +static float border_y = 0; /* border will be set to border_y * HHEIGHT */ + +static void free_spheres(); +static void move_spheres(); + +json_t * +get_parameters() +{ + json_t *params = json_object(); + plugin_parameters_add_int(params, BPP_NB_SPHERES, nb_spheres, -1, 1); + plugin_parameters_add_double(params, BPP_RADIUS_FACTOR, radius_factor, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_VOLUME_SCALE, volume_scale, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_SENSITIVITY, sensibility, -0.1, 0.1); + plugin_parameters_add_double(params, BPP_MOVE_FACTOR, move_factor, -0.1, 0.1); + plugin_parameters_add_double(params, BPP_BORDER_X, border_x, -0.01, 0.01); + plugin_parameters_add_double(params, BPP_BORDER_Y, border_y, -0.01, 0.01); + + return params; +} + + +void +set_parameters(const json_t *in_parameters) +{ + int reload = 0; + reload |= plugin_parameter_parse_int_range(in_parameters, BPP_NB_SPHERES, &nb_spheres, 1, 64) & PLUGIN_PARAMETER_CHANGED; + reload |= plugin_parameter_parse_float_range(in_parameters, BPP_RADIUS_FACTOR, &radius_factor, 0, 0.24) & PLUGIN_PARAMETER_CHANGED; + plugin_parameter_parse_float_range(in_parameters, BPP_VOLUME_SCALE, &volume_scale, 0, 100); + plugin_parameter_parse_float_range(in_parameters, BPP_SENSITIVITY, &sensibility, 0, 10); + plugin_parameter_parse_float_range(in_parameters, BPP_MOVE_FACTOR, &move_factor, 0, 10); + plugin_parameter_parse_float_range(in_parameters, BPP_BORDER_X, &border_x, 0, 1); + plugin_parameter_parse_float_range(in_parameters, BPP_BORDER_Y, &border_y, 0, 1); + + if (reload) { + move_spheres(); + } +} + + +json_t * +parameters(const json_t *in_parameters) +{ + set_parameters(in_parameters); + + return get_parameters(); +} inline static void -alloc_sphere() +init_sphere() { + free_spheres(); + centres = (POSITION *)xcalloc(nb_spheres, sizeof(POSITION)); + /* max radius for this screen size */ - radius_max = (uint16_t) RADIUS(HEIGHT); + radius_max = (uint16_t)(radius_factor * HEIGHT); /* buffer size */ size_max = (radius_max << 1) + 1; /* Allocate buffer */ @@ -75,16 +129,17 @@ inline static void -free_sphere() +free_spheres() { xfree(color_indices); + xfree(centres); } inline static void compute_radius(Context_t *ctx) { - float volume = Input_get_volume(ctx->input); + float volume = volume_scale * Input_get_volume(ctx->input); /** Volume ajustement **/ /* pow(volume, X) modify plugin sensibility: @@ -93,13 +148,11 @@ * X > 1: "decrease" the effect (less sensitive on small volumes and better on beats) */ /* and "* 50.0" to reajust global volume, otherwise spheres are too small */ - volume = powf(volume, 3) * 50.0; + volume = powf(volume, sensibility) * 50.0; /* sphere radius */ radius = (uint16_t)(volume * radius_max); - if (radius > radius_max) { - radius = radius_max; - } + radius = MIN(radius, radius_max); } @@ -137,10 +190,11 @@ inline static void move_spheres() { - uint16_t i, *p; + init_sphere(); - p = (uint16_t *)centres; - for (i = 0; i < NB_SPHERES; i++) { + uint16_t i; + uint16_t *p = (uint16_t *)centres; + for (i = 0; i < nb_spheres; i++) { *p++ = 2*radius_max + (uint16_t)(b_rand_int() % (WIDTH - 4*radius_max)); *p++ = 2*radius_max + (uint16_t)(b_rand_int() % (HEIGHT - 4*radius_max)); } @@ -181,18 +235,21 @@ Buffer8_clear(dst); /* max sphere move: +/- (radius/4) */ - offset = radius / 4; + offset = radius * move_factor / 4; length = offset * 2 + 1; + uint16_t border_offset_x = MAX(2 * radius_max, border_x * HWIDTH); + uint16_t border_offset_y = MAX(2 * radius_max, border_y * HHEIGHT); + p = (uint16_t *)centres; - for (i = 0; i < NB_SPHERES; i++) { + for (i = 0; i < nb_spheres; i++) { plot_sphere(dst, (POSITION *)p); /* Move sphere */ n = *p; - *p++ = MAX( 2 * radius_max, MIN( (uint16_t) ((n + WIDTH + (b_rand_int() % length) - offset) % WIDTH), WIDTH - 2 * radius_max)); + *p++ = MAX( border_offset_x, MIN( (uint16_t) ((n + WIDTH + (b_rand_int() % length) - offset) % WIDTH), WIDTH - border_offset_x)); n = *p; - *p++ = MAX( 2 * radius_max, MIN( (uint16_t) ((n + HEIGHT + (b_rand_int() % length) - offset) % HEIGHT), HEIGHT - 2 * radius_max)); + *p++ = MAX( border_offset_y, MIN( (uint16_t) ((n + HEIGHT + (b_rand_int() % length) - offset) % HEIGHT), HEIGHT - border_offset_y)); } } @@ -200,9 +257,7 @@ int8_t create(Context_t *ctx) { - alloc_sphere(); move_spheres(); - return 1; } @@ -219,6 +274,15 @@ void on_switch_on(Context_t *ctx) { + /* Initialize parameters */ + nb_spheres = 16; + radius_factor = 0.04; + volume_scale = 1; + sensibility = 3; + move_factor = 1; + border_x = 0; + border_y = 0; + move_spheres(); } @@ -226,5 +290,5 @@ void destroy(Context_t *ctx) { - free_sphere(); + free_spheres(); } diff -Nru lebiniou-3.32/plugins/stable/main/zmonitor/Makefile.am lebiniou-3.40/plugins/stable/main/zmonitor/Makefile.am --- lebiniou-3.32/plugins/stable/main/zmonitor/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zmonitor/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zmonitor_so_SOURCES = zmonitor.c zmonitor_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zmonitor_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zmonitor_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zmonitor_so_LDADD = @PLUGIN_LDADD@ @SWSCALE_LDFLAGS@ diff -Nru lebiniou-3.32/plugins/stable/main/zmonitor/Makefile.in lebiniou-3.40/plugins/stable/main/zmonitor/Makefile.in --- lebiniou-3.32/plugins/stable/main/zmonitor/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zmonitor/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zmonitor zmonitor_so_SOURCES = zmonitor.c zmonitor_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zmonitor_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zmonitor_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zmonitor_so_LDADD = @PLUGIN_LDADD@ @SWSCALE_LDFLAGS@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zmonitor/zmonitor.c lebiniou-3.40/plugins/stable/main/zmonitor/zmonitor.c --- lebiniou-3.32/plugins/stable/main/zmonitor/zmonitor.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zmonitor/zmonitor.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 2014-2019 Frantz Balinski - * Copyright 2018-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -30,6 +30,7 @@ u_long id = 1405944413; +uint32_t version = 0; u_long options = BE_LENS; u_long mode = OVERLAY; char desc[] = "Monitor-view effect"; @@ -250,26 +251,26 @@ if ((sources[rSource] != bDISABLED) && (rRecording != bOFF)) { switch (rSource) { - case sCAMERA: - pthread_mutex_lock(&ctx->cam_mtx[ctx->cam]); - Buffer8_copy(ctx->cam_save[ctx->cam][0], webcam); - pthread_mutex_unlock(&ctx->cam_mtx[ctx->cam]); - zscale(src, webcam->buffer); - randomize_sometimes(src, b_rand_int_range(0, 11)); - break; - - case sCAPTURE: - b8 = active_buffer(ctx); - zscale(src, b8->buffer); - randomize_sometimes(src, b_rand_int_range(0, 6)); - break; + case sCAMERA: + pthread_mutex_lock(&ctx->cam_mtx[ctx->cam]); + Buffer8_copy(ctx->cam_save[ctx->cam][0], webcam); + pthread_mutex_unlock(&ctx->cam_mtx[ctx->cam]); + zscale(src, webcam->buffer); + randomize_sometimes(src, b_rand_int_range(0, 11)); + break; + + case sCAPTURE: + b8 = active_buffer(ctx); + zscale(src, b8->buffer); + randomize_sometimes(src, b_rand_int_range(0, 6)); + break; + + case sCLEAR: + randomize_buffer(src); + break; - case sCLEAR: - randomize_buffer(src); - break; - - default: /* do nothing */ - break; + default: /* do nothing */ + break; } } @@ -405,17 +406,17 @@ n = b_rand_int_range(0, 2 + 1); switch (n) { - case 0: - rec = bOFF; - break; - - case 1: - rec = bON; - break; - - default: /* inverse */ - rec = (rRecording == bOFF ? bON : bOFF); - break; + case 0: + rec = bOFF; + break; + + case 1: + rec = bON; + break; + + default: /* inverse */ + rec = (rRecording == bOFF ? bON : bOFF); + break; } if (rec != rRecording) { diff -Nru lebiniou-3.32/plugins/stable/main/zreflector/Makefile.am lebiniou-3.40/plugins/stable/main/zreflector/Makefile.am --- lebiniou-3.32/plugins/stable/main/zreflector/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zreflector/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zreflector_so_SOURCES = zreflector.c zreflector_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zreflector_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zreflector_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zreflector_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zreflector/Makefile.in lebiniou-3.40/plugins/stable/main/zreflector/Makefile.in --- lebiniou-3.32/plugins/stable/main/zreflector/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zreflector/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zreflector zreflector_so_SOURCES = zreflector.c zreflector_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zreflector_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zreflector_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zreflector_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zreflector/zreflector.c lebiniou-3.40/plugins/stable/main/zreflector/zreflector.c --- lebiniou-3.32/plugins/stable/main/zreflector/zreflector.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zreflector/zreflector.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2014-2019 Frantz Balinski + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -27,6 +27,7 @@ u_long id = 1405350829; +uint32_t version = 0; u_long options = BE_DISPLACE | BE_LENS; char desc[] = "Reflector-like effect"; diff -Nru lebiniou-3.32/plugins/stable/main/zspirals/Makefile.am lebiniou-3.40/plugins/stable/main/zspirals/Makefile.am --- lebiniou-3.32/plugins/stable/main/zspirals/Makefile.am 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zspirals/Makefile.am 2020-01-22 18:33:56.000000000 +0000 @@ -3,5 +3,5 @@ zspirals_so_SOURCES = zspirals.c zspirals_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zspirals_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zspirals_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zspirals_so_LDADD = @PLUGIN_LDADD@ diff -Nru lebiniou-3.32/plugins/stable/main/zspirals/Makefile.in lebiniou-3.40/plugins/stable/main/zspirals/Makefile.in --- lebiniou-3.32/plugins/stable/main/zspirals/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zspirals/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -322,7 +326,7 @@ plugindir = @libdir@/lebiniou/plugins/main/zspirals zspirals_so_SOURCES = zspirals.c zspirals_so_LDFLAGS = @PLUGIN_LDFLAGS@ -L$(top_builddir)/src -zspirals_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src +zspirals_so_CFLAGS = @PLUGIN_CFLAGS@ -I$(top_srcdir)/src -I$(top_srcdir)/plugins/stable/main/include zspirals_so_LDADD = @PLUGIN_LDADD@ all: all-am diff -Nru lebiniou-3.32/plugins/stable/main/zspirals/zspirals.c lebiniou-3.40/plugins/stable/main/zspirals/zspirals.c --- lebiniou-3.32/plugins/stable/main/zspirals/zspirals.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/main/zspirals/zspirals.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2014-2019 Frantz Balinski + * Copyright 1994-2020 Olivier Girondel + * Copyright 2014-2020 Frantz Balinski * * This file is part of lebiniou. * @@ -25,6 +25,7 @@ u_long id = 1406046076; +uint32_t version = 0; u_long options = BE_DISPLACE; char desc[] = "Poly-spirals effect"; diff -Nru lebiniou-3.32/plugins/stable/Makefile.in lebiniou-3.40/plugins/stable/Makefile.in --- lebiniou-3.32/plugins/stable/Makefile.in 2019-12-04 14:09:21.000000000 +0000 +++ lebiniou-3.40/plugins/stable/Makefile.in 2020-01-23 13:57:14.000000000 +0000 @@ -228,6 +228,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -272,6 +274,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/caca/caca.c lebiniou-3.40/plugins/stable/output/caca/caca.c --- lebiniou-3.32/plugins/stable/output/caca/caca.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/caca/caca.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/caca/Makefile.in lebiniou-3.40/plugins/stable/output/caca/Makefile.in --- lebiniou-3.32/plugins/stable/output/caca/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/caca/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/diskwriter/diskwriter.c lebiniou-3.40/plugins/stable/output/diskwriter/diskwriter.c --- lebiniou-3.32/plugins/stable/output/diskwriter/diskwriter.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/diskwriter/diskwriter.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/diskwriter/Makefile.in lebiniou-3.40/plugins/stable/output/diskwriter/Makefile.in --- lebiniou-3.32/plugins/stable/output/diskwriter/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/diskwriter/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/GL/GL.c lebiniou-3.40/plugins/stable/output/GL/GL.c --- lebiniou-3.32/plugins/stable/output/GL/GL.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/GL/GL.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -44,92 +44,92 @@ BKey_t key; switch (evt.type) { - case SDL_KEYDOWN: - key.val = evt.key.keysym.sym; - key.mod = evt.key.keysym.mod; - - on_key(ctx, &key); - break; - - case SDL_QUIT: - Context_send_event(ctx, BT_CONTEXT, BC_QUIT, BA_NONE); - break; - - case SDL_MOUSEMOTION: - // printf("motion.state: %d\n", evt.motion.state); - //printf("left: %d\n", SDL_BUTTON_LEFT); - //printf("right: %d\n", SDL_BUTTON_RIGHT); - - switch (evt.motion.state) { - /* TODO un switch pour le mouse drag/drop mode */ - case SDL_BUTTON_LEFT: + case SDL_KEYDOWN: + key.val = evt.key.keysym.sym; + key.mod = evt.key.keysym.mod; + + on_key(ctx, &key); + break; + + case SDL_QUIT: + Context_send_event(ctx, BT_CONTEXT, BC_QUIT, BA_NONE); + break; + + case SDL_MOUSEMOTION: + // printf("motion.state: %d\n", evt.motion.state); + //printf("left: %d\n", SDL_BUTTON_LEFT); + //printf("right: %d\n", SDL_BUTTON_RIGHT); + + switch (evt.motion.state) { + /* TODO un switch pour le mouse drag/drop mode */ + case SDL_BUTTON_LEFT: #ifdef WITH_GL - ctx->params3d.gl_xe = evt.motion.x; - ctx->params3d.gl_ye = evt.motion.y; - Params3d_rotate_GL(&ctx->params3d); + ctx->params3d.gl_xe = evt.motion.x; + ctx->params3d.gl_ye = evt.motion.y; + Params3d_rotate_GL(&ctx->params3d); #else - ctx->params3d.xe = evt.motion.x; - ctx->params3d.ye = evt.motion.y; - Params3d_rotate(&ctx->params3d); + ctx->params3d.xe = evt.motion.x; + ctx->params3d.ye = evt.motion.y; + Params3d_rotate(&ctx->params3d); #endif - // printf("left button motion @ %d %d\n", evt.motion.x, evt.motion.y); - break; + // printf("left button motion @ %d %d\n", evt.motion.x, evt.motion.y); + break; - case SDL_BUTTON_RIGHT+SDL_BUTTON_LEFT: /* <- WTF ? */ - // printf("right button motion @ %d %d\n", evt.motion.x, evt.motion.y); - set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); - break; + case SDL_BUTTON_RIGHT+SDL_BUTTON_LEFT: /* <- WTF ? */ + // printf("right button motion @ %d %d\n", evt.motion.x, evt.motion.y); + set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + break; - default: + default: + break; + } break; - } - break; - case SDL_MOUSEBUTTONDOWN: - /* printf("type= %d, button= %d\n", evt.button.type, evt.button.button); */ - switch (evt.button.button) { - case SDL_BUTTON_LEFT: + case SDL_MOUSEBUTTONDOWN: + /* printf("type= %d, button= %d\n", evt.button.type, evt.button.button); */ + switch (evt.button.button) { + case SDL_BUTTON_LEFT: #ifdef WITH_GL /* TODO switch GL/not-GL */ - ctx->params3d.gl_xs = evt.motion.x; - ctx->params3d.gl_ys = evt.motion.y; + ctx->params3d.gl_xs = evt.motion.x; + ctx->params3d.gl_ys = evt.motion.y; #else - ctx->params3d.xs = evt.motion.x; - ctx->params3d.ys = evt.motion.y; + ctx->params3d.xs = evt.motion.x; + ctx->params3d.ys = evt.motion.y; #endif - break; + break; - case SDL_BUTTON_RIGHT: - // printf("button down @ %d %d\n", evt.motion.x, evt.motion.y); - set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + case SDL_BUTTON_RIGHT: + // printf("button down @ %d %d\n", evt.motion.x, evt.motion.y); + set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + break; + } break; - } - break; - case SDL_MOUSEWHEEL: - if (evt.wheel.y > 0) { // scroll up + case SDL_MOUSEWHEEL: + if (evt.wheel.y > 0) { // scroll up #ifdef WITH_GL /* TODO switch GL/not-GL */ - if (ctx->params3d.gl_fov > 1) { - ctx->params3d.gl_fov--; - } - //printf("FOV: %f\n", ctx->params3d.gl_fov); + if (ctx->params3d.gl_fov > 1) { + ctx->params3d.gl_fov--; + } + //printf("FOV: %f\n", ctx->params3d.gl_fov); #else - ctx->params3d.scale_factor /= 0.9; - /* printf("scale: %d\n", ctx->params3d->scale_factor); */ + ctx->params3d.scale_factor /= 0.9; + /* printf("scale: %d\n", ctx->params3d->scale_factor); */ #endif - } else if (evt.wheel.y < 0) { // scroll down + } else if (evt.wheel.y < 0) { // scroll down #ifdef WITH_GL /* TODO switch GL/not-GL */ - ctx->params3d.gl_fov++; - //printf("FOV: %f\n", ctx->params3d.gl_fov); + ctx->params3d.gl_fov++; + //printf("FOV: %f\n", ctx->params3d.gl_fov); #else - if (ctx->params3d.scale_factor > 11) { - ctx->params3d.scale_factor *= 0.9; - } + if (ctx->params3d.scale_factor > 11) { + ctx->params3d.scale_factor *= 0.9; + } #endif - } - break; + } + break; - default: - break; + default: + break; } } } diff -Nru lebiniou-3.32/plugins/stable/output/GL/Makefile.in lebiniou-3.40/plugins/stable/output/GL/Makefile.in --- lebiniou-3.32/plugins/stable/output/GL/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/GL/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/Makefile.in lebiniou-3.40/plugins/stable/output/Makefile.in --- lebiniou-3.32/plugins/stable/output/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -231,6 +231,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -275,6 +277,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/mp4/Makefile.in lebiniou-3.40/plugins/stable/output/mp4/Makefile.in --- lebiniou-3.32/plugins/stable/output/mp4/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/mp4/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/mp4/mp4.c lebiniou-3.40/plugins/stable/output/mp4/mp4.c --- lebiniou-3.32/plugins/stable/output/mp4/mp4.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/mp4/mp4.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/RTMP/Makefile.in lebiniou-3.40/plugins/stable/output/RTMP/Makefile.in --- lebiniou-3.32/plugins/stable/output/RTMP/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/RTMP/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -216,6 +216,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -260,6 +262,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/RTMP/RTMP.c lebiniou-3.40/plugins/stable/output/RTMP/RTMP.c --- lebiniou-3.32/plugins/stable/output/RTMP/RTMP.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/RTMP/RTMP.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/Makefile.in lebiniou-3.40/plugins/stable/output/SDL2/Makefile.in --- lebiniou-3.32/plugins/stable/output/SDL2/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -218,6 +218,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -262,6 +264,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/osd.c lebiniou-3.40/plugins/stable/output/SDL2/osd.c --- lebiniou-3.32/plugins/stable/output/SDL2/osd.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/osd.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -124,24 +124,24 @@ /* Display current bankset:bank */ switch (ctx->bank_mode) { - case SEQUENCES: - dst_y = osd_print(BORDER, dst_y, 0, 0, "Sequences bank: %d-%d", - ctx->bankset[SEQUENCES]+1, ctx->bank[SEQUENCES]+1); - break; - case COLORMAPS: - dst_y = osd_print(BORDER, dst_y, 0, 0, "Colormaps bank: %d-%d", - ctx->bankset[COLORMAPS]+1, ctx->bank[COLORMAPS]+1); - break; - case IMAGES: - dst_y = osd_print(BORDER, dst_y, 0, 0, "Images bank: %d-%d", - ctx->bankset[IMAGES]+1, ctx->bank[IMAGES]+1); - break; + case SEQUENCES: + dst_y = osd_print(BORDER, dst_y, 0, 0, "Sequences bank: %d-%d", + ctx->bankset[SEQUENCES]+1, ctx->bank[SEQUENCES]+1); + break; + case COLORMAPS: + dst_y = osd_print(BORDER, dst_y, 0, 0, "Colormaps bank: %d-%d", + ctx->bankset[COLORMAPS]+1, ctx->bank[COLORMAPS]+1); + break; + case IMAGES: + dst_y = osd_print(BORDER, dst_y, 0, 0, "Images bank: %d-%d", + ctx->bankset[IMAGES]+1, ctx->bank[IMAGES]+1); + break; } /* Display colormap and image (if any) */ if (colormaps != NULL) { dst_y = osd_print(BORDER, dst_y, 0, 0, "Colormap: %s", - (cur_seq->cmap_id) ? Colormaps_name(cur_seq->cmap_id) : "(default)"); + (cur_seq->cmap_id) ? Colormaps_name(cur_seq->cmap_id) : "(default)"); } if (images != NULL) { @@ -238,6 +238,47 @@ tmp = g_list_next(tmp); } + if (plugins != NULL && plugins->selected != NULL) { + if (plugins->selected->parameters != NULL) { + json_t *j_params = plugins->selected->parameters(NULL); + + /* find max parameter name size */ + uint8_t max_name_size = 0; + const char *name; + json_t *iter_value; + json_object_foreach(j_params, name, iter_value) { + if (json_is_integer(iter_value) || json_is_real(iter_value)) { + max_name_size = MAX(max_name_size, strlen(name)); + } + } + + dst_y = osd_print(BORDER, dst_y, 1, 0, " "); + char *p_name = plugins->selected->dname; + dst_y = osd_print(BORDER, dst_y, 1, 0, "%s parameters%*s", p_name, + MAX(0, 2 + (int)max_name_size + 7 - (11 + (int)strlen(p_name))), ""); + + uint8_t n = 0; + json_object_foreach(j_params, name, iter_value) { + json_t *j_value = json_object_get(iter_value, "value"); + const char *arrow = (n == plugins->selected->selected_param) ? ARROW : ""; + + if (json_is_integer(j_value)) { + int value = json_integer_value(j_value); + dst_y = osd_print(BORDER, dst_y, 1, 0, "%s %*s: %-4d", arrow, max_name_size, name, value); + } else if (json_is_real(j_value)) { + double value = json_real_value(j_value); + dst_y = osd_print(BORDER, dst_y, 1, 0, "%s %*s: %-4.2f", arrow, max_name_size, name, value); + } else if (json_is_string(j_value)) { + const char *str = json_string_value(j_value); + dst_y = osd_print(BORDER, dst_y, 1, 0, "%s %*s: %s", arrow, max_name_size, name, str); + } + + n++; + } + + json_decref(j_params); + } + } cur_seq = ctx->sm->cur; } diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/osd.h lebiniou-3.40/plugins/stable/output/SDL2/osd.h --- lebiniou-3.32/plugins/stable/output/SDL2/osd.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/osd.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/SDL2.c lebiniou-3.40/plugins/stable/output/SDL2/SDL2.c --- lebiniou-3.32/plugins/stable/output/SDL2/SDL2.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/SDL2.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -74,7 +74,7 @@ const Uint32 pixel_format = SDL_PIXELFORMAT_RGBA32; SDL_Surface *surf = SDL_CreateRGBSurfaceWithFormatFrom((void *)src, WIDTH, HEIGHT, - depth, pitch, pixel_format); + depth, pitch, pixel_format); assert(surf != NULL); if (SDL_BlitScaled(surf, NULL, SDL_GetWindowSurface(window), NULL) < 0) { xerror("SDL_BlitScaled failed\n"); @@ -95,65 +95,66 @@ BKey_t key; switch (evt.type) { - case SDL_KEYDOWN: - key.val = evt.key.keysym.sym; - key.mod = evt.key.keysym.mod; - - on_key(ctx, &key); - break; - - case SDL_QUIT: - Context_send_event(ctx, BT_CONTEXT, BC_QUIT, BA_NONE); - break; - - case SDL_MOUSEMOTION: - switch (evt.motion.state) { - case SDL_BUTTON_LEFT: - ctx->params3d.xe = evt.motion.x; - ctx->params3d.ye = evt.motion.y; - Params3d_rotate(&ctx->params3d); - break; - - case SDL_BUTTON_RIGHT + SDL_BUTTON_LEFT: /* <- WTF ? */ - // printf("right button motion @ %d %d\n", evt.motion.x, evt.motion.y); - set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + case SDL_KEYDOWN: + key.val = evt.key.keysym.sym; + key.mod = evt.key.keysym.mod; + + on_key(ctx, &key); + break; + + case SDL_QUIT: + Context_send_event(ctx, BT_CONTEXT, BC_QUIT, BA_NONE); + break; + + case SDL_MOUSEMOTION: + switch (evt.motion.state) { + case SDL_BUTTON_LEFT: + ctx->params3d.xe = evt.motion.x; + ctx->params3d.ye = evt.motion.y; + Params3d_rotate(&ctx->params3d); + break; + + case SDL_BUTTON_RIGHT + SDL_BUTTON_LEFT: /* <- WTF ? */ + // printf("right button motion @ %d %d\n", evt.motion.x, evt.motion.y); + set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + break; + + default: + break; + } + break; + + case SDL_MOUSEWHEEL: + if (evt.wheel.y > 0) { // scroll up + ctx->params3d.scale_factor /= SCALE_FACTOR_MULT; + } else if (evt.wheel.y < 0) { // scroll down + if (ctx->params3d.scale_factor > SCALE_FACTOR_MIN) { + ctx->params3d.scale_factor *= SCALE_FACTOR_MULT; + } + } + printf("[i] 3D scale factor: %.2f\n", ctx->params3d.scale_factor); + break; + + case SDL_MOUSEBUTTONDOWN: + /* printf("type= %d, button= %d\n", evt.button.type, evt.button.button); */ + switch (evt.button.button) { + case SDL_BUTTON_LEFT: + ctx->params3d.xs = evt.motion.x; + ctx->params3d.ys = evt.motion.y; + break; + + case SDL_BUTTON_RIGHT: + // printf("button down @ %d %d\n", evt.motion.x, evt.motion.y); + set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); + break; + + default: + break; + } break; default: break; - } - break; - - case SDL_MOUSEWHEEL: - if (evt.wheel.y > 0) { // scroll up - ctx->params3d.scale_factor /= SCALE_FACTOR_MULT; - } else if (evt.wheel.y < 0) { // scroll down - if (ctx->params3d.scale_factor > SCALE_FACTOR_MIN) - ctx->params3d.scale_factor *= SCALE_FACTOR_MULT; - } - printf("[i] 3D scale factor: %.2f\n", ctx->params3d.scale_factor); - break; - - case SDL_MOUSEBUTTONDOWN: - /* printf("type= %d, button= %d\n", evt.button.type, evt.button.button); */ - switch (evt.button.button) { - case SDL_BUTTON_LEFT: - ctx->params3d.xs = evt.motion.x; - ctx->params3d.ys = evt.motion.y; - break; - - case SDL_BUTTON_RIGHT: - // printf("button down @ %d %d\n", evt.motion.x, evt.motion.y); - set_pixel_nc(active_buffer(ctx), evt.motion.x, MAXY-evt.motion.y, 255); - break; - - default: - break; - } - break; - - default: - break; } } } @@ -235,7 +236,7 @@ dst[0] = dst[1] = dst[2] = *src; } SDL_Surface *surf = SDL_CreateRGBSurfaceWithFormatFrom((void *)target, WIDTH, HEIGHT, - depth, pitch, pixel_format); + depth, pitch, pixel_format); Buffer8_delete(pic); xfree(target); assert(surf != NULL); diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/ttf.c lebiniou-3.40/plugins/stable/output/SDL2/ttf.c --- lebiniou-3.32/plugins/stable/output/SDL2/ttf.c 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/ttf.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/plugins/stable/output/SDL2/ttf.h lebiniou-3.40/plugins/stable/output/SDL2/ttf.h --- lebiniou-3.32/plugins/stable/output/SDL2/ttf.h 2019-11-11 14:36:25.000000000 +0000 +++ lebiniou-3.40/plugins/stable/output/SDL2/ttf.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/README.md lebiniou-3.40/README.md --- lebiniou-3.32/README.md 2019-11-13 16:09:33.000000000 +0000 +++ lebiniou-3.40/README.md 2020-01-22 18:33:56.000000000 +0000 @@ -12,7 +12,7 @@ ```sh sudo apt-get -qq update - sudo apt-get -qq install autoconf pkg-config gcc make libglib2.0-dev libfftw3-dev libxml2-dev libfreetype6-dev libswscale-dev libsdl2-ttf-dev libcaca-dev libjack-dev pandoc libsndfile1-dev libmagickwand-dev + sudo apt-get -qq install autoconf pkg-config gcc make libglib2.0-dev libfftw3-dev libxml2-dev libfreetype6-dev libswscale-dev libsdl2-ttf-dev libcaca-dev libjack-dev pandoc libsndfile1-dev libmagickwand-dev libjansson-dev libulfius-dev ``` 2. Configure, compile and install diff -Nru lebiniou-3.32/src/alarm.c lebiniou-3.40/src/alarm.c --- lebiniou-3.32/src/alarm.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/alarm.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/alarm.h lebiniou-3.40/src/alarm.h --- lebiniou-3.32/src/alarm.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/alarm.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/biniou.c lebiniou-3.40/src/biniou.c --- lebiniou-3.32/src/biniou.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/biniou.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/biniou.h lebiniou-3.40/src/biniou.h --- lebiniou-3.32/src/biniou.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/biniou.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/brandom.c lebiniou-3.40/src/brandom.c --- lebiniou-3.32/src/brandom.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/brandom.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/brandom.h lebiniou-3.40/src/brandom.h --- lebiniou-3.32/src/brandom.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/brandom.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/btimer.c lebiniou-3.40/src/btimer.c --- lebiniou-3.32/src/btimer.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/btimer.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -54,6 +54,14 @@ } +void +b_timer_restart(BTimer_t *timer) +{ + b_timer_stop(timer); + b_timer_start(timer); +} + + float b_timer_elapsed(BTimer_t *timer) { diff -Nru lebiniou-3.32/src/btimer.h lebiniou-3.40/src/btimer.h --- lebiniou-3.32/src/btimer.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/btimer.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -33,6 +33,7 @@ void b_timer_delete(BTimer_t *); void b_timer_start(BTimer_t *); void b_timer_stop(BTimer_t *); +void b_timer_restart(BTimer_t *); float b_timer_elapsed(BTimer_t *); #endif /* __BINIOU_BTIMER_H */ diff -Nru lebiniou-3.32/src/buffer_8bits.c lebiniou-3.40/src/buffer_8bits.c --- lebiniou-3.32/src/buffer_8bits.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/buffer_8bits.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/buffer_8bits.h lebiniou-3.40/src/buffer_8bits.h --- lebiniou-3.32/src/buffer_8bits.h 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/buffer_8bits.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/buffer_RGBA.c lebiniou-3.40/src/buffer_RGBA.c --- lebiniou-3.32/src/buffer_RGBA.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/buffer_RGBA.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/buffer_RGBA.h lebiniou-3.40/src/buffer_RGBA.h --- lebiniou-3.32/src/buffer_RGBA.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/buffer_RGBA.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/bulfius_get.c lebiniou-3.40/src/bulfius_get.c --- lebiniou-3.32/src/bulfius_get.c 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/src/bulfius_get.c 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,100 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#include "bulfius.h" +#include "context.h" +#include "plugins.h" + + +int +callback_get_parameters(const struct _u_request *request, struct _u_response *response, void *user_data) +{ + const struct _u_map *u_map = request->map_url; + + if (u_map_has_key(u_map, "name")) { + Plugin_t *p = Plugins_find_by_name(u_map_get(u_map, "name")); + json_t *res = NULL; + + if (NULL != p) { + if (NULL != p->parameters) { + res = p->parameters(NULL); + if (u_map_has_key(u_map, "param")) { + const char *param_name = u_map_get(u_map, "param"); + json_t *new_res = NULL; + + json_t *param = json_object_get(res, param_name); + if (param != NULL) { + new_res = json_object(); + json_object_set(new_res, param_name, json_object_get(param, "value")); + + assert(NULL != new_res); + ulfius_set_json_body_response(response, 200, new_res); // value + json_decref(res); + res = new_res; + } else { + ulfius_set_string_body_response(response, 404, "Parameter not found"); + } + } else { + ulfius_set_json_body_response(response, 200, res); // all parameters + } + } else { + ulfius_set_json_body_response(response, 200, res); // no parameters + } + json_decref(res); + } else { + ulfius_set_string_body_response(response, 404, "Plugin not found"); + } + } else { + ulfius_set_string_body_response(response, 400, "Bad request"); + } + + return U_CALLBACK_COMPLETE; +} + + +int +callback_get_sequence(const struct _u_request *request, struct _u_response *response, void *user_data) +{ + const Context_t *ctx = user_data; + + assert(ctx != NULL); + json_t *payload = Sequence_to_json(ctx->sm->cur, 1); + ulfius_set_json_body_response(response, 200, payload); + json_decref(payload); + + return U_CALLBACK_COMPLETE; +} + + +int +callback_get_statistics(const struct _u_request *request, struct _u_response *response, void *user_data) +{ + const Context_t *ctx = user_data; + + assert(ctx != NULL); + json_t *payload = json_object(); + json_object_set_new(payload, "frames", json_integer(ctx->frames)); + if (NULL != ctx->input) { + json_object_set_new(payload, "volume", json_real(ctx->input->volume)); + } + ulfius_set_json_body_response(response, 200, payload); + json_decref(payload); + + return U_CALLBACK_COMPLETE; +} diff -Nru lebiniou-3.32/src/bulfius.h lebiniou-3.40/src/bulfius.h --- lebiniou-3.32/src/bulfius.h 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/src/bulfius.h 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#ifndef __BINIOU_ULFIUS_H +#define __BINIOU_ULFIUS_H + +#include + +#define ULFIUS_PORT 30543 // erlang:phash2("lebiniou", 64511) + 1024. + +#define BULFIUS_GET "GET" +#define BULFIUS_POST "POST" + +#define BULFIUS_PARAMETERS "/parameters" +#define BULFIUS_SEQUENCE "/sequence" +#define BULFIUS_STATISTICS "/statistics" + +// GET +int callback_get_parameters(const struct _u_request *, struct _u_response *, void *); +int callback_get_sequence(const struct _u_request *, struct _u_response *, void *); +int callback_get_statistics(const struct _u_request *, struct _u_response *, void *); + +// POST +int callback_post_parameters(const struct _u_request *, struct _u_response *, void *); + +#endif /* __BINIOU_ULFIUS_H */ diff -Nru lebiniou-3.32/src/bulfius_post.c lebiniou-3.40/src/bulfius_post.c --- lebiniou-3.32/src/bulfius_post.c 1970-01-01 00:00:00.000000000 +0000 +++ lebiniou-3.40/src/bulfius_post.c 2020-01-23 13:56:18.000000000 +0000 @@ -0,0 +1,101 @@ +/* + * Copyright 1994-2019 Olivier Girondel + * + * This file is part of lebiniou. + * + * lebiniou 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. + * + * lebiniou 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 lebiniou. If not, see . + */ + +#include "bulfius.h" +#include "context.h" +#include "plugins.h" + + +int +callback_post_parameters(const struct _u_request *request, struct _u_response *response, void *user_data) +{ + const struct _u_map *map_url = request->map_url; + + // check if we have a "?name=..." + if (u_map_has_key(map_url, "name")) { + Plugin_t *p = Plugins_find_by_name(u_map_get(map_url, "name")); + + if (NULL != p) { + if (NULL != p->parameters) { + // plugin exists and has parameters, get them + json_t *params = p->parameters(NULL); + json_error_t jerror; + // parse request body + json_t *body = ulfius_get_json_body_request(request, &jerror); + + if (NULL == body) { + // error + VERBOSE(printf("[!] %s: JSON error: %s\n", __FILE__, jerror.text)); + } else { + // iterate over json post body + const char *key; + json_t *value; + json_object_foreach(body, key, value) { + json_t *p = json_object_get(params, key); + if (NULL != p) { + // get old value, will be used for type checking + const json_t *old_value = json_object_get(p, "value"); + assert(NULL != old_value); + json_t *new_value = NULL; + + // convert new value to the right type + if (json_is_integer(old_value)) { + if (json_is_integer(value)) { + new_value = value; + } else { + new_value = json_integer(xatol(json_string_value(value))); + } + } else if (json_is_real(old_value)) { + if (json_is_real(value)) { + new_value = value; + } else if (json_is_integer(value)) { + new_value = json_real(json_integer_value(value)); + } else { + new_value = json_real(xatof(json_string_value(value))); + } + } else if (json_is_boolean(old_value)) { + if (json_is_boolean(value)) { + new_value = value; + } else { + new_value = (!strcmp("true", json_string_value(value))) ? json_true() : json_false(); + } + } else { + assert(json_is_string(old_value)); + new_value = value; + } + + assert(NULL != new_value); + // update new parameter and parameters object + // probable memory leak here + json_object_set(p, "value", new_value); + } + } + json_decref(p->parameters(params)); + } + ulfius_set_string_body_response(response, 204, NULL); + } else { + ulfius_set_string_body_response(response, 404, "Plugin not found"); + } + } + } else { + ulfius_set_string_body_response(response, 400, "Bad request"); + } + + return U_CALLBACK_COMPLETE; +} diff -Nru lebiniou-3.32/src/circle.c lebiniou-3.40/src/circle.c --- lebiniou-3.32/src/circle.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/circle.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/circle.h lebiniou-3.40/src/circle.h --- lebiniou-3.32/src/circle.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/circle.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/cmap_8bits.c lebiniou-3.40/src/cmap_8bits.c --- lebiniou-3.32/src/cmap_8bits.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/cmap_8bits.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/cmap_8bits.h lebiniou-3.40/src/cmap_8bits.h --- lebiniou-3.32/src/cmap_8bits.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/cmap_8bits.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/cmapfader.c lebiniou-3.40/src/cmapfader.c --- lebiniou-3.32/src/cmapfader.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/cmapfader.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/cmapfader_event.c lebiniou-3.40/src/cmapfader_event.c --- lebiniou-3.32/src/cmapfader_event.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/cmapfader_event.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -24,21 +24,21 @@ CmapFader_event(CmapFader_t *cf, const Event_t *e) { switch (e->cmd) { - case BC_SELECT: - if (e->arg0 == BA_PREV) { - CmapFader_prev(cf); - return 1; - } else if (e->arg0 == BA_NEXT) { - CmapFader_next(cf); - return 1; - } else if (e->arg0 == BA_RANDOM) { - CmapFader_random(cf); - return 1; - } - break; + case BC_SELECT: + if (e->arg0 == BA_PREV) { + CmapFader_prev(cf); + return 1; + } else if (e->arg0 == BA_NEXT) { + CmapFader_next(cf); + return 1; + } else if (e->arg0 == BA_RANDOM) { + CmapFader_random(cf); + return 1; + } + break; - default: - break; + default: + break; } return 0; diff -Nru lebiniou-3.32/src/cmapfader.h lebiniou-3.40/src/cmapfader.h --- lebiniou-3.32/src/cmapfader.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/cmapfader.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/cmdline.c lebiniou-3.40/src/cmdline.c --- lebiniou-3.32/src/cmdline.c 2019-11-22 18:27:27.000000000 +0000 +++ lebiniou-3.40/src/cmdline.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -134,176 +134,176 @@ while ((ch = getopt(argc, argv, "b:c:C:d:D:fhi:m:no:p:qr:St:x:X:y:Y:vW:z:")) != -1) #endif switch (ch) { - case 'b': - if (base_dir == NULL) { - base_dir = optarg; - } - break; - - case 'c': - /* re-read configuration file */ - set_configuration(optarg); - read_keyfile(); - break; + case 'b': + if (base_dir == NULL) { + base_dir = optarg; + } + break; + + case 'c': + /* re-read configuration file */ + set_configuration(optarg); + read_keyfile(); + break; #ifdef WITH_WEBCAM - case 'C': - if (*optarg == 'h') { - hflip=!hflip; - } - if (*optarg == 'v') { - vflip=!vflip; - } - break; -#endif - - case 'd': - if (data_dir == NULL) { - data_dir = optarg; - } - break; - - case 'z': - if (schemes_file == NULL) { - schemes_file = optarg; - } - break; - - case 'f': - fullscreen = 1; - break; - - case 'h': - usage(); - break; - - case 'n': - window_decorations = 0; - VERBOSE(printf("[c] Deactivate window decorations\n")); - break; - - case 'i': - if (NULL != input_plugin) { - xfree(input_plugin); - } - input_plugin = optarg; - VERBOSE(printf("[c] Setting input plugin: %s\n", input_plugin)); - break; - - case 'o': - if (NULL != output_plugin) { - xfree(output_plugin); - } - output_plugin = optarg; - VERBOSE(printf("[c] Setting output plugin: %s\n", output_plugin)); - break; - - case 'm': - max_fps = xatol(optarg); - if (max_fps > 0) { - VERBOSE(printf("[c] Maximum fps set to %li\n", max_fps)); - } else { - xerror("Invalid max_fps (%li)\n", max_fps); - } - break; - - case 'r': - random_mode = (enum RandomMode)xatol(optarg); - if (random_mode > BR_BOTH) { - xerror("Invalid random_mode (%d)\n", random_mode); - } else { - VERBOSE(printf("[c] Random mode set to %d\n", random_mode)); - } - break; - - case 't': - if (NULL != themes) { - xfree(themes); - } - themes = strdup(optarg); - VERBOSE(printf("[c] Using themes: %s\n", themes)); - break; - - case 'v': - printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); - exit(0); - break; - - case 'q': - libbiniou_verbose = 0; - break; + case 'C': + if (*optarg == 'h') { + hflip=!hflip; + } + if (*optarg == 'v') { + vflip=!vflip; + } + break; +#endif + + case 'd': + if (data_dir == NULL) { + data_dir = optarg; + } + break; + + case 'z': + if (schemes_file == NULL) { + schemes_file = optarg; + } + break; + + case 'f': + fullscreen = 1; + break; + + case 'h': + usage(); + break; + + case 'n': + window_decorations = 0; + VERBOSE(printf("[c] Deactivate window decorations\n")); + break; + + case 'i': + if (NULL != input_plugin) { + xfree(input_plugin); + } + input_plugin = optarg; + VERBOSE(printf("[c] Setting input plugin: %s\n", input_plugin)); + break; + + case 'o': + if (NULL != output_plugin) { + xfree(output_plugin); + } + output_plugin = optarg; + VERBOSE(printf("[c] Setting output plugin: %s\n", output_plugin)); + break; + + case 'm': + max_fps = xatol(optarg); + if (max_fps > 0) { + VERBOSE(printf("[c] Maximum fps set to %li\n", max_fps)); + } else { + xerror("Invalid max_fps (%li)\n", max_fps); + } + break; + + case 'r': + random_mode = (enum RandomMode)xatol(optarg); + if (random_mode > BR_BOTH) { + xerror("Invalid random_mode (%d)\n", random_mode); + } else { + VERBOSE(printf("[c] Random mode set to %d\n", random_mode)); + } + break; + + case 't': + if (NULL != themes) { + xfree(themes); + } + themes = strdup(optarg); + VERBOSE(printf("[c] Using themes: %s\n", themes)); + break; + + case 'v': + printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); + exit(0); + break; + + case 'q': + libbiniou_verbose = 0; + break; - case 'x': + case 'x': #ifndef FIXED - w = xatol(optarg); - if (w >= MIN_WIDTH) { - width = w; - VERBOSE(printf("[c] Width set to %i\n", width)); - } else { - xerror("Invalid width: %d (min: %d)\n", w, MIN_WIDTH); - } + w = xatol(optarg); + if (w >= MIN_WIDTH) { + width = w; + VERBOSE(printf("[c] Width set to %i\n", width)); + } else { + xerror("Invalid width: %d (min: %d)\n", w, MIN_WIDTH); + } #else - VERBOSE(fprintf(stderr, "[!] Compiled with fixed buffers, ignoring width= %li\n", xatol(optarg))); + VERBOSE(fprintf(stderr, "[!] Compiled with fixed buffers, ignoring width= %li\n", xatol(optarg))); #endif - break; + break; - case 'X': - x_origin = xatol(optarg); - VERBOSE(printf("[c] X origin set to %i\n", x_origin)); - break; + case 'X': + x_origin = xatol(optarg); + VERBOSE(printf("[c] X origin set to %i\n", x_origin)); + break; - case 'y': + case 'y': #ifndef FIXED - h = xatol(optarg); - if (h >= MIN_HEIGHT) { - height = h; - VERBOSE(printf("[c] Height set to %i\n", height)); - } else { - xerror("Invalid height: %d (min: %d)\n", h, MIN_HEIGHT); - } + h = xatol(optarg); + if (h >= MIN_HEIGHT) { + height = h; + VERBOSE(printf("[c] Height set to %i\n", height)); + } else { + xerror("Invalid height: %d (min: %d)\n", h, MIN_HEIGHT); + } #else - VERBOSE(fprintf(stderr, "[!] Compiled with fixed buffers, ignoring height= %li\n", xatol(optarg))); + VERBOSE(fprintf(stderr, "[!] Compiled with fixed buffers, ignoring height= %li\n", xatol(optarg))); #endif - break; + break; - case 'Y': - y_origin = xatol(optarg); - VERBOSE(printf("[c] Y origin set to %i\n", y_origin)); - break; - - case 'p': - if (pid_file == NULL) { - pid_file = optarg; - } - break; + case 'Y': + y_origin = xatol(optarg); + VERBOSE(printf("[c] Y origin set to %i\n", y_origin)); + break; + + case 'p': + if (pid_file == NULL) { + pid_file = optarg; + } + break; #ifdef WITH_WEBCAM - case 'W': /* webcams */ - webcams = xatol(optarg); - if ((webcams >= 0) && (webcams <= MAX_CAMS)) { - VERBOSE(printf("[c] webcam: grabbing %d device%s\n", webcams, (webcams == 1 ? "": "s"))); - } else { - webcams = 1; - } - break; - - case 'D': /* video_base */ - if (NULL != video_base) { - xfree(video_base); - } - video_base = strdup(optarg); - VERBOSE(printf("[c] webcam: first device is %s\n", video_base)); - break; -#endif - - case 'S': - libbiniou_verbose = 0; - statistics = 1; - break; - - default: - usage(); - break; + case 'W': /* webcams */ + webcams = xatol(optarg); + if ((webcams >= 0) && (webcams <= MAX_CAMS)) { + VERBOSE(printf("[c] webcam: grabbing %d device%s\n", webcams, (webcams == 1 ? "": "s"))); + } else { + webcams = 1; + } + break; + + case 'D': /* video_base */ + if (NULL != video_base) { + xfree(video_base); + } + video_base = strdup(optarg); + VERBOSE(printf("[c] webcam: first device is %s\n", video_base)); + break; +#endif + + case 'S': + libbiniou_verbose = 0; + statistics = 1; + break; + + default: + usage(); + break; } if (NULL == base_dir) { diff -Nru lebiniou-3.32/src/colormaps.c lebiniou-3.40/src/colormaps.c --- lebiniou-3.32/src/colormaps.c 2019-11-03 15:03:27.000000000 +0000 +++ lebiniou-3.40/src/colormaps.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/colormaps.h lebiniou-3.40/src/colormaps.h --- lebiniou-3.32/src/colormaps.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/colormaps.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/constants.h lebiniou-3.40/src/constants.h --- lebiniou-3.32/src/constants.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/constants.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/context_banks.c lebiniou-3.40/src/context_banks.c --- lebiniou-3.32/src/context_banks.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/context_banks.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/context.c lebiniou-3.40/src/context.c --- lebiniou-3.32/src/context.c 2019-11-27 16:53:07.000000000 +0000 +++ lebiniou-3.40/src/context.c 2020-01-23 13:56:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -54,7 +54,6 @@ #define MAX_TRIES 5 - static void Context_open_webcam(Context_t *ctx) { @@ -380,6 +379,12 @@ if (p->on_switch_on != NULL) { p->on_switch_on(ctx); } + + if (p->parameters != NULL) { + /* Todo: check and use returned parameters ? */ + json_decref(p->parameters(layer->plugin_parameters)); + } + tmp = g_list_next(tmp); } @@ -809,3 +814,38 @@ *d = buffs[*random]->buffer[i]; } } + + +/* ulfius */ +#ifdef WITH_ULFIUS +void +Context_start_ulfius(Context_t *ctx) +{ + // Initialize instance with the port number + if (ulfius_init_instance(&ctx->instance, ULFIUS_PORT, NULL, NULL) != U_OK) { + xerror("ulfius_init_instance error, abort\n"); + } + + // Endpoint list declaration + // GET + ulfius_add_endpoint_by_val(&ctx->instance, BULFIUS_GET, NULL, BULFIUS_PARAMETERS, 0, &callback_get_parameters, NULL); + ulfius_add_endpoint_by_val(&ctx->instance, BULFIUS_GET, NULL, BULFIUS_SEQUENCE, 0, &callback_get_sequence, ctx); + ulfius_add_endpoint_by_val(&ctx->instance, BULFIUS_GET, NULL, BULFIUS_STATISTICS, 0, &callback_get_statistics, ctx); + // POST + ulfius_add_endpoint_by_val(&ctx->instance, BULFIUS_POST, NULL, BULFIUS_PARAMETERS, 0, &callback_post_parameters, NULL); + + // Start the framework + if (ulfius_start_framework(&ctx->instance) == U_OK) { + VERBOSE(printf("[i] Started ulfius framework on port %d\n", ctx->instance.port)); + } else { + xerror("Error starting ulfius framework\n"); + } +} + + +void Context_stop_ulfius(Context_t *ctx) +{ + ulfius_stop_framework(&ctx->instance); + ulfius_clean_instance(&ctx->instance); +} +#endif diff -Nru lebiniou-3.32/src/context_event.c lebiniou-3.40/src/context_event.c --- lebiniou-3.32/src/context_event.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/context_event.c 2020-01-22 18:34:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -35,35 +35,35 @@ { /* find out the recipient */ switch (e->to) { - case BT_NONE: - break; + case BT_NONE: + break; + + case BT_IMAGEFADER: + if (ImageFader_event(ctx->imgf, e)) { + Sequence_changed(ctx->sm->cur); + } + break; + + case BT_CMAPFADER: + if (CmapFader_event(ctx->cf, e)) { + Sequence_changed(ctx->sm->cur); + } + break; - case BT_IMAGEFADER: - if (ImageFader_event(ctx->imgf, e)) { - Sequence_changed(ctx->sm->cur); - } - break; - - case BT_CMAPFADER: - if (CmapFader_event(ctx->cf, e)) { - Sequence_changed(ctx->sm->cur); - } - break; - - case BT_CONTEXT: - (void)Context_event(ctx, e); - break; - - case BT_SEQMGR: - (void)SequenceManager_event(ctx->sm, e, ctx->auto_colormaps, ctx->auto_images); - break; - - case BT_PLUGINS: - (void)Plugins_event(plugins, e); - break; + case BT_CONTEXT: + (void)Context_event(ctx, e); + break; + + case BT_SEQMGR: + (void)SequenceManager_event(ctx->sm, e, ctx->auto_colormaps, ctx->auto_images); + break; + + case BT_PLUGINS: + (void)Plugins_event(plugins, e); + break; - default: - break; + default: + break; } ctx->nb_events++; @@ -110,413 +110,413 @@ uint8_t span; // spline span size switch (e->cmd) { - case BC_QUIT: - if (e->arg0 == BA_SAVE) - Sequence_save(ctx->sm->cur, 0, SequenceManager_is_transient(ctx->sm, ctx->sm->cur), - TRUE, ctx->auto_colormaps, ctx->auto_images); - ctx->running = 0; - return 1; - - case BC_SAVE: - if (e->arg0 == BA_SCREENSHOT) { - ctx->take_screenshot = 1; + case BC_QUIT: + if (e->arg0 == BA_SAVE) + Sequence_save(ctx->sm->cur, 0, SequenceManager_is_transient(ctx->sm, ctx->sm->cur), + TRUE, ctx->auto_colormaps, ctx->auto_images); + ctx->running = 0; return 1; - } else { - return 0; - } - - case BC_SWITCH: - switch (e->arg0) { - case BA_SELECTED: - if (Sequence_find(ctx->sm->cur, plugins->selected) != NULL) { - Context_remove_plugin(ctx, plugins->selected); - } else { - if (g_list_length(ctx->sm->cur->layers) < MAX_SEQ_LEN) { - Context_insert_plugin(ctx, plugins->selected); - } - } - return 1; - - case BA_FULLSCREEN: - ctx->fullscreen = !ctx->fullscreen; - printf("[S] Full-screen %s\n", ctx->fullscreen ? "off" : "on"); - - for ( ; outputs != NULL; outputs = g_slist_next(outputs)) { - Plugin_t *output = (Plugin_t *)outputs->data; - - if (output->fullscreen != NULL) { - output->fullscreen(ctx->fullscreen); - } - } - return 1; - - case BA_CURSOR: - for ( ; outputs != NULL; outputs = g_slist_next(outputs)) { - Plugin_t *output = (Plugin_t *)outputs->data; - if (output->switch_cursor != NULL) { - output->switch_cursor(); - } - } - return 1; - - case BA_COLORMAPS: - if ((colormaps != NULL) && (colormaps->size > 1)) { - ctx->sm->cur->auto_colormaps = ctx->auto_colormaps = !ctx->auto_colormaps; - Sequence_changed(ctx->sm->cur); - Context_update_auto(ctx); + case BC_SAVE: + if (e->arg0 == BA_SCREENSHOT) { + ctx->take_screenshot = 1; return 1; } else { return 0; } - case BA_IMAGES: - if ((images != NULL) && (images->size > 1)) { - ctx->sm->cur->auto_images = ctx->auto_images = !ctx->auto_images; - Sequence_changed(ctx->sm->cur); - Context_update_auto(ctx); - return 1; - } else { - return 0; - } + case BC_SWITCH: + switch (e->arg0) { + case BA_SELECTED: + if (Sequence_find(ctx->sm->cur, plugins->selected) != NULL) { + Context_remove_plugin(ctx, plugins->selected); + } else { + if (g_list_length(ctx->sm->cur->layers) < MAX_SEQ_LEN) { + Context_insert_plugin(ctx, plugins->selected); + } + } + return 1; + + case BA_FULLSCREEN: + ctx->fullscreen = !ctx->fullscreen; + printf("[S] Full-screen %s\n", ctx->fullscreen ? "off" : "on"); + + for ( ; outputs != NULL; outputs = g_slist_next(outputs)) { + Plugin_t *output = (Plugin_t *)outputs->data; + + if (output->fullscreen != NULL) { + output->fullscreen(ctx->fullscreen); + } + } + return 1; + + case BA_CURSOR: + for ( ; outputs != NULL; outputs = g_slist_next(outputs)) { + Plugin_t *output = (Plugin_t *)outputs->data; + + if (output->switch_cursor != NULL) { + output->switch_cursor(); + } + } + return 1; + + case BA_COLORMAPS: + if ((colormaps != NULL) && (colormaps->size > 1)) { + ctx->sm->cur->auto_colormaps = ctx->auto_colormaps = !ctx->auto_colormaps; + Sequence_changed(ctx->sm->cur); + Context_update_auto(ctx); + return 1; + } else { + return 0; + } + + case BA_IMAGES: + if ((images != NULL) && (images->size > 1)) { + ctx->sm->cur->auto_images = ctx->auto_images = !ctx->auto_images; + Sequence_changed(ctx->sm->cur); + Context_update_auto(ctx); + return 1; + } else { + return 0; + } + + case BA_OSD_CMAP: + ctx->display_colormap = 1 - ctx->display_colormap; + return 1; + + case BA_ROTATIONS: + if (Params3d_is_rotating(&ctx->params3d)) { + zero_3d(&ctx->params3d); + } else { + /* By default, rotate around the Y axis */ + ctx->params3d.rotate_factor[X_AXIS] = 0; + ctx->params3d.rotate_factor[Y_AXIS] = 1; + ctx->params3d.rotate_factor[Z_AXIS] = 0; + } + return 1; + + case BA_BYPASS: + ctx->bypass = !ctx->bypass; + return 1; - case BA_OSD_CMAP: - ctx->display_colormap = 1 - ctx->display_colormap; - return 1; +#ifdef WITH_GL + case BA_PULSE: + ctx->pulse_3d = !ctx->pulse_3d; + return 1; + + case BA_BOUNDARY: + ctx->force_cube = !ctx->force_cube; + return 1; +#endif - case BA_ROTATIONS: - if (Params3d_is_rotating(&ctx->params3d)) { - zero_3d(&ctx->params3d); - } else { - /* By default, rotate around the Y axis */ - ctx->params3d.rotate_factor[X_AXIS] = 0; - ctx->params3d.rotate_factor[Y_AXIS] = 1; - ctx->params3d.rotate_factor[Z_AXIS] = 0; + case BA_MUTE: + Input_toggle_mute(ctx->input); + return 1; + + default: + return 0; + } + + case BC_PREV: + switch (e->arg0) { + case BA_SEQUENCE: + Context_previous_sequence(ctx); + return 1; + + case BA_RANDOM: + if (ctx->random_mode == BR_NONE) { + ctx->random_mode = BR_BOTH; + } else { + --ctx->random_mode; + } + + if (ctx->random_mode == BR_SCHEMES) { + if ((schemes == NULL) || (!Shuffler_ok(schemes->shuffler))) { + printf("[i] Skipping random schemes since there are no schemes available\n"); + ctx->random_mode = BR_SEQUENCES; + } else { + Schemes_random(ctx); + Alarm_init(ctx->a_random); + } + } + + if (ctx->random_mode == BR_SEQUENCES) { + if ((sequences->seqs == NULL) || !g_list_length(sequences->seqs)) { + printf("[i] Skipping random sequences since there are no sequences available\n"); + ctx->random_mode = BR_NONE; + } else { + Context_random_sequence(ctx); + Alarm_init(ctx->a_random); + } + } + + Context_display_random(ctx); + return 1; + + case BA_DELAY: + if ((delay = Context_get_phase_space_delay(ctx)) > 1) { + Context_set_phase_space_delay(ctx, --delay); + printf("[i] Phase-space delay: %d\n", delay); + } + return 1; + + case BA_SPAN: + if ((span = Context_get_span_size(ctx)) > 1) { + Context_set_span_size(ctx, --span); + printf("[i] Spline span size: %d\n", span); + } + return 1; + + default: + return 0; } - return 1; + break; - case BA_BYPASS: - ctx->bypass = !ctx->bypass; - return 1; + case BC_NEXT: + switch (e->arg0) { + case BA_BOUNDARY: + ctx->params3d.draw_boundary = (ctx->params3d.draw_boundary+1) % 4; + return 1; + + case BA_SEQUENCE: + Context_next_sequence(ctx); + return 1; + + case BA_RANDOM: + ctx->random_mode = (enum RandomMode)((ctx->random_mode+1) % sizeof(RandomMode_e)); + + if (ctx->random_mode == BR_SEQUENCES) { + if ((sequences->seqs == NULL) || !g_list_length(sequences->seqs)) { + printf("[i] Skipping random sequences since there are no sequences available\n"); + ctx->random_mode = BR_SCHEMES; + } else { + Context_random_sequence(ctx); + Alarm_init(ctx->a_random); + } + } + + if (ctx->random_mode == BR_SCHEMES) { + if ((schemes == NULL) || (!Shuffler_ok(schemes->shuffler))) { + printf("[i] Skipping random schemes since there are no schemes available\n"); + ctx->random_mode = BR_BOTH; + } else { + Schemes_random(ctx); + Alarm_init(ctx->a_random); + } + } -#ifdef WITH_GL - case BA_PULSE: - ctx->pulse_3d = !ctx->pulse_3d; - return 1; + Context_display_random(ctx); + return 1; - case BA_BOUNDARY: - ctx->force_cube = !ctx->force_cube; - return 1; +#ifdef WITH_WEBCAM + case BA_WEBCAM: + if (ctx->webcams) { + ctx->cam = (ctx->cam + 1) % ctx->webcams; + } else { + printf("[i] No webcams in use\n"); + } + return 1; #endif - case BA_MUTE: - Input_toggle_mute(ctx->input); - return 1; - - default: - return 0; - } + case BA_DELAY: + if ((delay = Context_get_phase_space_delay(ctx)) < 255) { + Context_set_phase_space_delay(ctx, ++delay); + printf("[i] Phase-space delay: %d\n", delay); + } + return 1; + + case BA_SPAN: + if ((span = Context_get_span_size(ctx)) < 50) { + Context_set_span_size(ctx, ++span); + printf("[i] Spline span size: %d\n", span); + } + return 1; - case BC_PREV: - switch (e->arg0) { - case BA_SEQUENCE: - Context_previous_sequence(ctx); - return 1; - - case BA_RANDOM: - if (ctx->random_mode == BR_NONE) { - ctx->random_mode = BR_BOTH; - } else { - --ctx->random_mode; + default: + return 0; } + break; - if (ctx->random_mode == BR_SCHEMES) { - if ((schemes == NULL) || (!Shuffler_ok(schemes->shuffler))) { - printf("[i] Skipping random schemes since there are no schemes available\n"); - ctx->random_mode = BR_SEQUENCES; - } else { - Schemes_random(ctx); - Alarm_init(ctx->a_random); - } + case BC_RANDOM: + switch (e->arg0) { + case BA_SEQUENCE: + assert(sequences != NULL); + + if (sequences->size > 1) { + Context_random_sequence(ctx); + Alarm_init(ctx->a_random); + } + return 1; + + case BA_SCHEME: + if ((schemes != NULL) && (schemes->size > 1)) { + Schemes_random(ctx); + Alarm_init(ctx->a_random); + } + return 1; + + case BA_ROTATIONS: + printf("[i] Randomizing rotations\n"); + Params3d_randomize(&ctx->params3d); + return 1; + + default: + return 0; } + break; - if (ctx->random_mode == BR_SEQUENCES) { - if ((sequences->seqs == NULL) || !g_list_length(sequences->seqs)) { - printf("[i] Skipping random sequences since there are no sequences available\n"); + case BC_RESET: + switch (e->arg0) { + case BA_RANDOM: + Buffer8_randomize(active_buffer(ctx)); + return 1; + + case BA_SEQUENCE: + Buffer8_clear(active_buffer(ctx)); + return 1; + + case BA_NONE: + printf("[!] *** EMERGENCY STOP *** button pressed !!!\n"); + /* Emergency stop, all auto_* modes -> disabled */ + ctx->auto_colormaps = ctx->auto_images = 0; + ctx->sm->cur->auto_colormaps = ctx->sm->cur->auto_images = -1; + Context_update_auto(ctx); + Sequence_changed(ctx->sm->cur); ctx->random_mode = BR_NONE; - } else { - Context_random_sequence(ctx); - Alarm_init(ctx->a_random); + ctx->locked = NULL; + + /* Stop and reset 3D rotations, remove boundary */ + zero_3d(&ctx->params3d); + ctx->params3d.draw_boundary = 0; + return 1; + + default: + return 0; + } + + case BC_USE_BANK: + switch (ctx->bank_mode) { + case SEQUENCES: + Context_use_sequence_bank(ctx, e->arg0); + return 1; + + case COLORMAPS: { + uint32_t id = ctx->banks[COLORMAPS][ctx->bankset[COLORMAPS]][e->arg0]; + if (id) { + printf("[i] Using colormap in bank #%d\n", (e->arg0+1)); + ctx->sm->next->cmap_id = id; + ctx->bank[COLORMAPS] = e->arg0; + Context_set_colormap(ctx); + } } - } + return 1; - Context_display_random(ctx); - return 1; + case IMAGES: { + uint32_t id = ctx->banks[IMAGES][ctx->bankset[IMAGES]][e->arg0]; + if (id) { + printf("[i] Using image in bank #%d\n", (e->arg0+1)); + ctx->sm->next->image_id = id; + ctx->bank[IMAGES] = e->arg0; + Context_set_image(ctx); + } + } + return 1; - case BA_DELAY: - if ((delay = Context_get_phase_space_delay(ctx)) > 1) { - Context_set_phase_space_delay(ctx, --delay); - printf("[i] Phase-space delay: %d\n", delay); + default: + return 0; } - return 1; - case BA_SPAN: - if ((span = Context_get_span_size(ctx)) > 1) { - Context_set_span_size(ctx, --span); - printf("[i] Spline span size: %d\n", span); - } + case BC_CLEAR_BANK: + printf("[i] Clear sequence/colormap/image in bank #%d\n", (e->arg0+1)); + Context_clear_bank(ctx, e->arg0); return 1; - default: - return 0; - } - break; - - case BC_NEXT: - switch (e->arg0) { - case BA_BOUNDARY: - ctx->params3d.draw_boundary = (ctx->params3d.draw_boundary+1) % 4; - return 1; - - case BA_SEQUENCE: - Context_next_sequence(ctx); - return 1; - - case BA_RANDOM: - ctx->random_mode = (enum RandomMode)((ctx->random_mode+1) % sizeof(RandomMode_e)); - - if (ctx->random_mode == BR_SEQUENCES) { - if ((sequences->seqs == NULL) || !g_list_length(sequences->seqs)) { - printf("[i] Skipping random sequences since there are no sequences available\n"); - ctx->random_mode = BR_SCHEMES; - } else { - Context_random_sequence(ctx); - Alarm_init(ctx->a_random); - } + case BC_RELOAD: + if (e->arg0 == BA_SEQUENCE) { + Context_latest_sequence(ctx); + return 1; + } else { + return 0; } - if (ctx->random_mode == BR_SCHEMES) { - if ((schemes == NULL) || (!Shuffler_ok(schemes->shuffler))) { - printf("[i] Skipping random schemes since there are no schemes available\n"); - ctx->random_mode = BR_BOTH; +#ifdef WITH_WEBCAM + case BC_SET: + if (e->arg0 == BA_WEBCAM) { + if (ctx->webcams) { + pthread_mutex_lock(&ctx->cam_mtx[ctx->cam]); + Buffer8_copy(ctx->cam_save[ctx->cam][0], ctx->cam_ref[ctx->cam]); + pthread_mutex_unlock(&ctx->cam_mtx[ctx->cam]); } else { - Schemes_random(ctx); - Alarm_init(ctx->a_random); + printf("[i] No webcams in use\n"); } - } - - Context_display_random(ctx); - return 1; - -#ifdef WITH_WEBCAM - case BA_WEBCAM: - if (ctx->webcams) { - ctx->cam = (ctx->cam + 1) % ctx->webcams; + return 1; } else { - printf("[i] No webcams in use\n"); + return 0; } - return 1; #endif - case BA_DELAY: - if ((delay = Context_get_phase_space_delay(ctx)) < 255) { - Context_set_phase_space_delay(ctx, ++delay); - printf("[i] Phase-space delay: %d\n", delay); - } - return 1; - - case BA_SPAN: - if ((span = Context_get_span_size(ctx)) < 50) { - Context_set_span_size(ctx, ++span); - printf("[i] Spline span size: %d\n", span); - } - return 1; - - default: - return 0; - } - break; - - case BC_RANDOM: - switch (e->arg0) { - case BA_SEQUENCE: - assert(sequences != NULL); - - if (sequences->size > 1) { - Context_random_sequence(ctx); - Alarm_init(ctx->a_random); - } - return 1; - - case BA_SCHEME: - if ((schemes != NULL) && (schemes->size > 1)) { - Schemes_random(ctx); - Alarm_init(ctx->a_random); - } - return 1; - - case BA_ROTATIONS: - printf("[i] Randomizing rotations\n"); - Params3d_randomize(&ctx->params3d); - return 1; - - default: - return 0; - } - break; - - case BC_RESET: - switch (e->arg0) { - case BA_RANDOM: - Buffer8_randomize(active_buffer(ctx)); - return 1; - - case BA_SEQUENCE: - Buffer8_clear(active_buffer(ctx)); - return 1; - - case BA_NONE: - printf("[!] *** EMERGENCY STOP *** button pressed !!!\n"); - /* Emergency stop, all auto_* modes -> disabled */ - ctx->auto_colormaps = ctx->auto_images = 0; - ctx->sm->cur->auto_colormaps = ctx->sm->cur->auto_images = -1; - Context_update_auto(ctx); - Sequence_changed(ctx->sm->cur); - ctx->random_mode = BR_NONE; - ctx->locked = NULL; - - /* Stop and reset 3D rotations, remove boundary */ - zero_3d(&ctx->params3d); - ctx->params3d.draw_boundary = 0; - return 1; - - default: - return 0; - } - - case BC_USE_BANK: - switch (ctx->bank_mode) { - case SEQUENCES: - Context_use_sequence_bank(ctx, e->arg0); - return 1; - - case COLORMAPS: { - uint32_t id = ctx->banks[COLORMAPS][ctx->bankset[COLORMAPS]][e->arg0]; - if (id) { - printf("[i] Using colormap in bank #%d\n", (e->arg0+1)); - ctx->sm->next->cmap_id = id; - ctx->bank[COLORMAPS] = e->arg0; - Context_set_colormap(ctx); - } - } - return 1; - - case IMAGES: { - uint32_t id = ctx->banks[IMAGES][ctx->bankset[IMAGES]][e->arg0]; - if (id) { - printf("[i] Using image in bank #%d\n", (e->arg0+1)); - ctx->sm->next->image_id = id; - ctx->bank[IMAGES] = e->arg0; - Context_set_image(ctx); + case BC_STORE_BANK: + printf("[i] Storing sequence/colormap/image in bank #%d\n", e->arg0+1); + Context_store_bank(ctx, e->arg0); + return 1; + + case BC_USE_BANKSET: + printf("[i] Using bankset %d\n", (e->arg0+1)); + Context_use_bankset(ctx, e->arg0); + return 1; + + case BC_SAVE_BANKS: + printf("[i] Writing banks file\n"); + Context_save_banks(ctx); + return 1; + + case BC_SET_BANKMODE: + printf("[i] Set bank mode to "); + switch (e->arg0) { + case SEQUENCES: + printf("sequences"); + break; + case COLORMAPS: + printf("colormaps"); + break; + case IMAGES: + printf("images"); + break; + default: + xerror("Invalid bank mode %d\n", e->arg0); + break; + } + printf("\n"); + ctx->bank_mode = e->arg0; + return 1; + + case BC_LOCK: + if (e->arg0 == BA_SELECTED) { + if (ctx->locked != plugins->selected) { + ctx->locked = plugins->selected; + printf("[i] Lock plugin '%s' (%s)\n", ctx->locked->name, plugins->selected->dname); + } else { + printf("[i] Unlock plugin '%s' (%s)\n", ctx->locked->name, plugins->selected->dname); + ctx->locked = NULL; + } + return 1; + } else { + return 0; } - } - return 1; - - default: - return 0; - } - case BC_CLEAR_BANK: - printf("[i] Clear sequence/colormap/image in bank #%d\n", (e->arg0+1)); - Context_clear_bank(ctx, e->arg0); - return 1; - - case BC_RELOAD: - if (e->arg0 == BA_SEQUENCE) { - Context_latest_sequence(ctx); - return 1; - } else { - return 0; - } - -#ifdef WITH_WEBCAM - case BC_SET: - if (e->arg0 == BA_WEBCAM) { - if (ctx->webcams) { - pthread_mutex_lock(&ctx->cam_mtx[ctx->cam]); - Buffer8_copy(ctx->cam_save[ctx->cam][0], ctx->cam_ref[ctx->cam]); - pthread_mutex_unlock(&ctx->cam_mtx[ctx->cam]); + case BC_VOLUME_SCALE: + if (e->arg0 == BA_UP) { + Input_volume_upscale(ctx->input); + return 1; + } else if (e->arg0 == BA_DOWN) { + Input_volume_downscale(ctx->input); + return 1; } else { - printf("[i] No webcams in use\n"); + return 0; } - return 1; - } else { - return 0; - } -#endif - case BC_STORE_BANK: - printf("[i] Storing sequence/colormap/image in bank #%d\n", e->arg0+1); - Context_store_bank(ctx, e->arg0); - return 1; - - case BC_USE_BANKSET: - printf("[i] Using bankset %d\n", (e->arg0+1)); - Context_use_bankset(ctx, e->arg0); - return 1; - - case BC_SAVE_BANKS: - printf("[i] Writing banks file\n"); - Context_save_banks(ctx); - return 1; - - case BC_SET_BANKMODE: - printf("[i] Set bank mode to "); - switch (e->arg0) { - case SEQUENCES: - printf("sequences"); - break; - case COLORMAPS: - printf("colormaps"); - break; - case IMAGES: - printf("images"); - break; default: - xerror("Invalid bank mode %d\n", e->arg0); break; - } - printf("\n"); - ctx->bank_mode = e->arg0; - return 1; - - case BC_LOCK: - if (e->arg0 == BA_SELECTED) { - if (ctx->locked != plugins->selected) { - ctx->locked = plugins->selected; - printf("[i] Lock plugin '%s' (%s)\n", ctx->locked->name, plugins->selected->dname); - } else { - printf("[i] Unlock plugin '%s' (%s)\n", ctx->locked->name, plugins->selected->dname); - ctx->locked = NULL; - } - return 1; - } else { - return 0; - } - - case BC_VOLUME_SCALE: - if (e->arg0 == BA_UP) { - Input_volume_upscale(ctx->input); - return 1; - } else if (e->arg0 == BA_DOWN) { - Input_volume_downscale(ctx->input); - return 1; - } else { - return 0; - } - - default: - break; } return 0; diff -Nru lebiniou-3.32/src/context_export.c lebiniou-3.40/src/context_export.c --- lebiniou-3.32/src/context_export.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/context_export.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/context_gl.c lebiniou-3.40/src/context_gl.c --- lebiniou-3.32/src/context_gl.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/context_gl.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/context.h lebiniou-3.40/src/context.h --- lebiniou-3.32/src/context.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/context.h 2020-01-23 13:56:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -32,6 +32,9 @@ #include "alarm.h" #include "brandom.h" #include "buffer_RGBA.h" +#ifdef WITH_ULFIUS +#include "bulfius.h" +#endif #define NFPS 25 /* to get mean fps */ @@ -166,6 +169,11 @@ /* used to randomly mix buffers */ Buffer8_t *random; + + /* ulfius */ +#ifdef WITH_ULFIUS + struct _u_instance instance; +#endif } Context_t; @@ -282,4 +290,9 @@ void Context_mix_buffers(const Context_t *, Buffer8_t *[2]); +#ifdef WITH_ULFIUS +void Context_start_ulfius(Context_t *); +void Context_stop_ulfius(Context_t *); +#endif + #endif /* __BINIOU_CONTEXT_H */ diff -Nru lebiniou-3.32/src/context_run.c lebiniou-3.40/src/context_run.c --- lebiniou-3.32/src/context_run.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/context_run.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -34,20 +34,20 @@ Context_boundary(Context_t *ctx) { switch (ctx->params3d.draw_boundary) { - case 1: - draw_cube_3d(&ctx->params3d, active_buffer(ctx), 250); - break; - - case 2: - draw_sphere_3d(&ctx->params3d, active_buffer(ctx), 250); - break; - - case 3: - draw_sphere_wireframe_3d(&ctx->params3d, active_buffer(ctx), 250); - break; + case 1: + draw_cube_3d(&ctx->params3d, active_buffer(ctx), 250); + break; + + case 2: + draw_sphere_3d(&ctx->params3d, active_buffer(ctx), 250); + break; + + case 3: + draw_sphere_wireframe_3d(&ctx->params3d, active_buffer(ctx), 250); + break; - default: - break; + default: + break; } } @@ -101,34 +101,34 @@ } switch (layer->mode) { - case NONE: - break; - - case NORMAL: - swap_buffers(ctx); - break; + case NONE: + break; - case OVERLAY: - Buffer8_overlay(active_buffer(ctx), passive_buffer(ctx)); - break; - - case XOR: - Buffer8_XOR(active_buffer(ctx), passive_buffer(ctx)); - break; - - case AVERAGE: - Buffer8_average(active_buffer(ctx), passive_buffer(ctx)); + case NORMAL: + swap_buffers(ctx); + break; + + case OVERLAY: + Buffer8_overlay(active_buffer(ctx), passive_buffer(ctx)); + break; + + case XOR: + Buffer8_XOR(active_buffer(ctx), passive_buffer(ctx)); + break; + + case AVERAGE: + Buffer8_average(active_buffer(ctx), passive_buffer(ctx)); + break; + + case RANDOM: { + Buffer8_t *buffs[2] = { active_buffer(ctx), passive_buffer(ctx) }; + Context_mix_buffers(ctx, buffs); + } break; - case RANDOM: { - Buffer8_t *buffs[2] = { active_buffer(ctx), passive_buffer(ctx) }; - Context_mix_buffers(ctx, buffs); - } - break; - - default: - xerror("Unsupported layer mode %d\n", layer->mode); - break; + default: + xerror("Unsupported layer mode %d\n", layer->mode); + break; } tmp = g_list_next(tmp); diff -Nru lebiniou-3.32/src/defaults.h.in lebiniou-3.40/src/defaults.h.in --- lebiniou-3.32/src/defaults.h.in 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/defaults.h.in 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/event_enums.cmd lebiniou-3.40/src/event_enums.cmd --- lebiniou-3.32/src/event_enums.cmd 2019-11-09 16:52:03.000000000 +0000 +++ lebiniou-3.40/src/event_enums.cmd 2020-01-22 18:33:57.000000000 +0000 @@ -20,3 +20,9 @@ BC_LAST BC_LOCK BC_VOLUME_SCALE +BC_PARAM_PREV +BC_PARAM_NEXT +BC_PARAM_DEC +BC_PARAM_INC +BC_PARAM_DEC_FAST +BC_PARAM_INC_FAST diff -Nru lebiniou-3.32/src/event_enums.h lebiniou-3.40/src/event_enums.h --- lebiniou-3.32/src/event_enums.h 2019-12-04 18:20:16.000000000 +0000 +++ lebiniou-3.40/src/event_enums.h 2020-01-23 13:57:43.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -58,6 +58,12 @@ BC_LAST, BC_LOCK, BC_VOLUME_SCALE, + BC_PARAM_PREV, + BC_PARAM_NEXT, + BC_PARAM_DEC, + BC_PARAM_INC, + BC_PARAM_DEC_FAST, + BC_PARAM_INC_FAST, }; enum Arg { diff -Nru lebiniou-3.32/src/event_enums.h.head lebiniou-3.40/src/event_enums.h.head --- lebiniou-3.32/src/event_enums.h.head 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/event_enums.h.head 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/event.h lebiniou-3.40/src/event.h --- lebiniou-3.32/src/event.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/event.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/events.c lebiniou-3.40/src/events.c --- lebiniou-3.32/src/events.c 2019-12-04 18:20:16.000000000 +0000 +++ lebiniou-3.40/src/events.c 2020-01-23 13:57:43.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -340,6 +340,42 @@ return; } + /* [Alt-UP] - Select previous plugin parameter */ + if (BALT(k, SDLK_UP)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_PREV, BA_NONE); + return; + } + + /* [Alt-DOWN] - Select next plugin parameter */ + if (BALT(k, SDLK_DOWN)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_NEXT, BA_NONE); + return; + } + + /* [Alt-LEFT] - Decrease plugin parameter value */ + if (BALT(k, SDLK_LEFT)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_DEC, BA_NONE); + return; + } + + /* [Alt-RIGHT] - Increase plugin parameter value */ + if (BALT(k, SDLK_RIGHT)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_INC, BA_NONE); + return; + } + + /* [Alt-Shift-LEFT] - Decrease plugin parameter value quickly */ + if (BALTSHIFT(k, SDLK_LEFT)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_DEC_FAST, BA_NONE); + return; + } + + /* [Alt-Shift-RIGHT] - Increase plugin parameter value quickly */ + if (BALTSHIFT(k, SDLK_RIGHT)) { + Context_send_event(ctx, BT_SEQMGR, BC_PARAM_INC_FAST, BA_NONE); + return; + } + /* =============== Colormaps =============== */ /* [e] - Select previous colormap */ diff -Nru lebiniou-3.32/src/events.c.in lebiniou-3.40/src/events.c.in --- lebiniou-3.32/src/events.c.in 2019-11-09 16:52:03.000000000 +0000 +++ lebiniou-3.40/src/events.c.in 2020-01-22 18:33:57.000000000 +0000 @@ -109,6 +109,14 @@ S12 CS s BT_SEQMGR BC_SAVE BA_SEQUENCE_BARE Save current sequence as new (bare) S13 CS u BT_SEQMGR BC_SAVE BA_OVERWRITE_BARE Update current bare sequence +S14 A UP BT_SEQMGR BC_PARAM_PREV BA_NONE Select previous plugin parameter +S15 A DOWN BT_SEQMGR BC_PARAM_NEXT BA_NONE Select next plugin parameter + +S16 A LEFT BT_SEQMGR BC_PARAM_DEC BA_NONE Decrease plugin parameter value +S17 A RIGHT BT_SEQMGR BC_PARAM_INC BA_NONE Increase plugin parameter value +S18 AS LEFT BT_SEQMGR BC_PARAM_DEC_FAST BA_NONE Decrease plugin parameter value quickly +S19 AS RIGHT BT_SEQMGR BC_PARAM_INC_FAST BA_NONE Increase plugin parameter value quickly + # -------------------------------------------------------------------- * Colormaps # -------------------------------------------------------------------- diff -Nru lebiniou-3.32/src/events.h lebiniou-3.40/src/events.h --- lebiniou-3.32/src/events.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/events.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/fader.c lebiniou-3.40/src/fader.c --- lebiniou-3.32/src/fader.c 2019-11-03 15:03:27.000000000 +0000 +++ lebiniou-3.40/src/fader.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/fader.h lebiniou-3.40/src/fader.h --- lebiniou-3.32/src/fader.h 2019-11-03 15:03:27.000000000 +0000 +++ lebiniou-3.40/src/fader.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/gen.awk lebiniou-3.40/src/gen.awk --- lebiniou-3.32/src/gen.awk 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/gen.awk 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ BEGIN { print "/*"; - print " * Copyright 1994-2019 Olivier Girondel"; + print " * Copyright 1994-2020 Olivier Girondel"; print " *"; print " * This file is part of lebiniou."; print " *"; diff -Nru lebiniou-3.32/src/globals.c lebiniou-3.40/src/globals.c --- lebiniou-3.32/src/globals.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/globals.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/globals.h lebiniou-3.40/src/globals.h --- lebiniou-3.32/src/globals.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/globals.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/image_8bits.c lebiniou-3.40/src/image_8bits.c --- lebiniou-3.32/src/image_8bits.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/image_8bits.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/image_8bits.h lebiniou-3.40/src/image_8bits.h --- lebiniou-3.32/src/image_8bits.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/image_8bits.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/imagefader.c lebiniou-3.40/src/imagefader.c --- lebiniou-3.32/src/imagefader.c 2019-11-03 15:03:27.000000000 +0000 +++ lebiniou-3.40/src/imagefader.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/imagefader_event.c lebiniou-3.40/src/imagefader_event.c --- lebiniou-3.32/src/imagefader_event.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/imagefader_event.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -24,20 +24,20 @@ ImageFader_event(ImageFader_t *pf, const Event_t *e) { switch (e->cmd) { - case BC_SELECT: - if (e->arg0 == BA_PREV) { - ImageFader_prev(pf); - return 1; - } else if (e->arg0 == BA_NEXT) { - ImageFader_next(pf); - return 1; - } else if (e->arg0 == BA_RANDOM) { - ImageFader_random(pf); - return 1; - } + case BC_SELECT: + if (e->arg0 == BA_PREV) { + ImageFader_prev(pf); + return 1; + } else if (e->arg0 == BA_NEXT) { + ImageFader_next(pf); + return 1; + } else if (e->arg0 == BA_RANDOM) { + ImageFader_random(pf); + return 1; + } - default: - break; + default: + break; } return 0; diff -Nru lebiniou-3.32/src/imagefader.h lebiniou-3.40/src/imagefader.h --- lebiniou-3.32/src/imagefader.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/imagefader.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/image_filter.c lebiniou-3.40/src/image_filter.c --- lebiniou-3.32/src/image_filter.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/image_filter.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -163,8 +163,9 @@ assert(size % 2 == 1); for (u_short a = 0; a < size; a++) - for (u_short b = 0; b < size; b++) + for (u_short b = 0; b < size; b++) { sum_f += filter[size * a + b]; + } for (u_short j = hsize; j <= MAXY - hsize; j++) for (u_short i = hsize; i <= MAXX - hsize; i++) { @@ -186,22 +187,26 @@ case BM_CLEAR: /* bottom */ for (u_short j = 0; j < hsize; j++) - for (u_short i = 0; i <= MAXX; i++) + for (u_short i = 0; i <= MAXX; i++) { set_pixel_nc(dst, i, j, (Pixel_t)0); + } /* top */ for (u_short j = MAXY - hsize + 1; j <= MAXY; j++) - for (u_short i = 0; i <= MAXX; i++) + for (u_short i = 0; i <= MAXX; i++) { set_pixel_nc(dst, i, j, (Pixel_t)0); + } for (u_short j = 0; j <= MAXY; j++) { /* left */ - for (u_short i = 0; i < hsize; i++) + for (u_short i = 0; i < hsize; i++) { set_pixel_nc(dst, i, j, (Pixel_t)0); + } /* right */ - for (u_short i = MAXX - hsize + 1; i <= MAXX; i++) + for (u_short i = MAXX - hsize + 1; i <= MAXX; i++) { set_pixel_nc(dst, i, j, (Pixel_t)0); + } } break; @@ -302,8 +307,9 @@ for (u_short b = 0; b < size; b++) { short i2 = i - hsize + b; - if (i2 < 0) + if (i2 < 0) { i2 = WIDTH + i2; + } for (u_short a = 0; a < size; a++) sum += get_pixel_nc(src, i2, j - hsize + a) * @@ -320,8 +326,9 @@ for (u_short b = 0; b < size; b++) { short i2 = i - hsize + b; - if (i2 > MAXX) + if (i2 > MAXX) { i2 = i2 - MAXX - 1; + } for (u_short a = 0; a < size; a++) sum += get_pixel_nc(src, i2, j - hsize + a) * @@ -338,8 +345,9 @@ for (u_short a = 0; a < size; a++) { short j2 = j - hsize + a; - if (j2 < 0) + if (j2 < 0) { j2 = HEIGHT + j2; + } for (u_short b = 0; b < size; b++) sum += get_pixel_nc(src, i - hsize + b, j2) * @@ -356,8 +364,9 @@ for (u_short a = 0; a < size; a++) { short j2 = j - hsize + a; - if (j2 > MAXY) + if (j2 > MAXY) { j2 = j2 - MAXY - 1; + } for (u_short b = 0; b < size; b++) sum += get_pixel_nc(src, i - hsize + b, j2) * diff -Nru lebiniou-3.32/src/image_filter.h lebiniou-3.40/src/image_filter.h --- lebiniou-3.32/src/image_filter.h 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/image_filter.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright 1994-2019 Olivier Girondel - * Copyright 2019 Laurent Marsac + * Copyright 1994-2020 Olivier Girondel + * Copyright 2019-2020 Laurent Marsac * * This file is part of lebiniou. * @@ -31,9 +31,10 @@ FT_HBLUR_3x3, FT_DBLUR1_3x3, FT_DBLUR2_3x3 -} FilterType_e; + } FilterType_e; -enum BorderMode { BM_NONE = 0, BM_CLEAR, BM_LOCAL, BM_TOROIDAL } BorderMode_e; +enum BorderMode { BM_NONE = 0, BM_CLEAR, BM_LOCAL, BM_TOROIDAL, BM_NB } BorderMode_e; +const char *border_list[BM_NB] = { "None", "Clear", "Local", "Toroidal" }; /* optimized filters */ #define FILTER_BLUR1_3x3_SIZE 3 @@ -41,49 +42,56 @@ u_short filter_BLUR1_3x3[3*3] = { 0, 1, 0, 1, 4, 1, - 0, 1, 0 }; + 0, 1, 0 +}; #define FILTER_BLUR2_3x3_SIZE 3 #define FILTER_BLUR2_3x3_SUM 8 u_short filter_BLUR2_3x3[3*3] = { 0, 1, 0, 2, 2, 2, - 0, 1, 0 }; + 0, 1, 0 +}; #define FILTER_BLUR4_3x3_SIZE 3 #define FILTER_BLUR4_3x3_SUM 32 u_short filter_BLUR4_3x3[3*3] = { 1, 2, 1, 2, 16, 2, - 1, 2, 1 }; + 1, 2, 1 +}; #define FILTER_VBLUR_3x3_SIZE 3 #define FILTER_VBLUR_3x3_SUM 10 u_short filter_VBLUR_3x3[3*3] = { 0, 2, 0, 1, 4, 1, - 0, 2, 0 }; + 0, 2, 0 +}; #define FILTER_HBLUR_3x3_SIZE 3 #define FILTER_HBLUR_3x3_SUM 10 u_short filter_HBLUR_3x3[3*3] = { 0, 1, 0, 2, 4, 2, - 0, 1, 0 }; + 0, 1, 0 +}; #define FILTER_DBLUR1_3x3_SIZE 3 #define FILTER_DBLUR1_3x3_SUM 10 u_short filter_DBLUR1_3x3[3*3] = { 2, 0, 1, 0, 4, 0, - 1, 0, 2 }; + 1, 0, 2 +}; #define FILTER_DBLUR2_3x3_SIZE 3 #define FILTER_DBLUR2_3x3_SUM 10 u_short filter_DBLUR2_3x3[3*3] = { 1, 0, 2, 0, 4, 0, - 2, 0, 1 }; + 2, 0, 1 +}; /* filter size must be size*size */ void image_filter_average(Buffer8_t *dst, const Buffer8_t *src, diff -Nru lebiniou-3.32/src/images.c lebiniou-3.40/src/images.c --- lebiniou-3.32/src/images.c 2019-11-03 15:03:27.000000000 +0000 +++ lebiniou-3.40/src/images.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/images.h lebiniou-3.40/src/images.h --- lebiniou-3.32/src/images.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/images.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/includes.h lebiniou-3.40/src/includes.h --- lebiniou-3.32/src/includes.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/includes.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/input.c lebiniou-3.40/src/input.c --- lebiniou-3.32/src/input.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/input.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -30,7 +30,7 @@ There is no best value, but 4 peaks/second is reasonable compromise before rewriting this system properly. */ #define PEAKS_PER_SECOND 4 /* how many peaks we try to find */ -#define PEAK_COUNT_ON_HISTORY (HISTORY_SIZE / PEAKS_PER_SECOND) +#define PEAK_COUNT_ON_HISTORY (HISTORY_SIZE / PEAKS_PER_SECOND) /* history ring buffer for peak detection */ static double history_buff[3][HISTORY_SIZE] = { { 0 } }; @@ -404,7 +404,7 @@ count = 0; for (i = 0; i < j; i++) { if (peak_val[i] > - (input->average + (input->maxpeak - input->average) * limit)) { + (input->average + (input->maxpeak - input->average) * limit)) { count++; } } @@ -473,8 +473,9 @@ double compute_avg_abs(double *buf, u_long a, u_long b) { - if (b < a) + if (b < a) { return 0.0; + } double sum = 0.0; for (u_long n = a; n < b; n++) { diff -Nru lebiniou-3.32/src/input.h lebiniou-3.40/src/input.h --- lebiniou-3.32/src/input.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/input.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -84,7 +84,6 @@ double volume_scale; double volume; - double volume2; /* volume of data2 */ double maxpeak; /* highest peak on history buffer */ double curpeak; /* highest peak on data2 */ double average; /* average value on data2 */ diff -Nru lebiniou-3.32/src/keyfile.c lebiniou-3.40/src/keyfile.c --- lebiniou-3.32/src/keyfile.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/keyfile.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/keys.h lebiniou-3.40/src/keys.h --- lebiniou-3.32/src/keys.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/keys.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/layer.c lebiniou-3.40/src/layer.c --- lebiniou-3.32/src/layer.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/layer.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -36,6 +36,7 @@ void Layer_delete(Layer_t *l) { + json_decref(l->plugin_parameters); xfree(l); } @@ -44,7 +45,9 @@ Layer_copy(const Layer_t *from) { Layer_t *l = Layer_new(from->plugin); + l->mode = from->mode; + l->plugin_parameters = json_deep_copy(from->plugin_parameters); return l; } @@ -87,33 +90,33 @@ LayerMode_to_string(const enum LayerMode mode) { switch (mode) { - case NONE: - return "none"; - break; - - case NORMAL: - return "normal"; - break; - - case OVERLAY: - return "overlay"; - break; - - case XOR: - return "xor"; - break; - - case AVERAGE: - return "average"; - break; - - case RANDOM: - return "random"; - break; - - default: - xerror("LayerMode_to_string: unknown mode= %d\n", mode); - break; + case NONE: + return "none"; + break; + + case NORMAL: + return "normal"; + break; + + case OVERLAY: + return "overlay"; + break; + + case XOR: + return "xor"; + break; + + case AVERAGE: + return "average"; + break; + + case RANDOM: + return "random"; + break; + + default: + xerror("LayerMode_to_string: unknown mode= %d\n", mode); + break; } return NULL; /* not reached */ diff -Nru lebiniou-3.32/src/layer.h lebiniou-3.40/src/layer.h --- lebiniou-3.32/src/layer.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/layer.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -27,6 +27,7 @@ typedef struct Layer_s { Plugin_t *plugin; + json_t *plugin_parameters; enum LayerMode mode; } Layer_t; diff -Nru lebiniou-3.32/src/main.c lebiniou-3.40/src/main.c --- lebiniou-3.32/src/main.c 2019-11-11 14:49:47.000000000 +0000 +++ lebiniou-3.40/src/main.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -216,9 +216,17 @@ biniou_set_random_mode(random_mode); +#ifdef WITH_ULFIUS + Context_start_ulfius(context); +#endif + /* Main loop */ biniou_run(); +#ifdef WITH_ULFIUS + Context_stop_ulfius(context); +#endif + /* All done */ biniou_delete(); diff -Nru lebiniou-3.32/src/main.h lebiniou-3.40/src/main.h --- lebiniou-3.32/src/main.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/main.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/Makefile.am lebiniou-3.40/src/Makefile.am --- lebiniou-3.32/src/Makefile.am 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/Makefile.am 2020-01-23 13:56:18.000000000 +0000 @@ -26,6 +26,7 @@ images.c images.h \ input.c input.h \ layer.c layer.h \ + options.c options.h \ oscillo.c oscillo.h \ params3d.c params3d.h \ particles.c particles.h \ @@ -45,10 +46,16 @@ translation.c translation.h \ utils.c utils.h \ xmlutils.c xmlutils.h + if EXTRA_WEBCAM liblebiniou_so_0_SOURCES += webcam.h webcam_start_stop.c webcam_init_uninit.c \ webcam_loop.c webcam_open_close.c webcam_controls.c webcam_options.c endif + +if HAVE_ULFIUS +liblebiniou_so_0_SOURCES += bulfius.h bulfius_get.c bulfius_post.c +endif + liblebiniou_so_0_LDFLAGS = -shared ${MagickWand_LDFLAGS} ${AVUTILS_LDFLAGS} ${SWSCALE_LDFLAGS} liblebiniou_so_0_LDFLAGS += -Wl,-soname,liblebiniou.so.0 liblebiniou_so_0_LDADD = ${MagickWand_LIBS} ${AVUTILS_LIBS} ${SWSCALE_LIBS} @@ -64,10 +71,10 @@ includes.h \ keyfile.c \ keys.h \ - options.c options.h \ point2d.h point3d.h \ rgba.h \ schemes.c schemes.h + if EXTRA_OPENGL lebiniou_SOURCES += context_gl.c endif diff -Nru lebiniou-3.32/src/Makefile.in lebiniou-3.40/src/Makefile.in --- lebiniou-3.32/src/Makefile.in 2019-12-04 14:09:27.000000000 +0000 +++ lebiniou-3.40/src/Makefile.in 2020-01-23 13:57:20.000000000 +0000 @@ -93,8 +93,9 @@ @EXTRA_WEBCAM_TRUE@am__append_1 = webcam.h webcam_start_stop.c webcam_init_uninit.c \ @EXTRA_WEBCAM_TRUE@ webcam_loop.c webcam_open_close.c webcam_controls.c webcam_options.c +@HAVE_ULFIUS_TRUE@am__append_2 = bulfius.h bulfius_get.c bulfius_post.c bin_PROGRAMS = lebiniou$(EXEEXT) -@EXTRA_OPENGL_TRUE@am__append_2 = context_gl.c +@EXTRA_OPENGL_TRUE@am__append_3 = context_gl.c subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -109,15 +110,14 @@ PROGRAMS = $(bin_PROGRAMS) $(lebiniou_PROGRAMS) am__lebiniou_SOURCES_DIST = main.c events.h cmdline.c signals.c main.h \ biniou.c biniou.h circle.c circle.h constants.h context_run.c \ - event_enums.h includes.h keyfile.c keys.h options.c options.h \ - point2d.h point3d.h rgba.h schemes.c schemes.h context_gl.c + event_enums.h includes.h keyfile.c keys.h point2d.h point3d.h \ + rgba.h schemes.c schemes.h context_gl.c @EXTRA_OPENGL_TRUE@am__objects_1 = lebiniou-context_gl.$(OBJEXT) am_lebiniou_OBJECTS = lebiniou-main.$(OBJEXT) \ lebiniou-cmdline.$(OBJEXT) lebiniou-signals.$(OBJEXT) \ lebiniou-biniou.$(OBJEXT) lebiniou-circle.$(OBJEXT) \ lebiniou-context_run.$(OBJEXT) lebiniou-keyfile.$(OBJEXT) \ - lebiniou-options.$(OBJEXT) lebiniou-schemes.$(OBJEXT) \ - $(am__objects_1) + lebiniou-schemes.$(OBJEXT) $(am__objects_1) dist_lebiniou_OBJECTS = nodist_lebiniou_OBJECTS = lebiniou-events.$(OBJEXT) lebiniou_OBJECTS = $(am_lebiniou_OBJECTS) $(dist_lebiniou_OBJECTS) \ @@ -133,23 +133,27 @@ context_event.c event.h events.c fader.c fader.h globals.c \ globals.h image_8bits.c image_8bits.h imagefader.c \ imagefader.h imagefader_event.c image_filter.c image_filter.h \ - images.c images.h input.c input.h layer.c layer.h oscillo.c \ - oscillo.h params3d.c params3d.h particles.c particles.h \ - plugin.c plugin.h plugins.c plugins.h plugins_event.c \ - pnglite.c pnglite.h schemes_random.c screenshot.c sequence.c \ - sequence.h sequencemanager.c sequencemanager.h \ - sequencemanager_event.c sequence_load.c sequence_save.c \ - sequences.c sequences.h shuffler.c shuffler.h spline.c \ - spline.h translation.c translation.h utils.c utils.h \ + images.c images.h input.c input.h layer.c layer.h options.c \ + options.h oscillo.c oscillo.h params3d.c params3d.h \ + particles.c particles.h plugin.c plugin.h plugins.c plugins.h \ + plugins_event.c pnglite.c pnglite.h schemes_random.c \ + screenshot.c sequence.c sequence.h sequencemanager.c \ + sequencemanager.h sequencemanager_event.c sequence_load.c \ + sequence_save.c sequences.c sequences.h shuffler.c shuffler.h \ + spline.c spline.h translation.c translation.h utils.c utils.h \ xmlutils.c xmlutils.h webcam.h webcam_start_stop.c \ webcam_init_uninit.c webcam_loop.c webcam_open_close.c \ - webcam_controls.c webcam_options.c + webcam_controls.c webcam_options.c bulfius.h bulfius_get.c \ + bulfius_post.c @EXTRA_WEBCAM_TRUE@am__objects_2 = liblebiniou_so_0-webcam_start_stop.$(OBJEXT) \ @EXTRA_WEBCAM_TRUE@ liblebiniou_so_0-webcam_init_uninit.$(OBJEXT) \ @EXTRA_WEBCAM_TRUE@ liblebiniou_so_0-webcam_loop.$(OBJEXT) \ @EXTRA_WEBCAM_TRUE@ liblebiniou_so_0-webcam_open_close.$(OBJEXT) \ @EXTRA_WEBCAM_TRUE@ liblebiniou_so_0-webcam_controls.$(OBJEXT) \ @EXTRA_WEBCAM_TRUE@ liblebiniou_so_0-webcam_options.$(OBJEXT) +@HAVE_ULFIUS_TRUE@am__objects_3 = \ +@HAVE_ULFIUS_TRUE@ liblebiniou_so_0-bulfius_get.$(OBJEXT) \ +@HAVE_ULFIUS_TRUE@ liblebiniou_so_0-bulfius_post.$(OBJEXT) am_liblebiniou_so_0_OBJECTS = liblebiniou_so_0-alarm.$(OBJEXT) \ liblebiniou_so_0-btimer.$(OBJEXT) \ liblebiniou_so_0-buffer_8bits.$(OBJEXT) \ @@ -173,6 +177,7 @@ liblebiniou_so_0-images.$(OBJEXT) \ liblebiniou_so_0-input.$(OBJEXT) \ liblebiniou_so_0-layer.$(OBJEXT) \ + liblebiniou_so_0-options.$(OBJEXT) \ liblebiniou_so_0-oscillo.$(OBJEXT) \ liblebiniou_so_0-params3d.$(OBJEXT) \ liblebiniou_so_0-particles.$(OBJEXT) \ @@ -192,7 +197,8 @@ liblebiniou_so_0-spline.$(OBJEXT) \ liblebiniou_so_0-translation.$(OBJEXT) \ liblebiniou_so_0-utils.$(OBJEXT) \ - liblebiniou_so_0-xmlutils.$(OBJEXT) $(am__objects_2) + liblebiniou_so_0-xmlutils.$(OBJEXT) $(am__objects_2) \ + $(am__objects_3) liblebiniou_so_0_OBJECTS = $(am_liblebiniou_so_0_OBJECTS) liblebiniou_so_0_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) @@ -218,14 +224,15 @@ ./$(DEPDIR)/lebiniou-context_gl.Po \ ./$(DEPDIR)/lebiniou-context_run.Po \ ./$(DEPDIR)/lebiniou-events.Po ./$(DEPDIR)/lebiniou-keyfile.Po \ - ./$(DEPDIR)/lebiniou-main.Po ./$(DEPDIR)/lebiniou-options.Po \ - ./$(DEPDIR)/lebiniou-schemes.Po \ + ./$(DEPDIR)/lebiniou-main.Po ./$(DEPDIR)/lebiniou-schemes.Po \ ./$(DEPDIR)/lebiniou-signals.Po \ ./$(DEPDIR)/liblebiniou_so_0-alarm.Po \ ./$(DEPDIR)/liblebiniou_so_0-brandom.Po \ ./$(DEPDIR)/liblebiniou_so_0-btimer.Po \ ./$(DEPDIR)/liblebiniou_so_0-buffer_8bits.Po \ ./$(DEPDIR)/liblebiniou_so_0-buffer_RGBA.Po \ + ./$(DEPDIR)/liblebiniou_so_0-bulfius_get.Po \ + ./$(DEPDIR)/liblebiniou_so_0-bulfius_post.Po \ ./$(DEPDIR)/liblebiniou_so_0-cmap_8bits.Po \ ./$(DEPDIR)/liblebiniou_so_0-cmapfader.Po \ ./$(DEPDIR)/liblebiniou_so_0-cmapfader_event.Po \ @@ -244,6 +251,7 @@ ./$(DEPDIR)/liblebiniou_so_0-images.Po \ ./$(DEPDIR)/liblebiniou_so_0-input.Po \ ./$(DEPDIR)/liblebiniou_so_0-layer.Po \ + ./$(DEPDIR)/liblebiniou_so_0-options.Po \ ./$(DEPDIR)/liblebiniou_so_0-oscillo.Po \ ./$(DEPDIR)/liblebiniou_so_0-params3d.Po \ ./$(DEPDIR)/liblebiniou_so_0-particles.Po \ @@ -366,6 +374,8 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JACK_CFLAGS = @JACK_CFLAGS@ JACK_LIBS = @JACK_LIBS@ +JANSSON_CFLAGS = @JANSSON_CFLAGS@ +JANSSON_LIBS = @JANSSON_LIBS@ LDFLAGS = @LDFLAGS@ LEBINIOU_DATADIR = @LEBINIOU_DATADIR@ LEBINIOU_PLUGINSDIR = @LEBINIOU_PLUGINSDIR@ @@ -410,6 +420,8 @@ SWSCALE_CFLAGS = @SWSCALE_CFLAGS@ SWSCALE_LDFLAGS = @SWSCALE_LDFLAGS@ SWSCALE_LIBS = @SWSCALE_LIBS@ +ULFIUS_CFLAGS = @ULFIUS_CFLAGS@ +ULFIUS_LIBS = @ULFIUS_LIBS@ VERSION = @VERSION@ XML2_CFLAGS = @XML2_CFLAGS@ XML2_LIBS = @XML2_LIBS@ @@ -479,23 +491,23 @@ context_event.c event.h events.c fader.c fader.h globals.c \ globals.h image_8bits.c image_8bits.h imagefader.c \ imagefader.h imagefader_event.c image_filter.c image_filter.h \ - images.c images.h input.c input.h layer.c layer.h oscillo.c \ - oscillo.h params3d.c params3d.h particles.c particles.h \ - plugin.c plugin.h plugins.c plugins.h plugins_event.c \ - pnglite.c pnglite.h schemes_random.c screenshot.c sequence.c \ - sequence.h sequencemanager.c sequencemanager.h \ - sequencemanager_event.c sequence_load.c sequence_save.c \ - sequences.c sequences.h shuffler.c shuffler.h spline.c \ - spline.h translation.c translation.h utils.c utils.h \ - xmlutils.c xmlutils.h $(am__append_1) + images.c images.h input.c input.h layer.c layer.h options.c \ + options.h oscillo.c oscillo.h params3d.c params3d.h \ + particles.c particles.h plugin.c plugin.h plugins.c plugins.h \ + plugins_event.c pnglite.c pnglite.h schemes_random.c \ + screenshot.c sequence.c sequence.h sequencemanager.c \ + sequencemanager.h sequencemanager_event.c sequence_load.c \ + sequence_save.c sequences.c sequences.h shuffler.c shuffler.h \ + spline.c spline.h translation.c translation.h utils.c utils.h \ + xmlutils.c xmlutils.h $(am__append_1) $(am__append_2) liblebiniou_so_0_LDFLAGS = -shared ${MagickWand_LDFLAGS} \ ${AVUTILS_LDFLAGS} ${SWSCALE_LDFLAGS} \ -Wl,-soname,liblebiniou.so.0 liblebiniou_so_0_LDADD = ${MagickWand_LIBS} ${AVUTILS_LIBS} ${SWSCALE_LIBS} lebiniou_SOURCES = main.c events.h cmdline.c signals.c main.h biniou.c \ biniou.h circle.c circle.h constants.h context_run.c \ - event_enums.h includes.h keyfile.c keys.h options.c options.h \ - point2d.h point3d.h rgba.h schemes.c schemes.h $(am__append_2) + event_enums.h includes.h keyfile.c keys.h point2d.h point3d.h \ + rgba.h schemes.c schemes.h $(am__append_3) dist_lebiniou_SOURCES = events.c.in gen.awk man.awk defaults.h.in \ event_enums.h.head event_enums.to event_enums.cmd \ event_enums.arg event_enums.h.tail event_enums.awk gen.awk @@ -649,7 +661,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-events.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-keyfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-options.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-schemes.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lebiniou-signals.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-alarm.Po@am__quote@ # am--include-marker @@ -657,6 +668,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-btimer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-buffer_8bits.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-buffer_RGBA.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-bulfius_get.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-bulfius_post.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-cmap_8bits.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-cmapfader.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-cmapfader_event.Po@am__quote@ # am--include-marker @@ -675,6 +688,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-images.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-input.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-layer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-options.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-oscillo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-params3d.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblebiniou_so_0-particles.Po@am__quote@ # am--include-marker @@ -820,20 +834,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -c -o lebiniou-keyfile.obj `if test -f 'keyfile.c'; then $(CYGPATH_W) 'keyfile.c'; else $(CYGPATH_W) '$(srcdir)/keyfile.c'; fi` -lebiniou-options.o: options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -MT lebiniou-options.o -MD -MP -MF $(DEPDIR)/lebiniou-options.Tpo -c -o lebiniou-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lebiniou-options.Tpo $(DEPDIR)/lebiniou-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='lebiniou-options.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -c -o lebiniou-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c - -lebiniou-options.obj: options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -MT lebiniou-options.obj -MD -MP -MF $(DEPDIR)/lebiniou-options.Tpo -c -o lebiniou-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lebiniou-options.Tpo $(DEPDIR)/lebiniou-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='lebiniou-options.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -c -o lebiniou-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` - lebiniou-schemes.o: schemes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lebiniou_CFLAGS) $(CFLAGS) -MT lebiniou-schemes.o -MD -MP -MF $(DEPDIR)/lebiniou-schemes.Tpo -c -o lebiniou-schemes.o `test -f 'schemes.c' || echo '$(srcdir)/'`schemes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lebiniou-schemes.Tpo $(DEPDIR)/lebiniou-schemes.Po @@ -1198,6 +1198,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-layer.obj `if test -f 'layer.c'; then $(CYGPATH_W) 'layer.c'; else $(CYGPATH_W) '$(srcdir)/layer.c'; fi` +liblebiniou_so_0-options.o: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-options.o -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-options.Tpo -c -o liblebiniou_so_0-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-options.Tpo $(DEPDIR)/liblebiniou_so_0-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='liblebiniou_so_0-options.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c + +liblebiniou_so_0-options.obj: options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-options.obj -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-options.Tpo -c -o liblebiniou_so_0-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-options.Tpo $(DEPDIR)/liblebiniou_so_0-options.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='liblebiniou_so_0-options.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` + liblebiniou_so_0-oscillo.o: oscillo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-oscillo.o -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-oscillo.Tpo -c -o liblebiniou_so_0-oscillo.o `test -f 'oscillo.c' || echo '$(srcdir)/'`oscillo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-oscillo.Tpo $(DEPDIR)/liblebiniou_so_0-oscillo.Po @@ -1562,6 +1576,34 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-webcam_options.obj `if test -f 'webcam_options.c'; then $(CYGPATH_W) 'webcam_options.c'; else $(CYGPATH_W) '$(srcdir)/webcam_options.c'; fi` +liblebiniou_so_0-bulfius_get.o: bulfius_get.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-bulfius_get.o -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-bulfius_get.Tpo -c -o liblebiniou_so_0-bulfius_get.o `test -f 'bulfius_get.c' || echo '$(srcdir)/'`bulfius_get.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-bulfius_get.Tpo $(DEPDIR)/liblebiniou_so_0-bulfius_get.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bulfius_get.c' object='liblebiniou_so_0-bulfius_get.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-bulfius_get.o `test -f 'bulfius_get.c' || echo '$(srcdir)/'`bulfius_get.c + +liblebiniou_so_0-bulfius_get.obj: bulfius_get.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-bulfius_get.obj -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-bulfius_get.Tpo -c -o liblebiniou_so_0-bulfius_get.obj `if test -f 'bulfius_get.c'; then $(CYGPATH_W) 'bulfius_get.c'; else $(CYGPATH_W) '$(srcdir)/bulfius_get.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-bulfius_get.Tpo $(DEPDIR)/liblebiniou_so_0-bulfius_get.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bulfius_get.c' object='liblebiniou_so_0-bulfius_get.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-bulfius_get.obj `if test -f 'bulfius_get.c'; then $(CYGPATH_W) 'bulfius_get.c'; else $(CYGPATH_W) '$(srcdir)/bulfius_get.c'; fi` + +liblebiniou_so_0-bulfius_post.o: bulfius_post.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-bulfius_post.o -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-bulfius_post.Tpo -c -o liblebiniou_so_0-bulfius_post.o `test -f 'bulfius_post.c' || echo '$(srcdir)/'`bulfius_post.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-bulfius_post.Tpo $(DEPDIR)/liblebiniou_so_0-bulfius_post.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bulfius_post.c' object='liblebiniou_so_0-bulfius_post.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-bulfius_post.o `test -f 'bulfius_post.c' || echo '$(srcdir)/'`bulfius_post.c + +liblebiniou_so_0-bulfius_post.obj: bulfius_post.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -MT liblebiniou_so_0-bulfius_post.obj -MD -MP -MF $(DEPDIR)/liblebiniou_so_0-bulfius_post.Tpo -c -o liblebiniou_so_0-bulfius_post.obj `if test -f 'bulfius_post.c'; then $(CYGPATH_W) 'bulfius_post.c'; else $(CYGPATH_W) '$(srcdir)/bulfius_post.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblebiniou_so_0-bulfius_post.Tpo $(DEPDIR)/liblebiniou_so_0-bulfius_post.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bulfius_post.c' object='liblebiniou_so_0-bulfius_post.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblebiniou_so_0_CFLAGS) $(CFLAGS) -c -o liblebiniou_so_0-bulfius_post.obj `if test -f 'bulfius_post.c'; then $(CYGPATH_W) 'bulfius_post.c'; else $(CYGPATH_W) '$(srcdir)/bulfius_post.c'; fi` + ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -1702,7 +1744,6 @@ -rm -f ./$(DEPDIR)/lebiniou-events.Po -rm -f ./$(DEPDIR)/lebiniou-keyfile.Po -rm -f ./$(DEPDIR)/lebiniou-main.Po - -rm -f ./$(DEPDIR)/lebiniou-options.Po -rm -f ./$(DEPDIR)/lebiniou-schemes.Po -rm -f ./$(DEPDIR)/lebiniou-signals.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-alarm.Po @@ -1710,6 +1751,8 @@ -rm -f ./$(DEPDIR)/liblebiniou_so_0-btimer.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-buffer_8bits.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-buffer_RGBA.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-bulfius_get.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-bulfius_post.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmap_8bits.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmapfader.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmapfader_event.Po @@ -1728,6 +1771,7 @@ -rm -f ./$(DEPDIR)/liblebiniou_so_0-images.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-input.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-layer.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-options.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-oscillo.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-params3d.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-particles.Po @@ -1807,7 +1851,6 @@ -rm -f ./$(DEPDIR)/lebiniou-events.Po -rm -f ./$(DEPDIR)/lebiniou-keyfile.Po -rm -f ./$(DEPDIR)/lebiniou-main.Po - -rm -f ./$(DEPDIR)/lebiniou-options.Po -rm -f ./$(DEPDIR)/lebiniou-schemes.Po -rm -f ./$(DEPDIR)/lebiniou-signals.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-alarm.Po @@ -1815,6 +1858,8 @@ -rm -f ./$(DEPDIR)/liblebiniou_so_0-btimer.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-buffer_8bits.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-buffer_RGBA.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-bulfius_get.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-bulfius_post.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmap_8bits.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmapfader.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-cmapfader_event.Po @@ -1833,6 +1878,7 @@ -rm -f ./$(DEPDIR)/liblebiniou_so_0-images.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-input.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-layer.Po + -rm -f ./$(DEPDIR)/liblebiniou_so_0-options.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-oscillo.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-params3d.Po -rm -f ./$(DEPDIR)/liblebiniou_so_0-particles.Po diff -Nru lebiniou-3.32/src/options.c lebiniou-3.40/src/options.c --- lebiniou-3.32/src/options.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/options.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/options.h lebiniou-3.40/src/options.h --- lebiniou-3.32/src/options.h 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/src/options.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -71,6 +71,6 @@ } PluginType_t; -PluginType_t pTypes[MAX_TYPES]; +extern PluginType_t pTypes[MAX_TYPES]; #endif /* __BINIOU_OPTIONS_H */ diff -Nru lebiniou-3.32/src/oscillo.c lebiniou-3.40/src/oscillo.c --- lebiniou-3.32/src/oscillo.c 2019-11-09 16:52:03.000000000 +0000 +++ lebiniou-3.40/src/oscillo.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/oscillo.h lebiniou-3.40/src/oscillo.h --- lebiniou-3.32/src/oscillo.h 2019-11-09 16:52:03.000000000 +0000 +++ lebiniou-3.40/src/oscillo.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/params3d.c lebiniou-3.40/src/params3d.c --- lebiniou-3.32/src/params3d.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/params3d.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/params3d.h lebiniou-3.40/src/params3d.h --- lebiniou-3.32/src/params3d.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/params3d.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/particles.c lebiniou-3.40/src/particles.c --- lebiniou-3.32/src/particles.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/particles.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/particles.h lebiniou-3.40/src/particles.h --- lebiniou-3.32/src/particles.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/particles.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/plugin.c lebiniou-3.40/src/plugin.c --- lebiniou-3.32/src/plugin.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/plugin.c 2020-01-23 13:56:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -77,6 +77,12 @@ #endif } + uint32_t *version_ptr = (uint32_t *) dlsym(p->handle, "version"); + if (version_ptr != NULL) { + p->version = *version_ptr; + printf("plugin version: %d\n", p->version); + } + _tmp = (u_long *) dlsym(p->handle, "options"); if (_tmp == NULL) { error = dlerror(); @@ -101,6 +107,7 @@ p->create = (int8_t (*)(struct Context_s *)) dlsym(p->handle, "create"); B_DLSYM(p->destroy, "destroy"); + p->check_version = (int8_t (*)(uint32_t)) dlsym(p->handle, "check_version"); B_DLSYM(p->run, "run"); B_DLSYM(p->on_switch_on, "on_switch_on"); B_DLSYM(p->on_switch_off, "on_switch_off"); @@ -115,6 +122,8 @@ p->jthread = (void *(*)(void *)) dlsym(p->handle, "jthread"); B_GOTSYM(p->jthread, "jthread"); + p->parameters = (json_t *(*)(json_t *)) dlsym(p->handle, "parameters"); + return p; } @@ -244,3 +253,294 @@ assert(p != NULL); return Plugin_uppercase(p->dname); } + + +uint8_t +plugin_parameter_number(json_t *in_parameters) +{ + uint8_t n = 0; + for (void *iter = json_object_iter(in_parameters); iter != NULL; n++) { + iter = json_object_iter_next(in_parameters, iter); + } + return n; +} + + +void +plugin_parameters_add_int(json_t *params, const char *name, int v, int dec, int inc) +{ + json_t *param = json_object(); + json_object_set_new(param, "value", json_integer(v)); + json_object_set_new(param, "dec", json_integer(dec)); + json_object_set_new(param, "inc", json_integer(inc)); + json_object_set_new(params, name, param); +} + + +void +plugin_parameters_add_double(json_t *params, const char *name, double v, double dec, double inc) +{ + json_t *param = json_object(); + json_object_set_new(param, "value", json_real(v)); + json_object_set_new(param, "dec", json_real(dec)); + json_object_set_new(param, "inc", json_real(inc)); + json_object_set_new(params, name, param); +} + + +void +plugin_parameters_add_string_list(json_t *params, const char *name, uint32_t nb_elems, const char **elems, uint32_t elem_id) +{ + json_t *param = json_object(); + json_object_set_new(param, "value", json_string(elems[elem_id])); + json_object_set_new(param, "dec", json_integer(-1)); + json_object_set_new(param, "inc", json_integer(1)); + + json_t *value_list = json_array(); + for (uint32_t n = 0; n < nb_elems; n++) { + json_array_append_new(value_list, json_string(elems[n])); + } + json_object_set_new(param, "value_list", value_list); + + json_object_set_new(params, name, param); +} + + +uint8_t +plugin_parameter_parse_int(const json_t *in_parameters, const char *name, int *value) +{ + json_t *p = json_object_get(in_parameters, name); + + if (p != NULL) { + json_t *j_value = json_object_get(p, "value"); + if (json_is_integer(j_value)) { + *value = json_integer_value(j_value); + return 1; + } + } + + return 0; +} + + +uint8_t +plugin_parameter_parse_int_range(const json_t *in_parameters, const char *name, int *value, int vmin, int vmax) +{ + int new_value = 0; + uint8_t ret = plugin_parameter_parse_int(in_parameters, name, &new_value); + + if (new_value >= vmin && new_value <= vmax && ret == 1) { + if (*value != new_value) { + ret |= PLUGIN_PARAMETER_CHANGED; + } + + *value = new_value; + } + + return ret; +} + + +uint8_t +plugin_parameter_parse_double(const json_t *in_parameters, const char *name, double *value) +{ + json_t *p = json_object_get(in_parameters, name); + + if (p != NULL) { + json_t *j_value = json_object_get(p, "value"); + if (json_is_real(j_value)) { + *value = json_real_value(j_value); + return 1; + } + } + + return 0; +} + + +uint8_t +plugin_parameter_parse_float(const json_t *in_parameters, const char *name, float *value) +{ + double new_value; + uint8_t ret = plugin_parameter_parse_double(in_parameters, name, &new_value); + if (ret) { + *value = new_value; + } + + return ret; +} + + +uint8_t +plugin_parameter_parse_float_range(const json_t *in_parameters, const char *name, float *value, float vmin, float vmax) +{ + float new_value = 0; + uint8_t ret = plugin_parameter_parse_float(in_parameters, name, &new_value); + + if (new_value >= vmin && new_value <= vmax && ret == 1) { + if (*value != new_value) { + ret |= PLUGIN_PARAMETER_CHANGED; + } + + *value = new_value; + } + + return ret; +} + + +uint8_t +plugin_parameter_parse_string(const json_t *in_parameters, const char *name, char **value) +{ + json_t *p = json_object_get(in_parameters, name); + + if (p != NULL) { + json_t *j_value = json_object_get(p, "value"); + if (json_is_string(j_value)) { + const char *str = json_string_value(j_value); + *value = (char *)str; + return 1; + } + } + + return 0; +} + + +uint8_t +plugin_parameter_parse_string_list_as_int_range(const json_t *in_parameters, const char *name, + uint32_t nb_elems, const char **elems, int *value, int vmin, int vmax) +{ + uint8_t ret = 0; + int new_value = 0; + char *str = NULL; + + if (plugin_parameter_parse_string(in_parameters, name, &str)) { + for (uint32_t n = 0; n < nb_elems; n++) { + if (strcmp(elems[n], str) == 0) { + new_value = n; + + if (new_value >= vmin && new_value <= vmax) { + ret = 1; + if (*value != new_value) { + ret |= PLUGIN_PARAMETER_CHANGED; + } + + *value = new_value; + } + } + } + } + + return ret; +} + + +uint8_t +plugin_parameter_find_string_in_list(const json_t *in_parameters, const char *name, int *value) +{ + uint8_t ret = 0; + + json_t *j_value = json_object_get(in_parameters, "value"); + const char *str = json_string_value(j_value); + + json_t *j_value_list = json_object_get(in_parameters, "value_list"); + if (json_is_array(j_value_list) && (str != NULL)) { + for (uint32_t n = 0; n < (uint32_t)json_array_size(j_value_list); n++) { + const char *list_str = json_string_value(json_array_get(j_value_list, n)); + + if (strcmp(list_str, str) == 0) { + *value = n; + ret = 1; + break; + } + } + } + + return ret; +} + + +json_t * +plugin_parameter_change_selected(const char *delta, const float factor) +{ + json_t *ret = NULL; + + if (plugins->selected->parameters != NULL) { + json_t *j_params = plugins->selected->parameters(NULL); + void *params_iter = json_object_iter(j_params); + for (uint8_t n = 0; n < plugins->selected->selected_param; n++) { + params_iter = json_object_iter_next(j_params, params_iter); + } + json_t *p = json_object_iter_value(params_iter); + json_t *j_delta = json_object_get(p, delta); + json_t *j_value = json_object_get(p, "value"); + + if ((NULL != j_delta) && (NULL != j_value)) { + if (json_is_integer(j_delta) && json_is_integer(j_value)) { + int delta = json_integer_value(j_delta) * factor; + int value = json_integer_value(j_value); + + json_object_del(p, "value"); + json_object_set_new(p, "value", json_integer(value + delta)); + ret = plugins->selected->parameters(j_params); + + } else if (json_is_real(j_delta) && json_is_real(j_value)) { + double delta = json_real_value(j_delta) * factor; + double value = json_real_value(j_value); + + json_object_del(p, "value"); + json_object_set_new(p, "value", json_real(value + delta)); + ret = plugins->selected->parameters(j_params); + + } else if (json_is_integer(j_delta) && json_is_string(j_value)) { + int delta = json_integer_value(j_delta) * factor; + int list_index = 0; + + if (plugin_parameter_find_string_in_list(p, "value", &list_index)) { + json_t *j_value_list = json_object_get(p, "value_list"); + int N = (int)json_array_size(j_value_list); + + int new_value = list_index + delta; + if (new_value >= N) { + new_value = new_value % N; + } else if (new_value < 0) { + new_value = N + new_value % N; + } + + const char *str = json_string_value(json_array_get(j_value_list, new_value)); + json_object_del(p, "value"); + json_object_set_new(p, "value", json_string(str)); + ret = plugins->selected->parameters(j_params); + } + } + } + + json_decref(j_params); + } + + return ret; +} + + +json_t * +plugin_parameters_to_saved_parameters(json_t *in_parameters) +{ + json_t *out_parameters = json_object(); + + const char *in_name; + json_t *in_param; + json_object_foreach(in_parameters, in_name, in_param) { +#ifdef DEBUG + printf("param name : %s\n", in_name); +#endif + json_t *value = json_object_get(in_param, "value"); + if (NULL != value) { + json_t *param = json_object(); + json_object_set(param, "value", value); + json_object_set_new(out_parameters, in_name, param); + } + } + + return out_parameters; +} diff -Nru lebiniou-3.32/src/plugin.h lebiniou-3.40/src/plugin.h --- lebiniou-3.32/src/plugin.h 2019-11-30 16:09:19.000000000 +0000 +++ lebiniou-3.40/src/plugin.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,38 +20,45 @@ #ifndef __BINIOU_PLUGIN_H #define __BINIOU_PLUGIN_H +#include #include "options.h" +#define PLUGIN_PARAMETER_CHANGED 2 + enum PluginType { PL_INPUT, PL_MAIN, PL_OUTPUT }; struct Context_s; typedef struct Plugin_s { - void *handle; /* .so handle */ + void *handle; /* .so handle */ - uint32_t id; + uint32_t id; /* creation date */ + uint32_t version; /* version to increase when exposed parameters change */ u_long *options; u_long *mode; char *name; - char *file; /* to unload/reload */ - char *dname; /* display name */ - char *desc; /* plugin description */ + char *file; /* to unload/reload */ + char *dname; /* display name */ + char *desc; /* plugin description */ pthread_t thread; - u_long calls; /* number of times this plugin was run */ + u_long calls; /* number of times this plugin was run */ + uint8_t selected_param; /* TODO a struct callbacks */ /* callbacks */ - int8_t (*create)(struct Context_s *); /* constructor */ - void (*destroy)(struct Context_s *); /* destructor */ - - void (*run)(struct Context_s *); /* run function */ - void * (*jthread)(void *); /* joinable thread */ + int8_t (*create)(struct Context_s *); /* constructor */ + void (*destroy)(struct Context_s *); /* destructor */ + int8_t (*check_version)(uint32_t version); /* returns 0 if plugin is not compatible with version */ + + void (*run)(struct Context_s *); /* run function */ + json_t * (*parameters)(json_t *); /* parameters managment */ + void * (*jthread)(void *); /* joinable thread */ - void (*on_switch_on)(struct Context_s *); /* switching on */ - void (*on_switch_off)(struct Context_s *); /* switching off */ + void (*on_switch_on)(struct Context_s *); /* switching on */ + void (*on_switch_off)(struct Context_s *); /* switching off */ /* Output plugin stuff */ void (*fullscreen)(const int); @@ -67,4 +74,19 @@ char *Plugin_name(const Plugin_t *); char *Plugin_dname(const Plugin_t *); +uint8_t plugin_parameter_number(json_t *in_parameters); +void plugin_parameters_add_int(json_t *params_array, const char *name, int v, int dec, int inc); +void plugin_parameters_add_double(json_t *params, const char *name, double v, double dec, double inc); +void plugin_parameters_add_string_list(json_t *params_array, const char *name, uint32_t nb_elems, const char **elems, uint32_t elem_id); +uint8_t plugin_parameter_parse_int(const json_t *in_parameters, const char *name, int *value); +uint8_t plugin_parameter_parse_int_range(const json_t *in_parameters, const char *name, int *value, int vmin, int vmax); +uint8_t plugin_parameter_parse_double(const json_t *in_parameters, const char *name, double *value); +uint8_t plugin_parameter_parse_float(const json_t *in_parameters, const char *name, float *value); +uint8_t plugin_parameter_parse_float_range(const json_t *in_parameters, const char *name, float *value, float vmin, float vmax); +uint8_t plugin_parameter_find_string_in_list(const json_t *in_parameters, const char *name, int *value); +uint8_t plugin_parameter_parse_string_list_as_int_range(const json_t *in_parameters, const char *name, uint32_t nb_elems, const char **elems, int *value, int vmin, int vmax); +uint8_t plugin_parameter_parse_string(const json_t *in_parameters, const char *name, char **value); +json_t *plugin_parameter_change_selected(const char *delta, const float factor); +json_t *plugin_parameters_to_saved_parameters(json_t *in); + #endif /* __BINIOU_PLUGIN_H */ diff -Nru lebiniou-3.32/src/plugins.c lebiniou-3.40/src/plugins.c --- lebiniou-3.32/src/plugins.c 2019-12-04 14:08:58.000000000 +0000 +++ lebiniou-3.40/src/plugins.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -100,16 +100,16 @@ /* plugin types stuff */ for (int t = 0; t < MAX_TYPES; t++) - if (*p->options & (1 << t)) { + if (*p->options & (1 << t)) { #ifdef DEBUG - printf("[T] Has type %s\n", pTypes[t].name); + printf("[T] Has type %s\n", pTypes[t].name); #endif - pTypes[t].count--; - } + pTypes[t].count--; + } if (plugins->selected == p) { - plugins->selected = NULL; - plugins->selected_idx = 0; + plugins->selected = NULL; + plugins->selected_idx = 0; } Plugin_delete(p); ps->plugins[i] = NULL; @@ -219,7 +219,7 @@ } ps->plugins = xcalloc(ps->size, sizeof(Plugin_t *)); old_size = ps->size; - + rewinddir(da_dir); i = 0; @@ -247,7 +247,7 @@ if (NULL != p) { if ( ((ctx->input != NULL) || - ((ctx->input == NULL) && (!(*p->options & BE_SFX2D) && !(*p->options & BE_SFX3D)))) + ((ctx->input == NULL) && (!(*p->options & BE_SFX2D) && !(*p->options & BE_SFX3D)))) // check if plugin needs input && // check if plugin needs images @@ -257,7 +257,7 @@ // check if plugin needs webcam ((ctx->webcams > 0) || (!ctx->webcams && (!(*p->options & BEQ_MUTE_CAM)))) - ) { + ) { if (libbiniou_verbose) { if (NULL != p->desc) { printf(" %s\n", p->desc); @@ -270,13 +270,13 @@ xerror("Duplicated plugin id: %li\n", p->id); } /* plugin types stuff */ - for (t = 0; t < MAX_TYPES; t++) - if (*p->options & (1 << t)) { + for (t = 0; t < MAX_TYPES; t++) + if (*p->options & (1 << t)) { #ifdef DEBUG - printf("[T] Has type %s\n", pTypes[t].name); + printf("[T] Has type %s\n", pTypes[t].name); #endif - pTypes[t].count++; - } + pTypes[t].count++; + } #ifdef DEBUG printf("\n"); #endif @@ -301,7 +301,7 @@ } xfree(ps->plugins); ps->plugins = res; - + /* sort the plugins array */ qsort((void *)ps->plugins, (size_t)ps->size, (size_t)sizeof(Plugin_t *), &Plugins_compare); @@ -329,6 +329,20 @@ Plugin_t * +Plugins_find_by_name(const char *name) +{ + short i; + + for (i = 0; i < plugins->size; i++) + if (!strcmp(plugins->plugins[i]->name, name)) { + return plugins->plugins[i]; + } + + return NULL; +} + + +Plugin_t * Plugins_get_random(const enum PluginOptions feat, const Plugin_t *locked) { int i; @@ -359,7 +373,7 @@ retry = 1; } else { if (!ignore_beq_norandom && (*chosen->options & BEQ_NORANDOM) && (chosen != locked)) { - retry = 1; + retry = 1; } } } while (retry); diff -Nru lebiniou-3.32/src/plugins_event.c lebiniou-3.40/src/plugins_event.c --- lebiniou-3.32/src/plugins_event.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/plugins_event.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -29,35 +29,35 @@ int rc = 0; switch (e->cmd) { - case BC_NEXT: - Plugins_next(); - rc = 1; - break; - - case BC_PREV: - Plugins_prev(); - rc = 1; - break; - - case BC_SELECT: - if (e->arg0 == BA_DOWN) { - Plugins_next_n(SKIP); + case BC_NEXT: + Plugins_next(); rc = 1; - } else if (e->arg0 == BA_UP) { - Plugins_prev_n(SKIP); - rc = 1; - } - break; + break; - case BC_RELOAD: - if (e->arg0 == BA_SELECTED) { - Plugins_reload_selected(plugins); + case BC_PREV: + Plugins_prev(); rc = 1; - } - break; + break; + + case BC_SELECT: + if (e->arg0 == BA_DOWN) { + Plugins_next_n(SKIP); + rc = 1; + } else if (e->arg0 == BA_UP) { + Plugins_prev_n(SKIP); + rc = 1; + } + break; + + case BC_RELOAD: + if (e->arg0 == BA_SELECTED) { + Plugins_reload_selected(plugins); + rc = 1; + } + break; - default: - break; + default: + break; } return rc; diff -Nru lebiniou-3.32/src/plugins.h lebiniou-3.40/src/plugins.h --- lebiniou-3.32/src/plugins.h 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/plugins.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -42,6 +42,7 @@ void Plugins_reload_selected(Plugins_t *); Plugin_t *Plugins_find(const u_long); +Plugin_t *Plugins_find_by_name(const char *); Plugin_t *Plugins_get_random(const enum PluginOptions, const Plugin_t *); void Plugins_select(Plugins_t *, const Plugin_t *); diff -Nru lebiniou-3.32/src/pnglite.c lebiniou-3.40/src/pnglite.c --- lebiniou-3.32/src/pnglite.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/pnglite.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -139,23 +139,23 @@ int bpp; switch(png->color_type) { - case PNG_GREYSCALE: - bpp = 1; - break; - case PNG_TRUECOLOR: - bpp = 3; - break; - case PNG_INDEXED: - bpp = 1; - break; - case PNG_GREYSCALE_ALPHA: - bpp = 2; - break; - case PNG_TRUECOLOR_ALPHA: - bpp = 4; - break; - default: - return PNG_FILE_ERROR; + case PNG_GREYSCALE: + bpp = 1; + break; + case PNG_TRUECOLOR: + bpp = 3; + break; + case PNG_INDEXED: + bpp = 1; + break; + case PNG_GREYSCALE_ALPHA: + bpp = 2; + break; + case PNG_TRUECOLOR_ALPHA: + bpp = 4; + break; + default: + return PNG_FILE_ERROR; } bpp *= png->depth/8; @@ -270,24 +270,24 @@ printf("\tcolor:\t\t"); switch(png->color_type) { - case PNG_GREYSCALE: - printf("greyscale\n"); - break; - case PNG_TRUECOLOR: - printf("truecolor\n"); - break; - case PNG_INDEXED: - printf("palette\n"); - break; - case PNG_GREYSCALE_ALPHA: - printf("greyscale with alpha\n"); - break; - case PNG_TRUECOLOR_ALPHA: - printf("truecolor with alpha\n"); - break; - default: - printf("unknown, this is not good\n"); - break; + case PNG_GREYSCALE: + printf("greyscale\n"); + break; + case PNG_TRUECOLOR: + printf("truecolor\n"); + break; + case PNG_INDEXED: + printf("palette\n"); + break; + case PNG_GREYSCALE_ALPHA: + printf("greyscale with alpha\n"); + break; + case PNG_TRUECOLOR_ALPHA: + printf("truecolor with alpha\n"); + break; + default: + printf("unknown, this is not good\n"); + break; } printf("\tcompression:\t%s\n", png->compression_method?"unknown, this is not good":"inflate/deflate"); @@ -798,35 +798,35 @@ } switch(filter) { - case 0: /* none */ - memcpy(data+outpos, filtered+pos, png->width * stride); - break; - case 1: /* sub */ - png_filter_sub(stride, filtered+pos, data+outpos, png->width * stride); - break; - case 2: /* up */ - if(outpos) { - png_filter_up(filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); - } else { - png_filter_up(filtered+pos, data+outpos, 0, png->width*stride); - } - break; - case 3: /* average */ - if(outpos) { - png_filter_average(stride, filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); - } else { - png_filter_average(stride, filtered+pos, data+outpos, 0, png->width*stride); - } - break; - case 4: /* paeth */ - if(outpos) { - png_filter_paeth(stride, filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); - } else { - png_filter_paeth(stride, filtered+pos, data+outpos, 0, png->width*stride); - } - break; - default: - return PNG_UNKNOWN_FILTER; + case 0: /* none */ + memcpy(data+outpos, filtered+pos, png->width * stride); + break; + case 1: /* sub */ + png_filter_sub(stride, filtered+pos, data+outpos, png->width * stride); + break; + case 2: /* up */ + if(outpos) { + png_filter_up(filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); + } else { + png_filter_up(filtered+pos, data+outpos, 0, png->width*stride); + } + break; + case 3: /* average */ + if(outpos) { + png_filter_average(stride, filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); + } else { + png_filter_average(stride, filtered+pos, data+outpos, 0, png->width*stride); + } + break; + case 4: /* paeth */ + if(outpos) { + png_filter_paeth(stride, filtered+pos, data+outpos, data + outpos - (png->width*stride), png->width*stride); + } else { + png_filter_paeth(stride, filtered+pos, data+outpos, 0, png->width*stride); + } + break; + default: + return PNG_UNKNOWN_FILTER; } outpos += png->width * stride; @@ -884,31 +884,31 @@ char* png_error_string(int error) { switch(error) { - case PNG_NO_ERROR: - return "No error"; - case PNG_FILE_ERROR: - return "Unknown file error."; - case PNG_HEADER_ERROR: - return "No PNG header found. Are you sure this is a PNG?"; - case PNG_IO_ERROR: - return "Failure while reading file."; - case PNG_EOF_ERROR: - return "Reached end of file."; - case PNG_CRC_ERROR: - return "CRC or chunk length error."; - case PNG_MEMORY_ERROR: - return "Could not allocate memory."; - case PNG_ZLIB_ERROR: - return "zlib reported an error."; - case PNG_UNKNOWN_FILTER: - return "Unknown filter method used in scanline."; - case PNG_DONE: - return "PNG done"; - case PNG_NOT_SUPPORTED: - return "The PNG is unsupported by pnglite, too bad for you!"; - case PNG_WRONG_ARGUMENTS: - return "Wrong combination of arguments passed to png_open. You must use either a read_function or supply a file pointer to use."; - default: - return "Unknown error."; + case PNG_NO_ERROR: + return "No error"; + case PNG_FILE_ERROR: + return "Unknown file error."; + case PNG_HEADER_ERROR: + return "No PNG header found. Are you sure this is a PNG?"; + case PNG_IO_ERROR: + return "Failure while reading file."; + case PNG_EOF_ERROR: + return "Reached end of file."; + case PNG_CRC_ERROR: + return "CRC or chunk length error."; + case PNG_MEMORY_ERROR: + return "Could not allocate memory."; + case PNG_ZLIB_ERROR: + return "zlib reported an error."; + case PNG_UNKNOWN_FILTER: + return "Unknown filter method used in scanline."; + case PNG_DONE: + return "PNG done"; + case PNG_NOT_SUPPORTED: + return "The PNG is unsupported by pnglite, too bad for you!"; + case PNG_WRONG_ARGUMENTS: + return "Wrong combination of arguments passed to png_open. You must use either a read_function or supply a file pointer to use."; + default: + return "Unknown error."; }; } diff -Nru lebiniou-3.32/src/pnglite.h lebiniou-3.40/src/pnglite.h --- lebiniou-3.32/src/pnglite.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/pnglite.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/point2d.h lebiniou-3.40/src/point2d.h --- lebiniou-3.32/src/point2d.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/point2d.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/point3d.h lebiniou-3.40/src/point3d.h --- lebiniou-3.32/src/point3d.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/point3d.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/rgba.h lebiniou-3.40/src/rgba.h --- lebiniou-3.32/src/rgba.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/rgba.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/schemes.c lebiniou-3.40/src/schemes.c --- lebiniou-3.32/src/schemes.c 2019-11-27 15:05:04.000000000 +0000 +++ lebiniou-3.40/src/schemes.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/schemes.h lebiniou-3.40/src/schemes.h --- lebiniou-3.32/src/schemes.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/schemes.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/schemes_random.c lebiniou-3.40/src/schemes_random.c --- lebiniou-3.32/src/schemes_random.c 2019-11-27 16:57:01.000000000 +0000 +++ lebiniou-3.40/src/schemes_random.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/screenshot.c lebiniou-3.40/src/screenshot.c --- lebiniou-3.32/src/screenshot.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/screenshot.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/sequence.c lebiniou-3.40/src/sequence.c --- lebiniou-3.32/src/sequence.c 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/sequence.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/sequence.h lebiniou-3.40/src/sequence.h --- lebiniou-3.32/src/sequence.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequence.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -62,4 +62,6 @@ uint8_t Sequence_size(const Sequence_t *); +json_t *Sequence_to_json(const Sequence_t *, const uint8_t); + #endif /* __BINIOU_SEQUENCE_H */ diff -Nru lebiniou-3.32/src/sequence_load.c lebiniou-3.40/src/sequence_load.c --- lebiniou-3.32/src/sequence_load.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/sequence_load.c 2020-01-23 13:56:18.000000000 +0000 @@ -1,5 +1,6 @@ /* * Copyright 1994-2019 Olivier Girondel + * Copyright 2019 Laurent Marsac * * This file is part of lebiniou. * @@ -22,6 +23,187 @@ #include "images.h" #include "colormaps.h" +#define SEQ_VERSION_MIN 0 +#define SEQ_VERSION_MAX 0 + +Sequence_t * +Sequence_load_json(const char *file) +{ + if (file == NULL) { + xerror("Attempt to load a sequence with a NULL filename\n"); + } + + char *dot = strrchr(file, '.'); + if ((dot == NULL) || strcasecmp(dot, ".json")) { +#ifdef DEBUG + VERBOSE(printf("[!] Not a sequence filename: '%s'\n", file)); +#endif + return NULL; + } + +#ifdef DEBUG + VERBOSE(printf("[i] Loading sequence from file '%s'\n", file)); +#endif + + gchar *file_with_path = g_strdup_printf("%s/%s", Sequences_get_dir(), file); + json_t *parsed_json = json_load_file(file_with_path, 0, NULL); + g_free(file_with_path); + + if (NULL == parsed_json) { + VERBOSE(printf("[!] Failed to parse JSON from '%s'\n", file)); + return NULL; + } + + Sequence_t *s = NULL; + json_t *j_plugins; + + json_t *j_sequence_version = json_object_get(parsed_json, "version"); + assert(NULL != j_sequence_version); + int sequence_version = json_integer_value(j_sequence_version); + if ((sequence_version < SEQ_VERSION_MIN) || (sequence_version > SEQ_VERSION_MAX)) { + VERBOSE(printf("[!] Sequence version '%d' not supported\n", sequence_version)); + goto error; + } + + json_t *j_id = json_object_get(parsed_json, "id"); + assert(NULL != j_id); + s = Sequence_new(json_integer_value(j_id)); + *dot = '\0'; + s->name = strdup(file); + + /* get auto_colormaps */ + json_t *j_auto_colormaps = json_object_get(parsed_json, "auto_colormaps"); + if (NULL != j_auto_colormaps) { + s->auto_colormaps = json_is_boolean(j_auto_colormaps) ? + json_boolean_value(j_auto_colormaps) : json_integer_value(j_auto_colormaps); + } else { + s->auto_colormaps = 0; + goto bare_sequence; + } + assert((s->auto_colormaps == 0) || (s->auto_colormaps == 1)); +#ifdef DEBUG + printf("[i] Random colormaps: %s\n", (s->auto_colormaps ? "on" : "off")); +#endif + + /* if not auto*, get colormap name */ + if (!s->auto_colormaps) { + json_t *j_cmap = json_object_get(parsed_json, "colormap"); + assert(NULL != j_cmap); + const char *cmap = json_string_value(j_cmap); +#ifdef DEBUG + printf("[i] Need colormap: '%s'\n", cmap); +#endif + s->cmap_id = Colormaps_find(cmap); + // xfree(cmap); + } else { + s->cmap_id = Colormaps_random_id(); + } + + /* get auto_images */ + json_t *j_auto_images = json_object_get(parsed_json, "auto_images"); + if (NULL != j_auto_images) { + s->auto_images = json_is_boolean(j_auto_images) ? + json_boolean_value(j_auto_images) : json_integer_value(j_auto_colormaps);; + } else { + s->auto_images = 0; + } + assert((s->auto_images == 0) || (s->auto_images == 1)); +#ifdef DEBUG + printf("[i] Random images: %s\n", (s->auto_images ? "on" : "off")); +#endif + + /* if not auto*, get image name */ + if (!s->auto_images) { + json_t *j_image = json_object_get(parsed_json, "image"); + assert(NULL != j_image); + const char *image = json_string_value(j_image); +#ifdef DEBUG + printf("[i] Need image: '%s'\n", image); +#endif + if (images == NULL) { + VERBOSE(printf("[!] No images are loaded, won't find '%s'\n", image)); + goto error; + } else { + s->image_id = Images_find(image); + if (s->image_id == 0) { + VERBOSE(printf("[!] Image '%s' not found, using default\n", image)); + } + } + } else { + if (images == NULL) { + s->broken = 1; + s->image_id = -1; + s->auto_images = 0; + } else { + s->image_id = Images_random_id(); + } + } + +bare_sequence: + + /* get plugins */ + j_plugins = json_object_get(parsed_json, "plugins"); + assert(NULL != j_plugins); + unsigned n_plugins = json_array_size(j_plugins); + + for (u_short n = 0; n < n_plugins; n++) { + json_t *j_p = json_array_get(j_plugins, n); + + json_t *j_p_id = json_object_get(j_p, "id"); + assert(NULL != j_p_id); + int id = json_integer_value(j_p_id); + if (!id) { + goto error; + } + + json_t *j_p_version = json_object_get(j_p, "version"); + assert(NULL != j_p_version); + uint32_t version = json_integer_value(j_p_version); + + Plugin_t *p = Plugins_find((u_long)id); + if (p == NULL) { + goto error; + } + + if (p->version != version) { + if (p->check_version != NULL && p->check_version(version) == 0) { + VERBOSE(printf("[!] Plugin %s version is %d but trying to load from incompatible version %d\n", + p->name, p->version, version)); + goto error; + } + } + + json_t *j_p_mode = json_object_get(j_p, "mode"); + assert(NULL != j_p_mode); + const char *mode_str = json_string_value(j_p_mode); + + Layer_t *layer = Layer_new(p); + layer->mode = LayerMode_from_string(mode_str); + + json_t *j_p_lens = json_object_get(j_p, "lens"); + assert(NULL != j_p_lens); + if (json_is_boolean(j_p_lens) && (json_is_true(j_p_lens))) { + s->lens = p; + } + if (json_is_integer(j_p_lens) && (json_integer_value(j_p_lens))) { + s->lens = p; + } + + layer->plugin_parameters = json_deep_copy(json_object_get(j_p, "parameters")); + + s->layers = g_list_append(s->layers, (gpointer)layer); + } + + json_decref(parsed_json); + return s; + +error: + VERBOSE(printf("[!] Failed to load sequence from file '%s'\n", file)); + Sequence_delete(s); + json_decref(parsed_json); + + return NULL; +} /* * Left as an exercise to the reader: this code is not robust at all @@ -29,15 +211,13 @@ * But we are talibans and are not kind with wrong inputs. */ Sequence_t * -Sequence_load(const char *file) +Sequence_load_xml(const char *file) { Sequence_t *s = NULL; xmlDocPtr doc = NULL; /* XmlTree */ xmlNodePtr sequence_node = NULL, sequence_node_save = NULL, plugins_node = NULL; int res; long tmp; - char *dot = NULL; - gchar *blah = NULL; xmlChar *youhou; int legacy = 0; @@ -45,7 +225,7 @@ xerror("Attempt to load a sequence with a NULL filename\n"); } - dot = strrchr(file, '.'); + char *dot = strrchr(file, '.'); if ((dot == NULL) || strcasecmp(dot, ".xml")) { #ifdef DEBUG printf("[!] Not a sequence filename: '%s'\n", file); @@ -64,7 +244,7 @@ /* * build an XML tree from the file */ - blah = g_strdup_printf("%s/%s", Sequences_get_dir(), file); + gchar *blah = g_strdup_printf("%s/%s", Sequences_get_dir(), file); doc = xmlParseFile(blah); g_free(blah); @@ -85,7 +265,7 @@ } youhou = xmlGetProp(sequence_node, (const xmlChar *)"id"); - tmp = getintfield(youhou); + tmp = getintfield(youhou); xmlFree(youhou); if (tmp <= 0) { @@ -169,8 +349,8 @@ } } else { if (images == NULL) { - s->broken = 1; - s->image_id = -1; + s->broken = 1; + s->image_id = -1; s->auto_images = 0; } else { s->image_id = Images_random_id(); @@ -191,7 +371,7 @@ } while (plugins_node != NULL) { - u_char lens; + u_char lens; Layer_t *layer; Plugin_t *p; @@ -199,7 +379,7 @@ lens = !xmlStrcmp(plugins_node->name, (const xmlChar *)"lens"); youhou = xmlGetProp(plugins_node, (const xmlChar *)"id"); - tmp = getintfield(youhou); + tmp = getintfield(youhou); xmlFree(youhou); if (!tmp) { goto error; @@ -255,3 +435,20 @@ return NULL; } + +Sequence_t * +Sequence_load(const char *filename) +{ + char *dot = strrchr(filename, '.'); + if (dot != NULL) { + if (strncasecmp(dot, ".json", 5 * sizeof(char)) == 0) { + return Sequence_load_json(filename); + } + + if (strncasecmp(dot, ".xml", 4 * sizeof(char)) == 0) { + return Sequence_load_xml(filename); + } + } + + return NULL; +} diff -Nru lebiniou-3.32/src/sequencemanager.c lebiniou-3.40/src/sequencemanager.c --- lebiniou-3.32/src/sequencemanager.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequencemanager.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/sequencemanager_event.c lebiniou-3.40/src/sequencemanager_event.c --- lebiniou-3.32/src/sequencemanager_event.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequencemanager_event.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -20,99 +20,156 @@ #include "globals.h" #include "sequencemanager.h" +void +plugins_parameters_change(SequenceManager_t *sm, const char *delta, const float factor) +{ + json_t *params = plugin_parameter_change_selected(delta, factor); + const GList *ptr = Sequence_find(sm->cur, plugins->selected); + if (ptr != NULL) { + Layer_t *layer = (Layer_t *)ptr->data; + json_decref(layer->plugin_parameters); + layer->plugin_parameters = params; + } else { + json_decref(params); + } +} + int SequenceManager_event(SequenceManager_t *sm, const Event_t *e, const char auto_colormaps, const char auto_images) { switch (e->cmd) { - case BC_SWITCH: - if (e->arg0 == BA_LENS) { - SequenceManager_toggle_lens(sm->cur); - return 1; - } - break; - - case BC_MOVE: - if (e->arg0 == BA_UP) { - SequenceManager_move_selected_front(sm->cur); - return 1; - } else if (e->arg0 == BA_DOWN) { - SequenceManager_move_selected_back(sm->cur); - return 1; - } else { - return 0; - } - break; - - case BC_PREV: - if (e->arg0 == BA_LAYER_MODE) { - SequenceManager_prev_layer_mode(sm->cur); - } else { - SequenceManager_select_previous_plugin(sm->cur); - } - return 1; - break; - - case BC_NEXT: - if (e->arg0 == BA_LAYER_MODE) { - SequenceManager_next_layer_mode(sm->cur); - } else { - SequenceManager_select_next_plugin(sm->cur); - } - return 1; - break; - - case BC_RESET: - if (e->arg0 == BA_LAYER_MODE) { - SequenceManager_default_layer_mode(sm->cur); - return 1; - } else if (e->arg0 == BA_SEQUENCE) { - Sequence_clear(sm->cur, 0); - return 1; - } else { - return 0; - } - break; + case BC_SWITCH: + if (e->arg0 == BA_LENS) { + SequenceManager_toggle_lens(sm->cur); + return 1; + } + break; + + case BC_MOVE: + if (e->arg0 == BA_UP) { + SequenceManager_move_selected_front(sm->cur); + return 1; + } else if (e->arg0 == BA_DOWN) { + SequenceManager_move_selected_back(sm->cur); + return 1; + } else { + return 0; + } + break; + + case BC_PREV: + if (e->arg0 == BA_LAYER_MODE) { + SequenceManager_prev_layer_mode(sm->cur); + } else { + SequenceManager_select_previous_plugin(sm->cur); + } + return 1; + break; + + case BC_NEXT: + if (e->arg0 == BA_LAYER_MODE) { + SequenceManager_next_layer_mode(sm->cur); + } else { + SequenceManager_select_next_plugin(sm->cur); + } + return 1; + break; + + case BC_PARAM_PREV: + if (plugins->selected->parameters != NULL) { + json_t *j_params = plugins->selected->parameters(NULL); + uint8_t nb_params = plugin_parameter_number(j_params); + json_decref(j_params); + + /* authorised underlow */ + plugins->selected->selected_param = MIN((uint8_t)(plugins->selected->selected_param-1), nb_params-1); + } + return 1; + break; + + case BC_PARAM_NEXT: + if (plugins->selected->parameters != NULL) { + json_t *j_params = plugins->selected->parameters(NULL); + uint8_t nb_params = plugin_parameter_number(j_params); + json_decref(j_params); + + plugins->selected->selected_param = (plugins->selected->selected_param + 1) % nb_params; + } + return 1; + break; + + case BC_PARAM_DEC: + plugins_parameters_change(sm, "dec", 1); + return 1; + break; + + case BC_PARAM_INC: + plugins_parameters_change(sm, "inc", 1); + return 1; + break; + + case BC_PARAM_DEC_FAST: + plugins_parameters_change(sm, "dec", 10); + return 1; + break; + + case BC_PARAM_INC_FAST: + plugins_parameters_change(sm, "inc", 10); + return 1; + break; + + case BC_RESET: + if (e->arg0 == BA_LAYER_MODE) { + SequenceManager_default_layer_mode(sm->cur); + return 1; + } else if (e->arg0 == BA_SEQUENCE) { + Sequence_clear(sm->cur, 0); + return 1; + } else { + return 0; + } + break; - case BC_SAVE: - if (e->arg0 == BA_SEQUENCE_FULL) { + case BC_SAVE: + if (e->arg0 == BA_SEQUENCE_FULL) { #ifdef DEBUG - printf("[i] Save full sequence\n"); + printf("[i] Save full sequence\n"); #endif - Sequence_save(sm->cur, 0, SequenceManager_is_transient(sm, sm->cur), - TRUE, auto_colormaps, auto_images); - sm->curseq = sequences->seqs; - Shuffler_grow_one_left(sequences->shuffler); - return 1; - } else if (e->arg0 == BA_OVERWRITE_FULL) { + Sequence_save(sm->cur, 0, SequenceManager_is_transient(sm, sm->cur), + TRUE, auto_colormaps, auto_images); + sm->curseq = sequences->seqs; + Shuffler_grow_one_left(sequences->shuffler); + return 1; + } else if (e->arg0 == BA_OVERWRITE_FULL) { #ifdef DEBUG - printf("[i] Update full sequence\n"); + printf("[i] Update full sequence\n"); #endif - Sequence_save(sm->cur, 1, SequenceManager_is_transient(sm, sm->cur), - TRUE, auto_colormaps, auto_images); - return 1; - } else if (e->arg0 == BA_SEQUENCE_BARE) { + Sequence_save(sm->cur, 1, SequenceManager_is_transient(sm, sm->cur), + TRUE, auto_colormaps, auto_images); + return 1; + } else if (e->arg0 == BA_SEQUENCE_BARE) { #ifdef DEBUG - printf("[i] Save bare sequence\n"); + printf("[i] Save bare sequence\n"); #endif - Sequence_save(sm->cur, 0, SequenceManager_is_transient(sm, sm->cur), - FALSE, auto_colormaps, auto_images); - sm->curseq = sequences->seqs; - Shuffler_grow_one_left(sequences->shuffler); - return 1; - } else if (e->arg0 == BA_OVERWRITE_BARE) { + Sequence_save(sm->cur, 0, SequenceManager_is_transient(sm, sm->cur), + FALSE, auto_colormaps, auto_images); + sm->curseq = sequences->seqs; + Shuffler_grow_one_left(sequences->shuffler); + return 1; + } else if (e->arg0 == BA_OVERWRITE_BARE) { #ifdef DEBUG - printf("[i] Update bare sequence\n"); + printf("[i] Update bare sequence\n"); #endif - Sequence_save(sm->cur, 1, SequenceManager_is_transient(sm, sm->cur), - FALSE, auto_colormaps, auto_images); - return 1; - } - break; + Sequence_save(sm->cur, 1, SequenceManager_is_transient(sm, sm->cur), + FALSE, auto_colormaps, auto_images); + return 1; + } + break; - default: - break; + default: + break; } return 0; diff -Nru lebiniou-3.32/src/sequencemanager.h lebiniou-3.40/src/sequencemanager.h --- lebiniou-3.32/src/sequencemanager.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequencemanager.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/sequence_save.c lebiniou-3.40/src/sequence_save.c --- lebiniou-3.32/src/sequence_save.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequence_save.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -19,73 +19,68 @@ #include #include "globals.h" -#include "xmlutils.h" #include "sequence.h" #include "images.h" #include "colormaps.h" +#define SEQUENCE_VERSION 0 -static void -Sequence_write(const Sequence_t *s, const char *filename, - const uint8_t full) + +json_t * +Sequence_to_json(const Sequence_t *s, const uint8_t full) { - xmlDoc *doc; - GList *layers; - xmlNode *node, *plugins_node; - - /* FIXME check return code of xml* functions */ - doc = xmlNewDoc((const xmlChar *)"1.0"); - node = doc->children = xmlNewDocNode(doc, NULL, (const xmlChar *)"sequence", NULL); - xml_set_id(node, s->id); + json_t *sequence_j = json_object(); + json_object_set_new(sequence_j, "version", json_integer(SEQUENCE_VERSION)); + json_object_set_new(sequence_j, "id", json_integer(s->id)); if (full) { - /* here auto_colormaps and auto_images are 0 or 1, not -1 */ - xmlNewChild(node, NULL, (const xmlChar *)"auto_colormaps", - (const xmlChar *)((s->auto_colormaps) ? "1" : "0")); + json_object_set_new(sequence_j, "auto_colormaps", json_boolean(s->auto_colormaps)); if (!s->auto_colormaps) { - xmlNewTextChild(node, NULL, (const xmlChar *)"colormap", (const xmlChar *)Colormaps_name(s->cmap_id)); + json_object_set_new(sequence_j, "colormap", json_string(Colormaps_name(s->cmap_id))); } - xmlNewChild(node, NULL, (const xmlChar *)"auto_images", - (const xmlChar *)((s->auto_images) ? "1" : "0")); + json_object_set_new(sequence_j, "auto_images", json_boolean(s->auto_images)); if (!s->auto_images) { - xmlNewTextChild(node, NULL, (const xmlChar *)"image", (const xmlChar *)Images_name(s->image_id)); + json_object_set_new(sequence_j, "image", json_string(Images_name(s->image_id))); } } - /* create block */ - plugins_node = xmlNewChild(node, NULL, (const xmlChar *)"plugins", NULL); + json_t *plugins_j = json_array(); /* iterate over plugins list */ - for (layers = g_list_first(s->layers); layers != NULL; layers = g_list_next(layers)) { + for (GList *layers = g_list_first(s->layers); layers != NULL; layers = g_list_next(layers)) { Layer_t *layer = (Layer_t *)layers->data; Plugin_t *p = layer->plugin; - xmlNode *nd; - const char *tmp; - /* decide whether block is or */ - if ((s->lens != NULL) && (p == s->lens)) { - tmp = "lens"; - } else { - tmp = "plugin"; + json_t *j_plugin = json_object(); + json_object_set_new(j_plugin, "lens", json_boolean((s->lens != NULL) && (p == s->lens))); + json_object_set_new(j_plugin, "name", json_string(p->name)); + json_object_set_new(j_plugin, "id", json_integer(p->id)); + json_object_set_new(j_plugin, "version", json_integer(p->version)); + json_object_set_new(j_plugin, "mode", json_string(LayerMode_to_string(layer->mode))); + + if (NULL != p->parameters) { + json_t *j_params = (json_t *)p->parameters(NULL); + json_object_set_new(j_plugin, "parameters", plugin_parameters_to_saved_parameters(j_params)); + json_decref(j_params); } - nd = xmlNewChild(plugins_node, NULL, (const xmlChar *)tmp, NULL); + json_array_append_new(plugins_j, j_plugin); + } - /* we store the name, but only for informational purposes */ - xmlSetProp(nd, (const xmlChar *)"name", (const xmlChar *)p->name); + json_object_set_new(sequence_j, "plugins", plugins_j); - /* store id */ - xml_set_id(nd, p->id); + return sequence_j; +} - /* store layer mode */ - tmp = LayerMode_to_string(layer->mode); - xmlSetProp(nd, (const xmlChar *)"mode", (const xmlChar *)tmp); - } - xmlKeepBlanksDefault(0); - xmlSaveFormatFile(filename, doc, 1); - xmlFreeDoc(doc); +static int +Sequence_write_json(const Sequence_t *s, const char *filename, const uint8_t full) +{ + json_t *sequence_j = Sequence_to_json(s, full); + int ret = json_dump_file(sequence_j, filename, JSON_INDENT(4)); + json_decref(sequence_j); + return ret; } @@ -93,7 +88,6 @@ Sequence_save(Sequence_t *s, int overwrite, const int is_transient, const uint8_t bare, const char auto_colormaps, const char auto_images) { - char *filename = NULL; Sequence_t *store = NULL; if (g_list_length(s->layers) == 0) { @@ -115,24 +109,15 @@ s->id = unix_timestamp(); } - if (s->name != NULL) { - xfree(s->name); + if (s->name == NULL) { + s->name = g_strdup_printf("%" PRIu32, s->id); } - s->name = g_strdup_printf("%"PRIu32, s->id); - printf("[s] Saving sequence %"PRIu32"\n", s->id); + printf("[s] Saving sequence %" PRIu32 "\n", s->id); const gchar *blah = Sequences_get_dir(); rmkdir(blah); // g_free(blah); - if (overwrite) { - filename = g_strdup_printf("%s/%s.xml", blah, s->name); - } else { - filename = g_strdup_printf("%s/%"PRIu32".xml", blah, s->id); - } - - printf("[s] Filename: %s\n", filename); - /* set auto_colormaps from context if needed */ if (s->auto_colormaps == -1) { s->auto_colormaps = auto_colormaps; @@ -142,9 +127,29 @@ s->auto_images = auto_images; } - Sequence_write(s, filename, bare); + char *filename_json = NULL; + char *filename_xml = NULL; + if (overwrite) { + filename_json = g_strdup_printf("%s/%s.json", blah, s->name); + filename_xml = g_strdup_printf("%s/%s.xml", blah, s->name); + } else { + filename_json = g_strdup_printf("%s/%" PRIu32 ".json", blah, s->id); + } + + printf("[s] Filename: %s\n", filename_json); - g_free(filename); + if (Sequence_write_json(s, filename_json, bare) == 0 && overwrite) { + /* Erase old XML sequence */ + FILE *fp = fopen(filename_xml, "r"); + if (fp != NULL) { + fclose(fp); + if (remove(filename_xml) == 0) { + printf("[s] Removed old XML sequence %s\n", filename_xml); + } + } + } + g_free(filename_json); + g_free(filename_xml); s->changed = 0; diff -Nru lebiniou-3.32/src/sequences.c lebiniou-3.40/src/sequences.c --- lebiniou-3.32/src/sequences.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequences.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/sequences.h lebiniou-3.40/src/sequences.h --- lebiniou-3.32/src/sequences.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/sequences.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/shuffler.c lebiniou-3.40/src/shuffler.c --- lebiniou-3.32/src/shuffler.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/shuffler.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -181,26 +181,26 @@ } switch (s->mode) { - case BS_NONE: - VERBOSE(printf("[!] WARNING tried to get a value from a shuffler in BS_NONE mode\n")); - new = 0; - break; - - case BS_SHUFFLE: - new = Shuffler_get_shuffle(s); - break; - - case BS_CYCLE: - new = Shuffler_get_cycle(s); - break; - - case BS_RANDOM: - new = Shuffler_get_random(s); - break; - - default: - xerror("Bad shuffler mode %d\n", s->mode); - break; + case BS_NONE: + VERBOSE(printf("[!] WARNING tried to get a value from a shuffler in BS_NONE mode\n")); + new = 0; + break; + + case BS_SHUFFLE: + new = Shuffler_get_shuffle(s); + break; + + case BS_CYCLE: + new = Shuffler_get_cycle(s); + break; + + case BS_RANDOM: + new = Shuffler_get_random(s); + break; + + default: + xerror("Bad shuffler mode %d\n", s->mode); + break; } if (s->verbose) { diff -Nru lebiniou-3.32/src/shuffler.h lebiniou-3.40/src/shuffler.h --- lebiniou-3.32/src/shuffler.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/shuffler.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/signals.c lebiniou-3.40/src/signals.c --- lebiniou-3.32/src/signals.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/signals.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -27,18 +27,18 @@ printf("\n[+] Got signal %d !\n", sig); switch (sig) { - case SIGTERM: - case SIGHUP: - case SIGINT: - exit(1); - if (!biniou_stop()) { - exit(0); - } - break; - - default: - printf("\n[!] Unhandled signal %d\n", sig); - break; + case SIGTERM: + case SIGHUP: + case SIGINT: + exit(1); + if (!biniou_stop()) { + exit(0); + } + break; + + default: + printf("\n[!] Unhandled signal %d\n", sig); + break; } } diff -Nru lebiniou-3.32/src/spline.c lebiniou-3.40/src/spline.c --- lebiniou-3.32/src/spline.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/spline.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/spline.h lebiniou-3.40/src/spline.h --- lebiniou-3.32/src/spline.h 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/spline.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/translation.c lebiniou-3.40/src/translation.c --- lebiniou-3.32/src/translation.c 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/translation.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -79,7 +79,7 @@ for (i = 0; i < WIDTH; i++) { set_pixel_nc(dst, i, j, get_pixel_nc(src, (u_short)p[j * WIDTH + i].x, - (u_short)p[j * WIDTH + i].y)); + (u_short)p[j * WIDTH + i].y)); } } @@ -98,8 +98,8 @@ p[j * WIDTH + i].y += p[j * WIDTH + i].dy; set_pixel_nc(dst, i, j, get_pixel_nc(src, - (u_short)(p[j * WIDTH + i].x + WIDTH ) % WIDTH, - (u_short)(p[j * WIDTH + i].y + HEIGHT) % HEIGHT)); + (u_short)(p[j * WIDTH + i].x + WIDTH ) % WIDTH, + (u_short)(p[j * WIDTH + i].y + HEIGHT) % HEIGHT)); } /* save coordinages cropped to screen size */ diff -Nru lebiniou-3.32/src/translation.h lebiniou-3.40/src/translation.h --- lebiniou-3.32/src/translation.h 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/translation.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/utils.c lebiniou-3.40/src/utils.c --- lebiniou-3.32/src/utils.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/utils.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -95,6 +95,21 @@ } +double +xatof(const char *value) +{ + double f; + + errno = 0; + f = strtod(value, NULL); + if (errno != 0) { + xperror("strtod"); + } + + return f; +} + + long xatol(const char *value) { diff -Nru lebiniou-3.32/src/utils.h lebiniou-3.40/src/utils.h --- lebiniou-3.32/src/utils.h 2019-11-09 16:34:14.000000000 +0000 +++ lebiniou-3.40/src/utils.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -50,6 +50,7 @@ #define xfree(ptr) do { free(ptr); ptr = NULL; } while (0) void *xrealloc(void *, size_t); +double xatof(const char *); long xatol(const char *); void rmkdir(const char *); diff -Nru lebiniou-3.32/src/webcam_controls.c lebiniou-3.40/src/webcam_controls.c --- lebiniou-3.32/src/webcam_controls.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/webcam_controls.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/webcam.h lebiniou-3.40/src/webcam.h --- lebiniou-3.32/src/webcam.h 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/webcam.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/webcam_init_uninit.c lebiniou-3.40/src/webcam_init_uninit.c --- lebiniou-3.32/src/webcam_init_uninit.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/webcam_init_uninit.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -122,19 +122,19 @@ } switch (cam->io) { - case IO_METHOD_READ: - if (!(cap.capabilities & V4L2_CAP_READWRITE)) { - fprintf(stderr, "[!] %s%d does not support read i/o\n", video_base, cam->cam_no); - return -1; - } - break; + case IO_METHOD_READ: + if (!(cap.capabilities & V4L2_CAP_READWRITE)) { + fprintf(stderr, "[!] %s%d does not support read i/o\n", video_base, cam->cam_no); + return -1; + } + break; - case IO_METHOD_MMAP: - if (!(cap.capabilities & V4L2_CAP_STREAMING)) { - fprintf(stderr, "[!] %s%d does not support streaming i/o\n", video_base, cam->cam_no); - return -1; - } - break; + case IO_METHOD_MMAP: + if (!(cap.capabilities & V4L2_CAP_STREAMING)) { + fprintf(stderr, "[!] %s%d does not support streaming i/o\n", video_base, cam->cam_no); + return -1; + } + break; } /* Select video input, video standard and tune here. */ @@ -152,13 +152,13 @@ if (-1 == xioctl(cam->fd, VIDIOC_S_CROP, &crop)) { switch (errno) { - case EINVAL: - /* Cropping not supported. */ - break; - - default: - /* Errors ignored. */ - break; + case EINVAL: + /* Cropping not supported. */ + break; + + default: + /* Errors ignored. */ + break; } } } else { @@ -193,13 +193,13 @@ #endif switch (cam->io) { - case IO_METHOD_READ: - init_read(fmt.fmt.pix.sizeimage, cam); - break; - - case IO_METHOD_MMAP: - init_mmap(cam); - break; + case IO_METHOD_READ: + init_read(fmt.fmt.pix.sizeimage, cam); + break; + + case IO_METHOD_MMAP: + init_mmap(cam); + break; } #ifdef DEBUG printf("[i] Webcam %d initialized\n", cam->cam_no); @@ -215,16 +215,16 @@ int i; switch (cam->io) { - case IO_METHOD_READ: - xfree(cam->buffers[0].start); - break; - - case IO_METHOD_MMAP: - for (i = 0; i < cam->n_buffers; ++i) - if (-1 == munmap(cam->buffers[i].start, cam->buffers[i].length)) { - xperror("munmap"); - } - break; + case IO_METHOD_READ: + xfree(cam->buffers[0].start); + break; + + case IO_METHOD_MMAP: + for (i = 0; i < cam->n_buffers; ++i) + if (-1 == munmap(cam->buffers[i].start, cam->buffers[i].length)) { + xperror("munmap"); + } + break; } xfree(cam->buffers); diff -Nru lebiniou-3.32/src/webcam_loop.c lebiniou-3.40/src/webcam_loop.c --- lebiniou-3.32/src/webcam_loop.c 2019-12-04 14:08:03.000000000 +0000 +++ lebiniou-3.40/src/webcam_loop.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -74,58 +74,58 @@ struct v4l2_buffer buf; switch (cam->io) { - case IO_METHOD_READ: - if (-1 == read(cam->fd, - cam->buffers[0].start, - cam->buffers[0].length)) { - switch (errno) { - case EAGAIN: - return 0; - - case EIO: - /* Could ignore EIO, see spec. */ - - /* fall through */ - - default: - xperror("read"); + case IO_METHOD_READ: + if (-1 == read(cam->fd, + cam->buffers[0].start, + cam->buffers[0].length)) { + switch (errno) { + case EAGAIN: + return 0; + + case EIO: + /* Could ignore EIO, see spec. */ + + /* fall through */ + + default: + xperror("read"); + } } - } - process_image(cam, cam->buffers[0].start); + process_image(cam, cam->buffers[0].start); - break; + break; - case IO_METHOD_MMAP: - CLEAR(buf); + case IO_METHOD_MMAP: + CLEAR(buf); - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_MMAP; + buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf.memory = V4L2_MEMORY_MMAP; - if (-1 == xioctl(cam->fd, VIDIOC_DQBUF, &buf)) { - switch (errno) { - case EAGAIN: - return 0; + if (-1 == xioctl(cam->fd, VIDIOC_DQBUF, &buf)) { + switch (errno) { + case EAGAIN: + return 0; - case EIO: - /* Could ignore EIO, see spec. */ + case EIO: + /* Could ignore EIO, see spec. */ - /* fall through */ + /* fall through */ - default: - xperror("VIDIOC_DQBUF"); + default: + xperror("VIDIOC_DQBUF"); + } } - } - assert((int)buf.index < cam->n_buffers); + assert((int)buf.index < cam->n_buffers); - // printf("index %d, process_image(%d) bytes\n", buf.index, (int)cam->buffers[buf.index].length); - process_image(cam, cam->buffers[buf.index].start); - // printf("process_image done cam #%d\n", cam->cam_no); - if (-1 == xioctl(cam->fd, VIDIOC_QBUF, &buf)) { - xperror("VIDIOC_QBUF"); - } + // printf("index %d, process_image(%d) bytes\n", buf.index, (int)cam->buffers[buf.index].length); + process_image(cam, cam->buffers[buf.index].start); + // printf("process_image done cam #%d\n", cam->cam_no); + if (-1 == xioctl(cam->fd, VIDIOC_QBUF, &buf)) { + xperror("VIDIOC_QBUF"); + } - break; + break; } return 1; diff -Nru lebiniou-3.32/src/webcam_open_close.c lebiniou-3.40/src/webcam_open_close.c --- lebiniou-3.32/src/webcam_open_close.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/webcam_open_close.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/webcam_options.c lebiniou-3.40/src/webcam_options.c --- lebiniou-3.32/src/webcam_options.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/webcam_options.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/webcam_start_stop.c lebiniou-3.40/src/webcam_start_stop.c --- lebiniou-3.32/src/webcam_start_stop.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/webcam_start_stop.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * @@ -27,32 +27,32 @@ enum v4l2_buf_type type; switch (cam->io) { - case IO_METHOD_READ: - /* Nothing to do. */ - break; - - case IO_METHOD_MMAP: - for (i = 0; i < cam->n_buffers; ++i) { - struct v4l2_buffer buf; - - CLEAR(buf); - - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_MMAP; - buf.index = i; - - if (-1 == xioctl(cam->fd, VIDIOC_QBUF, &buf)) { - xperror("VIDIOC_QBUF"); + case IO_METHOD_READ: + /* Nothing to do. */ + break; + + case IO_METHOD_MMAP: + for (i = 0; i < cam->n_buffers; ++i) { + struct v4l2_buffer buf; + + CLEAR(buf); + + buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf.memory = V4L2_MEMORY_MMAP; + buf.index = i; + + if (-1 == xioctl(cam->fd, VIDIOC_QBUF, &buf)) { + xperror("VIDIOC_QBUF"); + } } - } - type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - if (-1 == xioctl(cam->fd, VIDIOC_STREAMON, &type)) { - xperror("VIDIOC_STREAMON"); - } + if (-1 == xioctl(cam->fd, VIDIOC_STREAMON, &type)) { + xperror("VIDIOC_STREAMON"); + } - break; + break; } } @@ -63,17 +63,17 @@ enum v4l2_buf_type type; switch (cam->io) { - case IO_METHOD_READ: - /* Nothing to do. */ - break; - - case IO_METHOD_MMAP: - type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - - if (-1 == xioctl(cam->fd, VIDIOC_STREAMOFF, &type)) { - xperror("VIDIOC_STREAMOFF"); - } + case IO_METHOD_READ: + /* Nothing to do. */ + break; + + case IO_METHOD_MMAP: + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + if (-1 == xioctl(cam->fd, VIDIOC_STREAMOFF, &type)) { + xperror("VIDIOC_STREAMOFF"); + } - break; + break; } } diff -Nru lebiniou-3.32/src/xmlutils.c lebiniou-3.40/src/xmlutils.c --- lebiniou-3.32/src/xmlutils.c 2019-11-02 16:08:55.000000000 +0000 +++ lebiniou-3.40/src/xmlutils.c 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. * diff -Nru lebiniou-3.32/src/xmlutils.h lebiniou-3.40/src/xmlutils.h --- lebiniou-3.32/src/xmlutils.h 2019-11-11 14:08:38.000000000 +0000 +++ lebiniou-3.40/src/xmlutils.h 2020-01-22 18:33:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 1994-2019 Olivier Girondel + * Copyright 1994-2020 Olivier Girondel * * This file is part of lebiniou. *