Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HE-AAC v2 UK stations have no audio (Ubuntu 20.04) and problems when compiling on cygwin #61

Closed
jpuigs opened this issue May 1, 2020 · 16 comments

Comments

@jpuigs
Copy link

jpuigs commented May 1, 2020

I deleted accidentally the Ubuntu 18.04 partition on my HDD, so I had to install a new one....
Now I have Ubuntu 20-04 , and I compile as usual....
installing all libs
cmake ..
make
sudo make install.....

But when playing UK DAB+ stations, I get no sound, and in console I see... (AAC) (AAC) (AAC) (AAC) (AAC) (AAC)......
The legacy DAB MP2 stations work fine.

I don't know if ot has something to do, but on make command output I see these warnings...

[ 70%] Building CXX object src/CMakeFiles/dablin_gtk.dir/mot_manager.cpp.o
[ 73%] Building CXX object src/CMakeFiles/dablin.dir/eti_player.cpp.o
/home/jordi/Descargas/dablin/src/fic_decoder.cpp: In static member function ‘static std::string FICDecoder::ConvertLTOToString(int)’:
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: warning: ‘%+03d’ directive output may be truncated writing between 3 and 11 bytes into a region of size 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [0, 30]
In file included from /usr/include/stdio.h:867,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.h:22,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.cpp:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output between 7 and 15 bytes into a destination of size 7
   67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |        __bos (__s), __fmt, __va_arg_pack ());
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 75%] Building CXX object src/CMakeFiles/dablin_gtk.dir/pad_decoder.cpp.o
[ 78%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o
/home/jordi/Descargas/dablin/src/fic_decoder.cpp: In member function ‘void FICDecoder::ProcessFIG0_9(const uint8_t*, size_t)’:
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: warning: ‘%+03d’ directive output may be truncated writing between 3 and 11 bytes into a region of size 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [0, 30]
In file included from /usr/include/stdio.h:867,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.h:22,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.cpp:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output between 7 and 15 bytes into a destination of size 7
   67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |        __bos (__s), __fmt, __va_arg_pack ());
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 80%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk_sls.cpp.o
[ 82%] Building CXX object src/CMakeFiles/dablin.dir/dab_decoder.cpp.o
[ 85%] Building CXX object src/CMakeFiles/dablin.dir/fic_decoder.cpp.o
[ 87%] Building CXX object src/CMakeFiles/dablin.dir/pcm_output.cpp.o
[ 90%] Building CXX object src/CMakeFiles/dablin.dir/tools.cpp.o
/home/jordi/Descargas/dablin/src/fic_decoder.cpp: In static member function ‘static std::string FICDecoder::ConvertLTOToString(int)’:
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: warning: ‘%+03d’ directive output may be truncated writing between 3 and 11 bytes into a region of size 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: note: directive argument in the range [0, 30]
In file included from /usr/include/stdio.h:867,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.h:22,
                 from /home/jordi/Descargas/dablin/src/fic_decoder.cpp:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output between 7 and 15 bytes into a destination of size 7
   67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |        __bos (__s), __fmt, __va_arg_pack ());
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 92%] Building CXX object src/CMakeFiles/dablin.dir/version.cpp.o

I've tried a one year ago version I have running on windows (cygwin) and sound is OK on all channels.

But I've tried to compile a new version, and I have a lot of errors, both normal and next branches.

Jordi@PC-Jordi ~/Descargas/dablin/build
$ cmake ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++.exe
-- Check for working CXX compiler: /usr/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Looking for stdio.h
-- Looking for stdio.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for memset
-- Looking for memset - found
-- Looking for memmove
-- Looking for memmove - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for time.h
-- Looking for time.h - found
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.3") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Checking for module 'sdl2'
--   Found sdl2, version 2.0.7
-- Checking for module 'libmpg123'
--   Found libmpg123, version 1.25.10
-- Checking for module 'gtkmm-3.0'
--   Found gtkmm-3.0, version 3.22.2
-- Found FAAD: /usr/local/lib/libfaad.dll.a
-- Found ICONV: /usr/lib/libiconv.dll.a
-- Performing Test NATIVE_ATOMICS_SUPPORT
-- Performing Test NATIVE_ATOMICS_SUPPORT - Success
--
-- ##########################################################
-- ## Building version: 1.13.0
-- ## Using install prefix: /usr/local
-- ##########################################################
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/Jordi/Descargas/dablin/build

