Giter Site home page Giter Site logo

ncpamixer's People

Contributors

brynedwards avatar c0r73x avatar cubicuz avatar diederikdehaas avatar durcor avatar fredrikhson avatar gregthemadmonk avatar hishamhm avatar hyask avatar jaggzh avatar rendom avatar spinojara avatar svenwe avatar tallero avatar tricktux avatar whatthefuzz avatar z3ntu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ncpamixer's Issues

Show volume levels also in dB

Knowing the value also in dB, alongside the percentage, would be great!

Instead of just showing the percentage, maybe something like this: (-12.04 dB — 65%)
image

make error: undefined reference to symbol 'keypad'

Hey, I've tried makeing this from both the supplied Gentoo fulhax overlay through Portage, as well as by cloning the git repo, cding 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.

Build fail

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.

Glyphs not rendering correctly

image

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(image) the ~Y is displayed. Also the slider is not displayed as it should be, but instead there is a VH:
image

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?

Add detailed instructions to compile.

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.

Left-right channels manipulation

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.

CMake errors when building on Alpine Linux

/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}
     )

SIGSEGV When selecting new track in VLC

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.

Can't find curses when compiling

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?

ncpamixer segfaults when using non-existing "--help" parameter

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

Reconnect to PulseAudio on restart or connect to PulseAudio if it's started after ncpamixer.

Crash when device.description not defined

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.

p->app_name = pa_proplist_gets(info->proplist, PA_PROP_APPLICATION_NAME);

Segmentation fault (SIGSEGV)

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.

Exiting with 1

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:

  • GCC 4.9.3
  • PulseAudio 8.0
  • /lib64/libpthread-2.22.so

2016-12-30T11:42:17Z: added a list of versions

NCPAMIXER controls not working on Manjaro i3

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.

NCurses utf8 chars not working

Screenshot_20211015_201220

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());

error: variable 'toggle_len' set but not used [-Werror,-Wunused-but-set-variable]

/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

Allow user to select input/output device

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.

Volume can go up to infinity

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 🙂

gcc8 compiler

in file pa.cpp change line 466 to:

strncpy(p->app_name, app_name, sizeof(p->app_name) -1); to make compile and install

Startup tab flag

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.

Makefile issue

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?

SIGSEGV when firefox play/pauses

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

Termux build

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

UI issue on Ubuntu Bionic

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:

image

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:

image

1.3.3.1 and master segfault, 1.3.3 is fine

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 ).

Incorrect rendering of menus

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:

ncpa

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?

WIP: OSX Version

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.

Build error: ‘BUTTON5_PRESSED’ was not declared in this scope

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:

  • libpulse0
  • libpulse-dev
  • libncurses5
  • libncurses5-dev

No idea what else could be missing.

Option to disable live vu-meter feature

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.

Segfault in tab

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)

Application segfaults often

  1. Every time when exiting the application with "Esc"
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?)
  1. Randomly when navigation through the UI
    e.g.
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?)

Pressing F1-F4 causes ncpamixer to exit

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.