fulhax / ncpamixer Goto Github PK
View Code? Open in Web Editor NEWncurses PulseAudio Mixer
License: MIT License
ncurses PulseAudio Mixer
License: MIT License
Hey, I've tried make
ing this from both the supplied Gentoo fulhax overlay through Portage, as well as by cloning the git repo, cd
ing in and running make
. Using both methods I end up getting the error below:
[100%] Linking CXX executable ncpamixer
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/ncpamixer.dir/ui/ui.cpp.o: undefined reference to symbol 'keypad'
/lib64/libtinfow.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[4]: *** [CMakeFiles/ncpamixer.dir/build.make:343: ncpamixer] Error 1
make[3]: *** [CMakeFiles/Makefile2:105: CMakeFiles/ncpamixer.dir/all] Error 2
make[2]: *** [Makefile:130: all] Error 2
make[1]: *** [Makefile:26: build] Error 2
make: *** [Makefile:48: release] Error 2
I'm not sure if it's an issue on my end, maybe with ncurses or cmake, as I'm quite new to the whole Linux thing. For reference, I am running
Gentoo kernel 4.14.61, PulseAudio 12.2, ncurses 5.9-r101 & ncurses 6.1-r2, and cmake 3.12.1.
Again I'm not sure if this is an issue with my personal system or with ncpamixer.
OS:Linux Mlint 18
$ make
CMake Error at CMakeLists.txt:20 (find_package):
By not providing "FindPulseAudio.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"PulseAudio", but CMake did not find one.
Could not find a package configuration file provided by "PulseAudio" with
any of the following names:
PulseAudioConfig.cmake
pulseaudio-config.cmake
Add the installation prefix of "PulseAudio" to CMAKE_PREFIX_PATH or set
"PulseAudio_DIR" to a directory containing one of the above files. If
"PulseAudio" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "/home/itgoyo/downloads/ncpamixer-1.3.3/build/CMakeFiles/CMakeOutput.log".
Makefile:34: recipe for target 'build/Makefile' failed
make[1]: *** [build/Makefile] Error 1
Makefile:53: recipe for target 'release' failed
make: *** [release] Error 2
Hi,there,I google finds nothing to solve this situation.
I had install PulseAudio.
Sorry,My english is poor,hope you can understand what I say.
The title says it all (at least, all I could tell): when module-loopback is loaded, ncpamixer crashes. If you unload the module, it starts, but would crash once you have loaded it again.
I'm running Linux archlinux 5.4.13-arch1-1 #1 SMP PREEMPT Fri, 17 Jan 2020 23:09:54 +0000 x86_64 GNU/Linux
and
ncpamixer v1.3
Build type: release
Build date: 2020-01-20 16:59
The three fonts shown are Monofur
, Monaco
and Hermit
. As you can see, instead of the little symbol() the ~Y is displayed. Also the slider is not displayed as it should be, but instead there is a VH:
With some other fonts the glyphs are rendered correctly, but since Hermit is the one I mainly use I'd like to know whether it's possible to fix this in some way?
Please add detailed instructions about the compilation of ncpamixer in the README.md. I'm getting some errors when i try to compile it in my laptop with ubuntu, but i'm not sure if i did it correctly.
I recently installed and configured werrman's noise-suppression-for-voice plugin. However, after the setup, ncpamixer immediately segfaults when trying to launch it.
Could this be related to #43 , i.e. could it be because the new sinks don't have a description or something like that?
Is there a way in ncpamixer to change the volume for left or right channels on devices independently?
I see nothing in dropdown menus and in general man pages, too.
Would be great to add this ability, by the way, it is implemented in pavucontrol, if I'm not mistaken.
/ncpamixer # make
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.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++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for wsyncup in /usr/lib/libcursesw.so
-- Looking for wsyncup in /usr/lib/libcursesw.so - found
-- Could NOT find Curses (missing: CURSES_INCLUDE_PATH)
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Got version 1.2-2-gd18a296
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/usr/include CURSES_CURSESW_H_PATH
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
used as include directory in directory /ncpamixer/src
-- Configuring incomplete, errors occurred!
See also "/ncpamixer/build/CMakeFiles/CMakeOutput.log".
make[1]: *** [Makefile:30: build/Makefile] Error 1
make: *** [Makefile:47: release] Error 2
You can reproduce it with a docker container using the following commands:
$ docker run -it --rm alpine:edge /bin/sh
apk add git make cmake g++ pulseaudio-dev ncurses-dev
git clone https://github.com/fulhax/ncpamixer.git -b dev
cd ncpamixer
make
$ docker run -it --rm fedora:latest /bin/sh
dnf -y install git make cmake gcc-c++ ncurses-devel pulseaudio-libs-devel
git clone https://github.com/fulhax/ncpamixer.git -b dev
cd ncpamixer
make
$ docker run -it --rm ubuntu:latest /bin/sh
apt update
apt -y install git make cmake g++ ncurses-dev libpulse-dev
git clone https://github.com/fulhax/ncpamixer.git -b dev
cd ncpamixer
make
Editing the CMakeLists.txt
file to use hard coded values instead of the "found ones", the compilation works fine.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a38440b..e5c0330 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -12,7 +12,7 @@ set(CURSES_NEED_WIDE TRUE)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
-find_package(CursesW REQUIRED)
+#find_package(CursesW REQUIRED)
find_package(PulseAudio REQUIRED)
find_package(Threads REQUIRED)
@@ -64,6 +64,8 @@ add_executable(${CMAKE_PROJECT_NAME} ${COMMON_SRC} ${UI_RESOURCES})
target_link_libraries(${CMAKE_PROJECT_NAME}
${CURSES_LIBRARIES}
+ -lmenu
+ -lncurses
${PULSEAUDIO_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
)
pipewire-pulse: 0.3.44-r1/~amd64
ncpamixer: 1.3.3.1/~amd64
wireplumber: 0.4.7-r1/~amd64
vlc: 3.0.16-r7/amd64
Gentoo x86_64 nomultilib/systemd
When using this combination with a playlist of FLAC and MP3 files, ncpamixer crashes with a SIGSEGV upon selecting a new track. From what I can observe in pavucontrol, VLC destroys its connection to pulseaudio and recreates it whenever a new track is selected, which seems to crash ncpamixer. It does not crash pamix, however neither are able to smoothly display VLC's level bars, indicating maybe some sort of sample rate inconsistency. My FLAC files are standard 48khz, and my MP3s are mostly 384kbps 44.1khz. I unfortunately can't share any sample files, but some of them can be downloaded from Bungie's website for free if you have trouble reproducing this.
I can also try building as debug, but I don't have much experience with gdb and probably wouldn't be able to make much in the way of a useful stacktrace.
This should be a pretty straightforward .spec
file:
https://build.opensuse.org/package/view_file/home:avindra/ncpamixer/ncpamixer.spec?expand=1
The full log is here for 32 bit and here for 64 bit (same error in both), but the relevant lines are:
...
[ 51s] [ 63%] Building CXX object CMakeFiles/ncpamixer.dir/ui/tabs/playback.cpp.o
[ 51s] [ 68%] Building CXX object CMakeFiles/ncpamixer.dir/ui/tabs/recording.cpp.o
[ 51s] /home/abuild/rpmbuild/BUILD/ncpamixer-1.2/src/ui/tab.cpp:5:10: fatal error: menu.h: No such file or directory
[ 51s] #include <menu.h>
[ 51s] ^~~~~~~~
[ 51s] compilation terminated.
[ 51s] make[4]: *** [CMakeFiles/ncpamixer.dir/build.make:303: CMakeFiles/ncpamixer.dir/ui/tab.cpp.o] Error 1
[ 51s] make[4]: *** Waiting for unfinished jobs....
[ 52s] make[3]: *** [CMakeFiles/Makefile2:100: CMakeFiles/ncpamixer.dir/all] Error 2
[ 52s] make[2]: *** [Makefile:130: all] Error 2
[ 52s] make[1]: *** [Makefile:26: build] Error 2
[ 52s] make: *** [Makefile:48: release] Error 2
[ 52s] error: Bad exit status from /var/tmp/rpm-tmp.K0uceo (%build)
Any insight as to how menu.h
would be missing?
I was just testing ncpamixer and was greeted with a segmentation fault when I ran it for the first time. I usually do run a ${command} --help
for any new software, just to see how to run the software properly.
sven /portage > ncpamixer --help zsh: segmentation fault ncpamixer --help sven /portage > ncpamixer -h ncpamixer: invalid option -- 'h' (the command above starts ncpamixer) sven /portage > ncpamixer -v ncpamixer v Build type: gentoo Build date: 2016-08-17 13:23 sven /portage > ncpamixer --version ncpamixer v Build type: gentoo Build date: 2016-08-17 13:23
I guess there is a minor bug in the use of getopt_long()
and its longOpts
parameter. The man page states:
The last element of the array has to be filled with zeros.
And the example has the following definition:
static struct option long_options[] = { {"add", required_argument, 0, 0 }, {"append", no_argument, 0, 0 }, {"delete", required_argument, 0, 0 }, {"verbose", no_argument, 0, 0 }, {"create", required_argument, 0, 'c'}, {"file", required_argument, 0, 0 }, {0, 0, 0, 0 } };
I wrote a small patch which fixes the segmentation fault, and I'm going to create a pull request.
Reconnect to PulseAudio on restart or connect to PulseAudio if it's started after ncpamixer.
Hi,
I had a source output configured where the property device.description
was not defined. As a result pa_proplist_gets
returns a null pointer in the following line which made ncpamixer crash at startup.
Line 300 in 8ab3a86
System:
Gentoo, Linux Kernel 4.13.8-ck
sys-libs/ncurses-6.0-r1
media-sound/pulseaudio-11.1
Firefox 57.0 (64-bit)
When scrolling/seeking much in a video, ncpamixer is crashing after some time with SIGSEGV, Segmentation fault.
Thread 1 "ncpamixer" received signal SIGSEGV, Segmentation fault.
0x00007fffec0206a0 in ?? ()
Stacktrace:
(gdb) bt
#0 0x00007fffec0206a0 in ?? ()
#1 0x000000000042b12a in Tab::draw (this=0x739600) at /tmp/ncpamixer/src/ui/tab.cpp:103
#2 0x000000000042a84b in Ui::draw (this=0x63dca0 <ui>) at /tmp/ncpamixer/src/ui/ui.cpp:329
#3 0x000000000042a89d in Ui::run (this=0x63dca0 <ui>) at /tmp/ncpamixer/src/ui/ui.cpp:339
#4 0x000000000041ec60 in main (argc=1, argv=0x7fffffffdcc8) at /tmp/ncpamixer/src/pulsemixer.cpp:87
Problem reproducible with any video, also from youtube. Everytime when you seek in the video, the input stream from e.g. firefox is disappearing and shortly after that (when again played), the stream appears again.
Edit 11:08 UTC:
SIGSEGV is produced by accessing:
i.second->getRelation()
Attached core dump.
If more details are necessary, let me know.
My shell prompt has exit status displayed, so I noticed ncpamixer always exits with 1, the following is gdb output using 1af8464:
$ make debug
<snip>
$ gdb build/ncpamixer
GNU gdb (Gentoo 7.6.2 p1) 7.6.2
<snip>
(gdb) r
<snip>
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff32c0700 (LWP 17377)]
<Q key pressed>
[Thread 0x7ffff7fca780 (LWP 17373) exited]
[Inferior 1 (process 17373) exited with code 01]
Some versions information:
/lib64/libpthread-2.22.so
2016-12-30T11:42:17Z: added a list of versions
I'm running Manjaro i3 20.0.1. I installed pulseaudio and pavucontrol, which are working. But then, I saw a video about ncpamixer and installed it through AUR. Cloned the repository into my /tmp/ folder and used makepkg -si
to install it. The only keybind working was L and H to navigate through tabs, nothing else.
Steps to reproduce:
ncpamixer
pulsemixer works fine:
Can't figure out what controls the utf-8 drawing character display. It fails for me.
I'm in konsole with TERM=tmux-256color, and:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Here are the code areas I was looking at, but can't figure out what's failing:
*ncurses initialization:
https://github.com/fulhax/ncpamixer/blob/master/src/ui/ui.cpp#L48
*The chars (written to config) are here. I tested them, once they were loaded as c++ strings -- they printf as proper utf-8 block chars to stdout:
https://github.com/fulhax/ncpamixer/blob/master/src/config.cpp#L204
*Here is an example of where they're printed:
https://github.com/fulhax/ncpamixer/blob/master/src/ui/tab.cpp#L943
mvwaddstr(ui.window, py, pw + i, ui.bar[BAR_BG].c_str());
/usr/bin/c++ -I/wrkdirs/usr/ports/audio/ncpamixer/work/.build -I/wrkdirs/usr/ports/audio/ncpamixer/work/ncpamixer-1.3.3.1/src -I/wrkdirs/usr/ports/audio/ncpamixer/work/ncpamixer-1.3.3.1/src/src -I/usr/local/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Werror -Wall -Wpedantic -std=gnu++14 -MD -MT CMakeFiles/ncpamixer.dir/ui/tab.cpp.o -MF CMakeFiles/ncpamixer.dir/ui/tab.cpp.o.d -o CMakeFiles/ncpamixer.dir/ui/tab.cpp.o -c /wrkdirs/usr/ports/audio/ncpamixer/work/ncpamixer-1.3.3.1/src/ui/tab.cpp
/wrkdirs/usr/ports/audio/ncpamixer/work/ncpamixer-1.3.3.1/src/ui/tab.cpp:422:13: error: variable 'toggle_len' set but not used [-Werror,-Wunused-but-set-variable]
int toggle_len = 0;
^
1 error generated.
Version: 1.3.3.1
OS: FreeBSD 14
Maybe I missed something but I can't find a keybinding to select a input/output source. I had to run the commands:
pacmd list-sink-inputs
pacmd move-sink-input [input index] [sink index]
to switch between different output devices for example.
Not sure if it's by design, since in many clients it's limited to 150-153%.
But apparently I can go above 2000% with ncpamixer 🙂
in file pa.cpp change line 466 to:
strncpy(p->app_name, app_name, sizeof(p->app_name) -1);
to make compile and install
Version: 1.3.3
Steps to reproduce:
Configuration
It'd be nice to have some flag -t
to start ncpamixer on a specific tab.
e.g. ncpamixer -t input
would bring you to Input Devices
on startup.
If I compile using make on the Makefile, I get a program that responds to F* keys, q and ESC, but no other keys seems to work. If I compile with cmake, everything works fine.
Seems like a weird bug. Could it be a debug setting in the Makefile or something?
Somewhat like https://github.com/rafalcieslak/pavucontrol?
this is the output I get from gdb.
Thread 2 "threaded-ml" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff75606c0 (LWP 9905)]
bt
#1 0x00000000000014e5 in ?? ()
#2 0x00007fffec00fbd0 in ?? ()
#3 0x00007fffec018418 in ?? ()
#4 0xe415b14f671e6500 in ?? ()
#5 0x00007fffec00fbd0 in ?? ()
#6 0x0000000000420800 in ?? ()
#7 0x0000000000420810 in ?? ()
#8 0x000000000040ca8b in ?? ()
#9 0x000000000000002c in ?? ()
#10 0x00007fffec002a20 in ?? ()
#11 0x00007ffff755f950 in ?? ()
#12 0xe415b14f671e6500 in ?? ()
#13 0x0000000000000002 in ?? ()
#14 0x00007fffec002a20 in ?? ()
#15 0x00007fffec009300 in ?? ()
#16 0x00007ffff755f950 in ?? ()
#17 0x0000000000000002 in ?? ()
#18 0x00007ffff7eeb200 in ?? () from /usr/lib64/libpulse.so.0
#19 0x000000000000002c in ?? ()
#20 0x00007ffff7eeb40d in ?? () from /usr/lib64/libpulse.so.0
#21 0x00007ffff7a04a91 in ?? () from /usr/lib64/pulseaudio/libpulsecommon-16.1.so
#22 0x00007ffff7a04e1c in pa_pdispatch_run () from /usr/lib64/pulseaudio/libpulsecommon-16.1.so
#23 0x00007ffff7edff6e in ?? () from /usr/lib64/libpulse.so.0
#24 0x00007ffff7a077f3 in ?? () from /usr/lib64/pulseaudio/libpulsecommon-16.1.so
#25 0x00007ffff7a0a8ff in ?? () from /usr/lib64/pulseaudio/libpulsecommon-16.1.so
#26 0x00007ffff7ef6786 in pa_mainloop_dispatch () from /usr/lib64/libpulse.so.0
#27 0x00007ffff7ef6aa4 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#28 0x00007ffff7ef6b50 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#29 0x00007ffff7f05309 in ?? () from /usr/lib64/libpulse.so.0
#30 0x00007ffff7a1dcee in ?? () from /usr/lib64/pulseaudio/libpulsecommon-16.1.so
#31 0x00007ffff7b38ab3 in ?? () from /lib64/libc.so.6
#32 0x00007ffff7bbad2c in ?? () from /lib64/libc.so.6
Built in the following way with #35 :
git clone https://spartatek.se/git/libsheepy.git
cp libsheepy/wordexp.h /data/data/com.termux/files/usr/include
git clone https://github.com/fulhax/ncpamixer
cd ncpamixer
cmake -DCMAKE_CXX_FLAGS=-isystem /data/data/com.termux/files/usr/include -DCMAKE_BUILD_TYPE=release src -DCMAKE_INSTALL_PREFIX="/usr"
make
make DESTDIR="/data/data/com.termux/files" install
First off, really cool project!
It works very well on my Arch install, but seems to have character-drawing problems on Ubuntu. Maybe specific to my setup, but I spent a few minutes looking at the code and my environment and didn't see anything obviously wrong.
Here's what I see shelled into my Ubuntu machine:
Output from locale
seems reasonable:
➜ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
I also thought maybe it was some sort of Unicode character drawing issue, but I tried another terminal-based app and it seems to be rendering extended (non-Latin, UTF8) characters just fine.
For reference, here's what it looks like when I'm shelled into my Arch install:
with 1.3.3.1
or current master
branch I just briefly see a message:
Establishing connection to PulseAudio. Please wait...
and then:
Segmentation fault (core dumped)
on 1.3.3
this does not happen, however I don't see the correct terminal fonts for the gui (as mentioned in #46 ).
Hi, I am running Debian buster. I was experiencing #25, and compiling with USE_WIDE=1
fixed part of the issue. However, menu options (accessed by pressing c
in the default scheme) render incorrectly. Here is an example:
Possibly relevant information:
[x1:~/bin]% ldd pamix
linux-vdso.so.1 (0x00007ffc1b341000)
libncursesw.so.6 => /lib/x86_64-linux-gnu/libncursesw.so.6 (0x00007fc10591a000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fc1058ec000)
libform.so.6 => /lib/x86_64-linux-gnu/libform.so.6 (0x00007fc1058d9000)
libmenu.so.6 => /lib/x86_64-linux-gnu/libmenu.so.6 (0x00007fc1058ce000)
libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007fc10587a000)
...
[x1:~]% echo $TERM # uxterm has the same problem
rxvt-unicode-256color # uxterm has the same problem
Any ideas?
By wrapping pulseaudio in the new Audio class we should be able to implement other sound engines. I will try to implement Core Audio for osx.
Implement a way to transform keycode.[modifier].[keyname]
to keycode.[keycode]
when reading config.
When I try to build ncpamixer on Ubuntu 18.04, I get this error:
ncpamixer/src/ui/ui.cpp: In member function ‘void Ui::handleInput()’:
ncpamixer/src/ui/ui.cpp:277:44: error: ‘BUTTON5_PRESSED’ was not declared in this scope
} else if (mevent.bstate & BUTTON5_PRESSED) {
^~~~~~~~~~~~~~~
ncpamixer/src/ui/ui.cpp:277:44: note: suggested alternative: ‘BUTTON1_PRESSED’
} else if (mevent.bstate & BUTTON5_PRESSED) {
^~~~~~~~~~~~~~~
BUTTON1_PRESSED
I have these packages installed:
No idea what else could be missing.
I really like the vu-meter like pavucontrol does, but I'm that kind of guy who keep that stuff running h24 and it eats ~5% cpu all time.
I guess it's related to the runtime sampling for monitoring the volume per source. Original pavucontrol have the same behavior.
I think, if we can disable the vu-meter feature and just listening for event, it could reduce cpu usage to about nothing. I didn't checked the code yet, I'll take a look when I'll have time and prepare a pull request if possible.
Thread 1 "ncpamixer" received signal SIGSEGV, Segmentation fault.
0x0000000000433228 in Tab::draw (this=0x6f2d00)
at /ff/github/pulsemixer/src/ui/tab.cpp:93
93 char *name = toggle->find(i.second->getRelation())->second->name;
(gdb) bt
#0 0x0000000000433228 in Tab::draw (this=0x6f2d00) at /ff/gitstuff/github/pulsemixer/src/ui/tab.cpp:93
#1 0x000000000043299f in Ui::draw (this=0x645c60 <ui>) at /ff/github/pulsemixer/src/ui/ui.cpp:304
#2 0x00000000004329ee in Ui::run (this=0x645c60 <ui>) at /ff/github/pulsemixer/src/ui/ui.cpp:314
#3 0x0000000000426c25 in main (argc=1, argv=0x7fffffffe008) at /ff/github/pulsemixer/src/pulsemixer.cpp:79
(gdb)
Suggestion: ? key should open a help dialog, listing the keyboard shortcuts. ncdu behaves this way.
https://www.reddit.com/r/linux/comments/4y1xr8/ncpamixer_cli_alternative_to_pavucontrol/d6ranna
Thread 1 "ncpamixer" received signal SIGSEGV, Segmentation fault.
0x0000aaaac0dbdf70 in Pa::deletePaobjects (this=0xaaaac0dea070 <pa>, objects=0xaaaac0dea078 <pa+8>) at /home/user/ncpamixer/src/pa.cpp:203
203 delete i->second;
(gdb) bt
#0 0x0000aaaac0dbdf70 in Pa::deletePaobjects (this=0xaaaac0dea070 <pa>, objects=0xaaaac0dea078 <pa+8>) at /home/user/ncpamixer/src/pa.cpp:203
#1 0x0000aaaac0dbd90c in Pa::clearAllPaObjects (this=0xaaaac0dea070 <pa>) at /home/user/ncpamixer/src/pa.cpp:40
#2 0x0000aaaac0dbd878 in Pa::~Pa (this=0xaaaac0dea070 <pa>, __in_chrg=<optimized out>) at /home/user/ncpamixer/src/pa.cpp:29
#3 0x0000ffffa80ea4b8 in __funcs_on_exit () from /lib/ld-musl-aarch64.so.1
#4 0x0000ffffa80e28e0 in exit () from /lib/ld-musl-aarch64.so.1
#5 0x0000ffffa80e9cb8 in __libc_start_main () from /lib/ld-musl-aarch64.so.1
#6 0x0000aaaac0dbb52c in _start_c (p=<optimized out>) at crt/crt1.c:17
#7 0x0000000000000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
0x0000aaaaac90ba94 in Pa::remove_paobject(std::map<unsigned int, PaObject*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, PaObject*> > >*, unsigned int) ()
(gdb) bt
#0 0x0000aaaaac90ba94 in Pa::remove_paobject(std::map<unsigned int, PaObject*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, PaObject*> > >*, unsigned int) ()
#1 0x0000ffffa8d12af4 in ?? () from /usr/lib/libpulse.so.0
#2 0x0000ffffa8a8d900 in pa_pdispatch_run () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#3 0x0000ffffa8cf3f68 in ?? () from /usr/lib/libpulse.so.0
#4 0x0000ffffa8a903c4 in ?? () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#5 0x0000ffffa8a9274c in ?? () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#6 0x0000ffffa8a92a60 in ?? () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#7 0x0000ffffa8a931a8 in ?? () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#8 0x0000ffffa8d06908 in pa_mainloop_dispatch () from /usr/lib/libpulse.so.0
#9 0x0000ffffa8d06a28 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#10 0x0000ffffa8d06a84 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#11 0x0000ffffa8d12dd8 in ?? () from /usr/lib/libpulse.so.0
#12 0x0000ffffa8a9fde4 in ?? () from /usr/lib/pulseaudio/libpulsecommon-12.2.so
#13 0x0000ffffa8d90670 in ?? () from /lib/ld-musl-aarch64.so.1
#14 0x0000ffffa8859ad0 in ?? ()
#15 0x910063e1d28010e8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
ncpamixer fails at runtime:
W: [(null)] caps.c: Normally all extra capabilities would be dropped now, but that's impossible because PulseAudio was built without capabilities support.
Assertion 'c' failed at pulse/context.c:1055, function void pa_context_disconnect(pa_context *)(). Aborting.
Abort trap
Versions: 1.3.3.2, 1.3.3.3
FreeBSd 13.1
Pressing F1-F4 cuases ncpamixer to exit and it's not possible to change tabs with these keys. I can change tabs using H and L key bindings. The exit code is 0.
I built ncpamixer today using aur/ncpamixer-git
$ pacman -Q | egrep "linux 4|ncurses|ncpamixer"
lib32-ncurses 6.0-2
linux 4.7-1
ncpamixer-git c03248b-1
ncurses 6.0-4
$ ncpamixer --version
ncpamixer v1.0
Build type: debug
Build date: 2016-08-17 11:22
With ncurses-6.1_p20190105-r0 and pulseaudio-12.2-r1 on Alpine Linux
Add new events for setting levels at certain percent.
For example:
set_volume_10 sets volume to 10%
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.