Jordi@PC-Jordi ~/Descargas/dablin/build
$ make
make[1]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
Scanning dependencies of target fec
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
[  2%] Building C object fec/CMakeFiles/fec.dir/encode_rs_char.c.o
[  4%] Building C object fec/CMakeFiles/fec.dir/decode_rs_char.c.o
[  7%] Building C object fec/CMakeFiles/fec.dir/init_rs_char.c.o
[  9%] Linking C static library libfec.a
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
[  9%] Built target fec
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
Scanning dependencies of target rs_speedtest
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
[ 12%] Building C object fec/test/CMakeFiles/rs_speedtest.dir/rs_speedtest.c.o  
[ 14%] Linking C executable rs_speedtest.exe
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
[ 14%] Built target rs_speedtest
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
Scanning dependencies of target rstest
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
[ 17%] Building C object fec/test/CMakeFiles/rstest.dir/rstest.c.o
[ 19%] Linking C executable rstest.exe
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
[ 19%] Built target rstest
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
Scanning dependencies of target dablin
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
[ 21%] Building CXX object src/CMakeFiles/dablin.dir/sdl_output.cpp.o
[ 24%] Building CXX object src/CMakeFiles/dablin.dir/dabplus_decoder.cpp.o      
[ 26%] Building CXX object src/CMakeFiles/dablin.dir/ensemble_source.cpp.o      
[ 29%] Building CXX object src/CMakeFiles/dablin.dir/ensemble_player.cpp.o      
[ 31%] Building CXX object src/CMakeFiles/dablin.dir/edi_source.cpp.o
[ 34%] Building CXX object src/CMakeFiles/dablin.dir/edi_player.cpp.o
[ 36%] Building CXX object src/CMakeFiles/dablin.dir/eti_source.cpp.o
[ 39%] Building CXX object src/CMakeFiles/dablin.dir/eti_player.cpp.o
[ 41%] Building CXX object src/CMakeFiles/dablin.dir/dab_decoder.cpp.o
[ 43%] Building CXX object src/CMakeFiles/dablin.dir/fic_decoder.cpp.o
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp: En la función miembro static ‘static std::string FICDecoder::ConvertLTOToString(int)’:
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: aviso: la salida de la directiva ‘%+03d’ podría truncarse escribiendo entre 3 y 11 bytes en una región de tamaño 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [0, 30]
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:10: nota: ‘snprintf’ manda entre 7 y 15 bytes a un destino de tamaño 7
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp: En la función miembro ‘void FICDecoder::ProcessFIG0_9(const uint8_t*, size_t)’:
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: aviso: la salida de la directiva ‘%+03d’ podría truncarse escribiendo entre 3 y 11 bytes en una región de tamaño 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [0, 30]
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:10: nota: ‘snprintf’ manda entre 7 y 15 bytes a un destino de tamaño 7
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 46%] Building CXX object src/CMakeFiles/dablin.dir/pcm_output.cpp.o
[ 48%] Building CXX object src/CMakeFiles/dablin.dir/tools.cpp.o
[ 51%] Building CXX object src/CMakeFiles/dablin.dir/version.cpp.o
[ 53%] Building CXX object src/CMakeFiles/dablin.dir/dablin.cpp.o
[ 56%] Linking CXX executable dablin.exe
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
[ 56%] Built target dablin
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
Scanning dependencies of target dablin_gtk
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[2]: se entra en el directorio '/home/Jordi/Descargas/dablin/build'
[ 58%] Building CXX object src/CMakeFiles/dablin_gtk.dir/sdl_output.cpp.o       
[ 60%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dabplus_decoder.cpp.o  
[ 63%] Building CXX object src/CMakeFiles/dablin_gtk.dir/ensemble_source.cpp.o  
[ 65%] Building CXX object src/CMakeFiles/dablin_gtk.dir/ensemble_player.cpp.o  
[ 68%] Building CXX object src/CMakeFiles/dablin_gtk.dir/edi_source.cpp.o       
[ 70%] Building CXX object src/CMakeFiles/dablin_gtk.dir/edi_player.cpp.o       
[ 73%] Building CXX object src/CMakeFiles/dablin_gtk.dir/eti_source.cpp.o       
[ 75%] Building CXX object src/CMakeFiles/dablin_gtk.dir/eti_player.cpp.o       
[ 78%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dab_decoder.cpp.o      
[ 80%] Building CXX object src/CMakeFiles/dablin_gtk.dir/fic_decoder.cpp.o      
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp: En la función miembro static ‘static std::string FICDecoder::ConvertLTOToString(int)’:
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: aviso: la salida de la directiva ‘%+03d’ podría truncarse escribiendo entre 3 y 11 bytes en una región de tamaño 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [0, 30]
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:10: nota: ‘snprintf’ manda entre 7 y 15 bytes a un destino de tamaño 7
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp: En la función miembro ‘void FICDecoder::ProcessFIG0_9(const uint8_t*, size_t)’:
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:44: aviso: la salida de la directiva ‘%+03d’ podría truncarse escribiendo entre 3 y 11 bytes en una región de tamaño 7 [-Wformat-truncation=]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                            ^~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [-1073741824, 1073741823]
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |                                           ^~~~~~~~~~~~
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:43: nota: argumento de la directiva en el rango de [0, 30]
/home/Jordi/Descargas/dablin/src/fic_decoder.cpp:873:10: nota: ‘snprintf’ manda entre 7 y 15 bytes a un destino de tamaño 7
  873 |  snprintf(lto_string, sizeof(lto_string), "%+03d:%02d", value / 2, (value % 2) ? 30 : 0);
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 82%] Building CXX object src/CMakeFiles/dablin_gtk.dir/pcm_output.cpp.o       
[ 85%] Building CXX object src/CMakeFiles/dablin_gtk.dir/tools.cpp.o
[ 87%] Building CXX object src/CMakeFiles/dablin_gtk.dir/version.cpp.o
[ 90%] Building CXX object src/CMakeFiles/dablin_gtk.dir/mot_manager.cpp.o      
[ 92%] Building CXX object src/CMakeFiles/dablin_gtk.dir/pad_decoder.cpp.o      
[ 95%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o       
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
                 desde /usr/include/glibmm-2.4/glibmm/thread.h:49,
                 desde /usr/include/glibmm-2.4/glibmm.h:88,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:87,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:794:56: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void (*)(sigc::internal::slot_rep*)’} [-Wcast-function-type]
  794 |           (reinterpret_cast<call_type>(slot.rep_->call_))(slot.rep_);
      |                                                        ^
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit_reverse(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:821:55: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void (*)(sigc::internal::slot_rep*)’} [-Wcast-function-type]
  821 |           (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_);
      |                                                       ^
En el fichero incluido desde /usr/include/glibmm-2.4/glibmm.h:90,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:87,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/glibmm-2.4/glibmm/threads.h: En la función miembro ‘GPrivate* Glib::Threads::Private<T>::gobj()’:
/usr/include/glibmm-2.4/glibmm/threads.h:660:29: error: cannot convert ‘GPrivate’ {aka ‘_GPrivate’} to ‘GPrivate*’ {aka ‘_GPrivate*’} in return
  660 |   GPrivate* gobj() { return gobject_; }
      |                             ^~~~~~~~
      |                             |
      |                             GPrivate {aka _GPrivate}
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:100,
                 desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
                 desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
                 desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
                 desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:95,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h: En el ámbito global:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:66:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   66 |   void (*__gtk_reserved1);
      |        ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:67:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   67 |   void (*__gtk_reserved2);
      |        ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:68:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
   68 |   void (*__gtk_reserved3);
      |        ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:69:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
   69 |   void (*__gtk_reserved4);
      |        ^
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:271,
                 desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
                 desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
                 desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
                 desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:95,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:74:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   74 |   void (*__gtk_reserved1);
      |        ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:75:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   75 |   void (*__gtk_reserved2);
      |        ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:76:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
   76 |   void (*__gtk_reserved3);
      |        ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:77:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
   77 |   void (*__gtk_reserved4);
      |        ^
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
                 desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
                 desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
                 desde /usr/include/glibmm-2.4/glibmm/thread.h:49,
                 desde /usr/include/glibmm-2.4/glibmm.h:88,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:87,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98:   se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2298:7:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t<int>)’ {aka ‘void (*)(sigc::internal::slot_rep*, const Glib::ustring&, const int&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  191 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘void (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void (*)(sigc::internal::slot_rep*, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  155 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call0<T_functor, T_return>::address())(void*) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:527:82:   se requiere desde ‘sigc::slot0<T_return>::slot0(const T_functor&) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1752:26:   se requiere desde ‘sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:256:114:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:121:14: aviso: cast between incompatible function types from ‘void (*)(sigc::internal::slot_rep*)’ to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  121 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:297:88:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<_GdkEventKey*>)’ {aka ‘bool (*)(sigc::internal::slot_rep*, _GdkEventKey* const&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  155 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:301:96:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<_GdkEventConfigure*>)’ {aka ‘bool (*)(sigc::internal::slot_rep*, _GdkEventConfigure* const&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventAny*>; T_return = bool; T_arg1 = _GdkEventAny*; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventAny*>; T_return = bool; T_arg1 = _GdkEventAny*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventAny*>; T_return = bool; T_arg1 = _GdkEventAny*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:341:94:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<_GdkEventAny*>)’ {aka ‘bool (*)(sigc::internal::slot_rep*, _GdkEventAny* const&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98:   se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:352:108:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘int (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<const Gtk::TreeIter&>, sigc::type_trait_take_t<const Gtk::TreeIter&>)’ {aka ‘int (*)(sigc::internal::slot_rep*, const Gtk::TreeIter&, const Gtk::TreeIter&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  191 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:415:83:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘void (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<double>)’ {aka ‘void (*)(sigc::internal::slot_rep*, const double&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  155 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&, void>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&; sigc::internal::hook = void* (*)(void*)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98:   se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&, void>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&, void>, Glib::RefPtr<Gtk::TreeModel>, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2416:5:   se requiere desde ‘void Gtk::TreeView_Private::_connect_auto_store_numeric_editable_signal_handler(Gtk::TreeView*, Gtk::CellRenderer*, const Gtk::TreeModelColumn<ColumnType>&) [con ColumnType = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2315:95:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void (*)(sigc::internal::slot_rep*, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void (*)(sigc::internal::slot_rep*, const Glib::ustring&, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} [-Wcast-function-type]
  191 |     { return reinterpret_cast<hook>(&call_it); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
                 desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
                 desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
                 desde /usr/include/glibmm-2.4/glibmm/thread.h:49,
                 desde /usr/include/glibmm-2.4/glibmm.h:88,
                 desde /usr/include/gtkmm-3.0/gtkmm.h:87,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
                 desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘T_return sigc::slot2<T_return, T_arg1, T_arg2>::operator()(sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type_, sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type_) const [con T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type_ = const Glib::ustring&; sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type_ = const int&]’:
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108:39:   se requiere desde ‘typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type sigc::adaptor_functor<T_functor>::operator()(T_arg1, T_arg2) const [con T_arg1 = const Glib::ustring&; T_arg2 = int&; T_functor = sigc::slot<void, const Glib::ustring&, int>; typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type = void]’
/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1136:35:   se requiere desde ‘typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()(T_arg1) [con T_arg1 = const Glib::ustring&; T_functor = sigc::slot<void, const Glib::ustring&, int>; T_type1 = int; typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type = void]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:148:20:   se requiere desde ‘static T_return sigc::internal::slot_call1<T_functor, T_return, T_arg1>::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t<T_arg3>) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::type_trait_take_t<T_arg3> = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:37:   se requiere desde ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* (*)(void*)]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90:   se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26:   se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5:   se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:776:17: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* (*)(void*)’} to ‘sigc::slot2<void, const Glib::ustring&, int>::call_type’ {aka ‘void (*)(sigc::internal::slot_rep*, const Glib::ustring&, const int&)’} [-Wcast-function-type]
  776 |         return (reinterpret_cast<call_type>(slot_base::rep_->call_))(slot_base::rep_, _A_a1, _A_a2);
      |                ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/dablin_gtk.dir/build.make:258: src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o] Error 1
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[1]: *** [CMakeFiles/Makefile2:313: src/CMakeFiles/dablin_gtk.dir/all] Error 2
make[1]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make: *** [Makefile:141: all] Error 2

Jordi@PC-Jordi ~/Descargas/dablin/build
$ 

@jpuigs jpuigs changed the title HE-AAC v2 UK stations have no audio HE-AAC v2 UK stations have no audio and problems when compiling on cygwin May 1, 2020
@jpuigs jpuigs changed the title HE-AAC v2 UK stations have no audio and problems when compiling on cygwin HE-AAC v2 UK stations have no audio (Ubuntu 20.04) and problems when compiling on cygwin May 1, 2020
@jpuigs
Copy link
Author

jpuigs commented May 1, 2020

I have installed a new 18.04 LTS version in a free HDD partition , and dablin_gtk works fine on all audio services, both HE-AAC v2 and MP2 ones.
So it seems it is a 20.04 problem.

When compiling I get the warnings too...

.....
[ 60%] Building CXX object src/CMakeFiles/dablin_gtk.dir/fic_decoder.cpp.o
[ 63%] Building CXX object src/CMakeFiles/dablin.dir/eti_player.cpp.o
[ 65%] Building CXX object src/CMakeFiles/dablin.dir/dab_decoder.cpp.o
[ 68%] Building CXX object src/CMakeFiles/dablin.dir/fic_decoder.cpp.o
[ 70%] Building CXX object src/CMakeFiles/dablin.dir/pcm_output.cpp.o
/home/jordi/Downloads/dablin/src/fic_decoder.cpp: In static member function ‘static std::__cxx11::string FICDecoder::ConvertLTOToString(int)’:
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: warning: ‘%+03d’ directive output may be truncated writing between 3 and 11 bytes into a region of size 7 [-Wformat-truncation=]
 std::string FICDecoder::ConvertLTOToString(const int value) {
             ^~~~~~~~~~
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: note: directive argument in the range [-1073741824, 1073741823]
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: note: directive argument in the range [0, 30]
In file included from /usr/include/stdio.h:862:0,
                 from /home/jordi/Downloads/dablin/src/fic_decoder.h:22,
                 from /home/jordi/Downloads/dablin/src/fic_decoder.cpp:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note: ‘__builtin___snprintf_chk’ output between 7 and 15 bytes into a destination of size 7
        __bos (__s), __fmt, __va_arg_pack ());
                                            ^
[ 73%] Building CXX object src/CMakeFiles/dablin.dir/tools.cpp.o
[ 75%] Building CXX object src/CMakeFiles/dablin.dir/version.cpp.o
[ 78%] Building CXX object src/CMakeFiles/dablin.dir/dablin.cpp.o
/home/jordi/Downloads/dablin/src/fic_decoder.cpp: In static member function ‘static std::__cxx11::string FICDecoder::ConvertLTOToString(int)’:
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: warning: ‘%+03d’ directive output may be truncated writing between 3 and 11 bytes into a region of size 7 [-Wformat-truncation=]
 std::string FICDecoder::ConvertLTOToString(const int value) {
             ^~~~~~~~~~
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: note: directive argument in the range [-1073741824, 1073741823]
/home/jordi/Downloads/dablin/src/fic_decoder.cpp:871:13: note: directive argument in the range [0, 30]
In file included from /usr/include/stdio.h:862:0,
                 from /home/jordi/Downloads/dablin/src/fic_decoder.h:22,
                 from /home/jordi/Downloads/dablin/src/fic_decoder.cpp:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note: ‘__builtin___snprintf_chk’ output between 7 and 15 bytes into a destination of size 7
        __bos (__s), __fmt, __va_arg_pack ());
                                            ^
[ 80%] Building CXX object src/CMakeFiles/dablin_gtk.dir/pcm_output.cpp.o
[ 82%] Building CXX object src/CMakeFiles/dablin_gtk.dir/tools.cpp.o
[ 85%] Building CXX object src/CMakeFiles/dablin_gtk.dir/version.cpp.o
[ 87%] Building CXX object src/CMakeFiles/dablin_gtk.dir/mot_manager.cpp.o
[ 90%] Building CXX object src/CMakeFiles/dablin_gtk.dir/pad_decoder.cpp.o
[ 92%] Linking CXX executable dablin
[ 92%] Built target dablin
[ 95%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o
[ 97%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk_sls.cpp.o
[100%] Linking CXX executable dablin_gtk
[100%] Built target dablin_gtk

@basicmaster
Copy link
Member

basicmaster commented May 1, 2020

I can confirm the issue with the (AAC) messages. This indeed affects all stations with HE-AAC v2 coding (SBR+PS). After you first hear audio for a fraction of a second (in Mono), the PS data takes effect - which is where the messages and the problem occurs.

This happens with libfaad2 v2.9.0 and v2.9.1 (earlier/later versions are not affected). Ubuntu 20.04 LTS is shipped with v2.9.1 and therefore affected. Actually the following commit is responsible: knik0/faad2@3b80a57. In the meantime this has been fixed by: knik0/faad2#51.

Workaround

Meanwhile you can either avoid HE-AAC v2 channels (your ears will appreciate it) or instead compile/use a more recent lib version, e.g. v2.9.2:

git clone -b 2_9_2 https://github.com/knik0/faad2.git
cd faad2
./bootstrap
./configure
make
sudo make install
sudo ldconfig

Now DABlin (and all other applications) use the newer lib version.

If you don't want to use the newer lib version with other applications, don't execute the two commands after make. Instead invoke DABlin always with the following prefix string (assuming you executed the above commands in /home/my_user):

LD_LIBRARY_PATH=/home/my_user/faad2/libfaad/.libs/

@jpuigs
Copy link
Author

jpuigs commented May 1, 2020

👍

@andimik
Copy link
Contributor

andimik commented May 1, 2020

Yes, confirmed. Now it works!

@basicmaster
Copy link
Member

The mentioned "output may be truncated" warnings should be fixed now by eeae67e.

@jpuigs
Copy link
Author

jpuigs commented May 3, 2020

It's still impossible to compile it on Windows under cygwin....

error: cannot convert ‘GPrivate’ {aka ‘_GPrivate’} to ‘GPrivate*’ {aka ‘_GPrivate*’} in return
  661 |   GPrivate* gobj() { return gobject_; }
      |                             ^~~~~~~~
      |                             |
      |                             GPrivate {aka _GPrivate}


[ 95%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o
[ 97%] Building CXX object src/CMakeFiles/dablin_gtk.dir/dablin_gtk_sls.cpp.o
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:794:56: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void ()(sigc::internal::slot_rep)’} [-Wcast-function-type]
794 | (reinterpret_cast<call_type>(slot.rep_->call_))(slot.rep_);
| ^
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit_reverse(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:821:55: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void ()(sigc::internal::slot_rep)’} [-Wcast-function-type]
821 | (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_);
| ^
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:794:56: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void ()(sigc::internal::slot_rep)’} [-Wcast-function-type]
794 | (reinterpret_cast<call_type>(slot.rep_->call_))(slot.rep_);
| ^
/usr/include/sigc++-2.0/sigc++/signal.h: En la función miembro static ‘static sigc::internal::signal_emit0<void, sigc::nil>::result_type sigc::internal::signal_emit0<void, sigc::nil>::emit_reverse(sigc::internal::signal_impl*)’:
/usr/include/sigc++-2.0/sigc++/signal.h:821:55: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::internal::signal_emit0<void, sigc::nil>::call_type’ {aka ‘void ()(sigc::internal::slot_rep)’} [-Wcast-function-type]
821 | (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_);
| ^
En el fichero incluido desde /usr/include/glibmm-2.4/glibmm.h:91,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/glibmm-2.4/glibmm/threads.h: En la función miembro ‘GPrivate* Glib::Threads::Private::gobj()’:
/usr/include/glibmm-2.4/glibmm/threads.h:661:29: error: cannot convert ‘GPrivate’ {aka ‘_GPrivate’} to ‘GPrivate*’ {aka ‘GPrivate*’} in return
661 | GPrivate* gobj() { return gobject
; }
| ^~~~~~~~
| |
| GPrivate {aka _GPrivate}
En el fichero incluido desde /usr/include/glibmm-2.4/glibmm.h:91,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/glibmm-2.4/glibmm/threads.h: En la función miembro ‘GPrivate* Glib::Threads::Private::gobj()’:
/usr/include/glibmm-2.4/glibmm/threads.h:661:29: error: cannot convert ‘GPrivate’ {aka ‘_GPrivate’} to ‘GPrivate*’ {aka ‘GPrivate*’} in return
661 | GPrivate* gobj() { return gobject
; }
| ^~~~~~~~
| |
| GPrivate {aka _GPrivate}
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:100,
desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
desde /usr/include/gtkmm-3.0/gtkmm.h:95,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h: En el ámbito global:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:66:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
66 | void (__gtk_reserved1);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:67:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
67 | void (
__gtk_reserved2);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:68:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
68 | void (__gtk_reserved3);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:69:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
69 | void (
__gtk_reserved4);
| ^
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:271,
desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
desde /usr/include/gtkmm-3.0/gtkmm.h:95,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:74:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
74 | void (__gtk_reserved1);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:75:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
75 | void (
__gtk_reserved2);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:76:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
76 | void (__gtk_reserved3);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:77:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
77 | void (
__gtk_reserved4);
| ^
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:100,
desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
desde /usr/include/gtkmm-3.0/gtkmm.h:95,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h: En el ámbito global:
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:66:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
66 | void (__gtk_reserved1);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:67:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
67 | void (
__gtk_reserved2);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:68:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
68 | void (__gtk_reserved3);
| ^
/usr/include/gtk-3.0/gtk/gtkfilechooserbutton.h:69:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
69 | void (
__gtk_reserved4);
| ^
En el fichero incluido desde /usr/include/gtk-3.0/gtk/gtk.h:271,
desde /usr/include/gtkmm-3.0/gtkmm/enums.h:28,
desde /usr/include/gtkmm-3.0/gtkmm/widget.h:47,
desde /usr/include/gtkmm-3.0/gtkmm/action.h:31,
desde /usr/include/gtkmm-3.0/gtkmm/toggleaction.h:29,
desde /usr/include/gtkmm-3.0/gtkmm.h:95,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:74:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
74 | void (__gtk_reserved1);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:75:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
75 | void (
__gtk_reserved2);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:76:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
76 | void (__gtk_reserved3);
| ^
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:77:8: aviso: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
77 | void (
__gtk_reserved4);
| ^
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98: se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26: se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2298:7: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const int&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
191 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
155 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:44:103: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool ()(sigc::internal::slot_rep, sigc::type_trait_take_t<_GdkEventKey*>)’ {aka ‘bool ()(sigc::internal::slot_rep, _GdkEventKey* const&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, GdkEventConfigure*>; T_return = bool; T_arg1 = GdkEventConfigure*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTKSlideshowWindow, GdkEventConfigure*>; T_return = bool; T_arg1 = GdkEventConfigure*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:48:111: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool ()(sigc::internal::slot_rep, sigc::type_trait_take_t<GdkEventConfigure*>)’ {aka ‘bool ()(sigc::internal::slot_rep, GdkEventConfigure* const&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98: se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26: se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2416:5: se requiere desde ‘void Gtk::TreeView_Private::connect_auto_store_numeric_editable_signal_handler(Gtk::TreeView*, Gtk::CellRenderer*, const Gtk::TreeModelColumn&) [con ColumnType = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2315:95: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
191 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.h:25,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk_sls.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘T_return sigc::slot2<T_return, T_arg1, T_arg2>::operator()(sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type
, sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type
) const [con T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type
= const Glib::ustring&; sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type
= const int&]’:
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108:39: se requiere desde ‘typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type sigc::adaptor_functor<T_functor>::operator()(T_arg1, T_arg2) const [con T_arg1 = const Glib::ustring&; T_arg2 = int&; T_functor = sigc::slot<void, const Glib::ustring&, int>; typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type = void]’
/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1136:35: se requiere desde ‘typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()(T_arg1) [con T_arg1 = const Glib::ustring&; T_functor = sigc::slot<void, const Glib::ustring&, int>; T_type1 = int; typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type = void]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:148:20: se requiere desde ‘static T_return sigc::internal::slot_call1<T_functor, T_return, T_arg1>::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t<T_arg3>) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::type_trait_take_t<T_arg3> = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:37: se requiere desde ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:776:17: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::slot2<void, const Glib::ustring&, int>::call_type’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const int&)’} [-Wcast-function-type]
776 | return (reinterpret_cast<call_type>(slot_base::rep
->call
))(slot_base::rep
, _A_a1, _A_a2);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/dablin_gtk.dir/build.make:271: src/CMakeFiles/dablin_gtk.dir/dablin_gtk_sls.cpp.o] Error 1
make[2]: *** Se espera a que terminen otras tareas....
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98: se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26: se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bound_mem_functor3<void, Gtk::TreeView, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2298:7: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const int&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
191 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
155 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call0<T_functor, T_return>::address())(void*) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:527:82: se requiere desde ‘sigc::slot0<T_return>::slot0(const T_functor&) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1752:26: se requiere desde ‘sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor0<void, DABlinGTK>; T_return = void]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:256:114: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:121:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep)’ to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
121 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventKey*>; T_return = bool; T_arg1 = _GdkEventKey*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:297:88: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool ()(sigc::internal::slot_rep, sigc::type_trait_take_t<_GdkEventKey*>)’ {aka ‘bool ()(sigc::internal::slot_rep, _GdkEventKey* const&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
155 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventConfigure*>; T_return = bool; T_arg1 = _GdkEventConfigure*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:301:96: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool ()(sigc::internal::slot_rep, sigc::type_trait_take_t<_GdkEventConfigure*>)’ {aka ‘bool ()(sigc::internal::slot_rep, _GdkEventConfigure* const&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, _GdkEventAny*>; T_return = bool; T_arg1 = _GdkEventAny*; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, GdkEventAny*>; T_return = bool; T_arg1 = GdkEventAny*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<bool, DABlinGTK, GdkEventAny*>; T_return = bool; T_arg1 = GdkEventAny*]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:341:94: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘bool ()(sigc::internal::slot_rep, sigc::type_trait_take_t<GdkEventAny*>)’ {aka ‘bool ()(sigc::internal::slot_rep, GdkEventAny* const&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98: se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26: se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor2<int, DABlinGTK, const Gtk::TreeIter&, const Gtk::TreeIter&>; T_return = int; T_arg1 = const Gtk::TreeIter&; T_arg2 = const Gtk::TreeIter&]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:352:108: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘int ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Gtk::TreeIter&>, sigc::type_trait_take_t<const Gtk::TreeIter&>)’ {aka ‘int ()(sigc::internal::slot_rep, const Gtk::TreeIter&, const Gtk::TreeIter&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
191 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bound_mem_functor1<void, DABlinGTK, double>; T_return = void; T_arg1 = double]’
/home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:415:83: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t)’ {aka ‘void ()(sigc::internal::slot_rep, const double&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
155 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘static void* (* sigc::internal::slot_call2<T_functor, T_return, T_arg1, T_arg2>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:790:98: se requiere desde ‘sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1890:26: se requiere desde ‘sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::bind_functor<-1, sigc::pointer_functor4<const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtrGtk::TreeModel&, void>, Glib::RefPtrGtk::TreeModel, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2416:5: se requiere desde ‘void Gtk::TreeView_Private::connect_auto_store_numeric_editable_signal_handler(Gtk::TreeView*, Gtk::CellRenderer*, const Gtk::TreeModelColumn&) [con ColumnType = int]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2315:95: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:191:14: aviso: cast between incompatible function types from ‘void ()(sigc::internal::slot_rep, sigc::type_trait_take_t<const Glib::ustring&>, sigc::type_trait_take_t<const Glib::ustring&>)’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const Glib::ustring&)’} to ‘sigc::internal::hook’ {aka ‘void* ()(void)’} [-Wcast-function-type]
191 | { return reinterpret_cast(&call_it); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En el fichero incluido desde /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
desde /usr/include/sigc++-2.0/sigc++/signal.h:8,
desde /usr/include/sigc++-2.0/sigc++/sigc++.h:104,
desde /usr/include/glibmm-2.4/glibmm/thread.h:50,
desde /usr/include/glibmm-2.4/glibmm.h:89,
desde /usr/include/gtkmm-3.0/gtkmm.h:87,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.h:31,
desde /home/Jordi/Descargas/dablin/src/dablin_gtk.cpp:19:
/usr/include/sigc++-2.0/sigc++/functors/slot.h: En la instanciación de ‘T_return sigc::slot2<T_return, T_arg1, T_arg2>::operator()(sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type
, sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type
) const [con T_return = void; T_arg1 = const Glib::ustring&; T_arg2 = int; sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type
= const Glib::ustring&; sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type
= const int&]’:
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108:39: se requiere desde ‘typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type sigc::adaptor_functor<T_functor>::operator()(T_arg1, T_arg2) const [con T_arg1 = const Glib::ustring&; T_arg2 = int&; T_functor = sigc::slot<void, const Glib::ustring&, int>; typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, T_arg2>::type = void]’
/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1136:35: se requiere desde ‘typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()(T_arg1) [con T_arg1 = const Glib::ustring&; T_functor = sigc::slot<void, const Glib::ustring&, int>; T_type1 = int; typename sigc::bind_functor<-1, T_functor, T_type1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<T_arg1>::type = void]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:148:20: se requiere desde ‘static T_return sigc::internal::slot_call1<T_functor, T_return, T_arg1>::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t<T_arg3>) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::type_trait_take_t<T_arg3> = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:155:37: se requiere desde ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&; sigc::internal::hook = void* ()(void)]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:657:90: se requiere desde ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1821:26: se requiere desde ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [con T_functor = sigc::bind_functor<-1, sigc::slot<void, const Glib::ustring&, int>, int, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>; T_return = void; T_arg1 = const Glib::ustring&]’
/usr/include/gtkmm-3.0/gtkmm/treeview.h:2305:5: se requiere desde aquí
/usr/include/sigc++-2.0/sigc++/functors/slot.h:776:17: aviso: cast between incompatible function types from ‘sigc::internal::hook’ {aka ‘void* ()(void)’} to ‘sigc::slot2<void, const Glib::ustring&, int>::call_type’ {aka ‘void ()(sigc::internal::slot_rep, const Glib::ustring&, const int&)’} [-Wcast-function-type]
776 | return (reinterpret_cast<call_type>(slot_base::rep
->call
))(slot_base::rep
, _A_a1, _A_a2);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/dablin_gtk.dir/build.make:258: src/CMakeFiles/dablin_gtk.dir/dablin_gtk.cpp.o] Error 1
make[2]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make[1]: *** [CMakeFiles/Makefile2:313: src/CMakeFiles/dablin_gtk.dir/all] Error 2
make[1]: se sale del directorio '/home/Jordi/Descargas/dablin/build'
make: *** [Makefile:141: all] Error 2

Jordi@PC-Jordi ~/Descargas/dablin/build
$

@andimik
Copy link
Contributor

andimik commented May 10, 2020

By the way, if you want to build faad2 and get the message

path_to_faad2$ ./bootstrap 
./bootstrap: 14: libtoolize: not found

then you have to run

sudo apt-get install libtool

@jpuigs
Copy link
Author

jpuigs commented May 10, 2020

But does it have something to do with all errors that appear when trying compile ?

Last time I compiled dablin on cygwin it was december 2019, and it was OK.
Now I can't anymore.
I don't build now faad2, I already have it from last year....

error: cannot convert ‘GPrivate’ {aka ‘_GPrivate’} to ‘GPrivate*’ {aka ‘_GPrivate*’} in return
  661 |   GPrivate* gobj() { return gobject_; }
      |                             ^~~~~~~~
      |                             |
      |                             GPrivate {aka _GPrivate}


@basicmaster
Copy link
Member

Meanwhile the bug in the audio lib was fixed by knik0/faad2#51, so libfaad2 v2.9.2 and later is fine again. I edited the above workaround post accordingly.

@jpuigs:
The messages in your log are all related to libgtkmm, so it has nothing to do with the audio issue. You should be able to build at least the console version without any error. I will have a look at this soon.

@jpuigs
Copy link
Author

jpuigs commented May 14, 2020

@jpuigs:
The messages in your log are all related to libgtkmm, so it has nothing to do with the audio issue. You should be able to build at least the console version without any error. I will have a look at this soon.

OK. Thanks,

@jpuigs
Copy link
Author

jpuigs commented May 15, 2020

Maybe it helps.....

I've updated again cygwin, and now gtk version is finally built, although all debug info (warnigs?) are still displayed.....
The only difference is that errors don't appear.

There have been updated these libs,

2020/05/15 13:15:04    0 install libfreetype6             2.10.2-1 
2020/05/15 13:15:04    1   erase libfreetype6             2.9.1-1  
2020/05/15 13:15:04    2 install libglibmm2.4_1           2.54.1-2 
2020/05/15 13:15:04    3   erase libglibmm2.4_1           2.54.1-1 
2020/05/15 13:15:04    4 install libgraphite2_3           1.3.14-1 
2020/05/15 13:15:04    5   erase libgraphite2_3           1.3.10-1 
2020/05/15 13:15:04    6 install libicu65                 65.1-1   
2020/05/15 13:15:04    7 install libopenldap2_4_2         2.4.50-1 
2020/05/15 13:15:04    8   erase libopenldap2_4_2         2.4.49-1 
2020/05/15 13:15:04    9 install libpaper-common          1.1.28-1 
2020/05/15 13:15:04   10   erase libpaper-common          1.1.24-2 
2020/05/15 13:15:04   11 install poppler-data             0.4.9-1  
2020/05/15 13:15:04   12   erase poppler-data             0.4.8-1  
2020/05/15 13:15:04   13 install tzdata                   2020a-1  
2020/05/15 13:15:04   14   erase tzdata                   2019c-1  
2020/05/15 13:15:04   15 install libfreetype-devel        2.10.2-1 
2020/05/15 13:15:04   16   erase libfreetype-devel        2.9.1-1  
2020/05/15 13:15:04   17 install libgtkmm3.0_1            3.18.1-1 
2020/05/15 13:15:04   18   erase libgtkmm3.0_1            3.22.2-1 
2020/05/15 13:15:04   19 install libglibmm2.4-devel       2.54.1-2 
2020/05/15 13:15:04   20   erase libglibmm2.4-devel       2.54.1-1 
2020/05/15 13:15:04   21 install libharfbuzz0             2.6.6-1  
2020/05/15 13:15:04   22   erase libharfbuzz0             2.5.3-1  
2020/05/15 13:15:04   23 install libgraphite2-devel       1.3.14-1 
2020/05/15 13:15:04   24   erase libgraphite2-devel       1.3.10-1 
2020/05/15 13:15:04   25 install libpaper1                1.1.28-1 
2020/05/15 13:15:04   26   erase libpaper1                1.1.24-2 
2020/05/15 13:15:04   27 install libpoppler99             0.88.0-1 
2020/05/15 13:15:04   28 install libgtkmm3.0-devel        3.18.1-1 
2020/05/15 13:15:04   29   erase libgtkmm3.0-devel        3.22.2-1 
2020/05/15 13:15:04   30 install libharfbuzz-icu0         2.6.6-1  
2020/05/15 13:15:04   31   erase libharfbuzz-icu0         2.5.3-1  
2020/05/15 13:15:04   32 install libharfbuzz-gobject0     2.6.6-1  
2020/05/15 13:15:04   33   erase libharfbuzz-gobject0     2.5.3-1  
2020/05/15 13:15:04   34 install libpoppler-glib8         0.88.0-1 
2020/05/15 13:15:04   35   erase libpoppler-glib8         0.62.0-1 
2020/05/15 13:15:04   36 install girepository-HarfBuzz0.0 2.6.6-1  
2020/05/15 13:15:04   37   erase girepository-HarfBuzz0.0 2.5.3-1  
2020/05/15 13:15:04   38 install libharfbuzz-devel        2.6.6-1  
2020/05/15 13:15:04   39   erase libharfbuzz-devel        2.5.3-1  

@basicmaster
Copy link
Member

2020/05/15 13:15:04 19 install libglibmm2.4-devel 2.54.1-2
2020/05/15 13:15:04 20 erase libglibmm2.4-devel 2.54.1-1

This is the reason, as the error resides in a certain header of libglibmm:

Unfortunately the fixed version v2.54.1-2 has only been built for 64bit; for 32bit still only v2.54.1-1 is available. Maybe this is the reason why it works now for you. I currently use the 32bit version on an older laptop where I have to apply the fix by hand.

@jpuigs
Copy link
Author

jpuigs commented May 21, 2020

Yes, I use 64bit cygwin version.
But I see that the error is from 2017..... and it dodn't appear 3 months ago......
Anyway, it's fixed... so we can close this issue ?

@basicmaster
Copy link
Member

I guess the Cygwin packages are updated not that often...

I will check whether the fix to libfaad will also be applied to 20.04 and afterwards close the issue.

basicmaster added a commit that referenced this issue Jun 14, 2020
@basicmaster
Copy link
Member

I opened a bug at Ubuntu's Launchpad here: https://bugs.launchpad.net/ubuntu/+source/faad2/+bug/1882240

I also added a hint to the README. So for now I close this issue.

@andimik
Copy link
Contributor

andimik commented Jun 14, 2020

Dear Stefan, many thanks for your investigation and for the analysis! :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants