Commit Graph

52 Commits

Author SHA1 Message Date
Carsten Haitzler e2786dd50f mod mixer - unput monitor sources as they may be already
this results in no vu meter if they are muted... unmut them so we get
a working vu
2021-04-02 17:54:04 +01:00
Carsten Haitzler 0f90c6a10a mod - mixer - visual cleanups of mixer look and feel. more polish 2021-03-30 14:52:23 +01:00
Carsten Haitzler 71409186b9 emix - fix dynamic output sink change with monitoring 2021-03-30 11:50:31 +01:00
Carsten Haitzler 9444e5d55d e mixer - add ability to monitor streams with vu meters too
it's generic infra where you can get a general waveform (44.1khz
stereo floats per strea) for playback (sink inputs), output (sinks)
and inputs (sources). the emix gui will put a vu meter (actually it's
not a vbu meter - it's a peak sample measure over any frame period)
with a progress bar there. very useful now.

@feat
2021-03-30 01:12:26 +01:00
Carsten Haitzler 434833e9da mixer - properly update default sink and set def sink too in mixer popup
mixer popup SAVED the def mixer but never SET it...  and this led to a
bunch of issues when getting gixed. now its saved and set. NOW the
mixer popup has a quick way to select the output sink (device). handy
if uyou use usb audio for heapdhones but on board audio for speakers
for example (or hdmi audio or something).

@fix
2021-03-07 11:11:39 +00:00
Alastair Poole c09e37d7e1 mixer: pulse indentation.
Tidying up from that previous patch.
2021-03-02 08:41:29 +00:00
Pau Espin Pedrol b0b2984953 emixer: pulse: Use description as name for sources
Summary:
Same is already done for sinks.

emixer: Add support to set default sink

emixer: Add support to set default source

emixer: gadget: Update UI to follow pulseaudio default sink changes

Reviewers: devilhorns

Subscribers: abrouwers, netstar, cedric, zmike

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D12247
2021-03-02 08:35:21 +00:00
Carsten Haitzler 048a658ff9 emix - mixer backend - fix string compare to compare wholes string 2020-10-04 22:17:02 +01:00
Carsten Haitzler 8392fc4769 emix - fix symbols to point to correct extern sym 2020-05-10 18:11:43 +01:00
Simon Tischer 039f96df91 emixer - add icon for playback device
Summary:
add playback icons

emixer - add playback icons

Reviewers: devilhorns, raster

Subscribers: raster, bu5hm4n, cedric, zmike

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D11640
2020-04-06 14:27:44 +01:00
Carsten Haitzler 96ae312d6e mixer pulse - handle alloc failure better and dont access null
fix CID 1403930
2019-08-06 19:00:46 +01:00
Michael Bouchaud (yoz) 5aedf54042 emixer: Add volume channels control on emixer
Summary:
This commit allow the user to control each volumes channels in emixer.
A lock flag is introduced to manage volume as before.

@feature

Reviewers: zmike!, devilhorns, raster

Subscribers: cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D7639
2019-05-21 14:41:24 +01:00
Michael Bouchaud (yoz) 1527599b78 mixer: Add cards settings into pulseaudio backend
Summary:
This commit bring the support to set a profile on audio hardware via
pulseaudio. You are now able to configure the output of your audio
hardware via emixer without the help of pavucontrol.

@fix T3127

Reviewers: zmike!, devilhorns

Subscribers: cedric

Tags: #enlightenment-git

Maniphest Tasks: T3127

Differential Revision: https://phab.enlightenment.org/D7569
2019-01-16 17:10:09 +00:00
Michael Bouchaud (yoz) 797425c7d4 emixer: avoid a stringshare leak on sink changed signal
Summary:
emixer: avoid memleak when converting pulseaudio value

@fix T2806

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric

Tags: #enlightenment-git

Maniphest Tasks: T2806

Differential Revision: https://phab.enlightenment.org/D7583
2019-01-11 10:33:20 +01:00
Ross Vandegrift 629f7d41c8 clean up .desktop files and misc typos
Summary:
Drop deprecated Encoding key from desktop files

The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded.  See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html

Fix various typos and misspellings

lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries.  This change fixes the ones it identified in 0.22.1.

Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5585
2018-01-04 09:57:52 -05:00
Marcel Hollerbach bf146faf72 mixer: find a better name
if pa does not provide the name via the proplist we can just use the
information from name if the name exists
2017-08-14 17:35:36 +02:00
Carsten Haitzler 03aeb1d463 fix fallthrough warnings 2017-08-04 12:35:27 +09:00
Jean-Philippe Andre b173ed7be6 pulse: do not leak strbuf
See also ac92ff5256.
- eina_strbuf_string_get() returns the internally stored string as
  a const char *, and does not free the strbuf itself
- eina_strbuf_string_steal() returns the internal string as a
  char *, giving ownership to the caller, and frees the strbuf
  itself
- eina_stringshare_add() takes a const char * as input and makes a
  copy of the string

As a consequence, ss_add(sb_string_steal()) leaks the internal
string from the strbuf, while ss_add(sb_string_get()) leaks the
strbuf structure.

A one liner here would require either an eina_slstr based API or
an API in stringshare to take ownership of a given string. Both
would be useful APIs :)
2017-07-11 10:49:03 +09:00
Marcel Hollerbach ac92ff5256 mixer: do not leak a allocated string
this fixes a leak, thank you jp!

@fix
2017-07-10 15:29:27 +02:00
Mike Blumenkrantz 9fc9fce9a7 unset DISPLAY in mixer when performing pulseaudio operations under wl 2017-07-07 16:26:28 -04:00
Marcel Hollerbach d2d3d9976b mixer: the name has to be a stringshare 2017-07-04 16:49:54 +02:00
Marcel Hollerbach b32086d402 emixer: use a better name for the sink inputs
it seems applications are using a higher quality name with the property
PA_PROP_APPLICATION_NAME.

ref T5664
2017-07-04 10:12:01 +02:00
Mike Blumenkrantz 62e1027509 try only 1 reconnect to pulse when mixer fails to init
this causes huge lag on failure with no termination case. if it fails
on the reconnect attempt then odds are it's never going to succeed
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 235bbc087e rework how pulseaudio is started in mixer backend
calling `pulseaudio` starts a new daemon in the background. this is incorrect
behavior when a daemon already exists, so use --start. tracking the exe of
this process has no effect other than to determine when the fork()ing parent exits,
which is usually immediately

ref 35bb87529f
2017-03-17 13:16:59 -04:00
Mike Blumenkrantz 7191c45de5 slow down mixer's pulse reconnect rate
0.2s is way too fast and results in crazy cpu usage from attempting to
spawn invalid pulseaudio instances in some cases

ref 35bb87529f
2017-03-17 13:16:59 -04:00
Carsten Haitzler 35bb87529f e mixer module - run pulseaudio if connect fails
so i have a situatioon where pulse is not started automagically. if
e's mixer it set to pulse... then stick to it, run pulse and keep
trying to connect every 0.2 sec until connection works. this makes
sound "just work" tm as it should...

@fix
2017-02-20 22:58:59 +09:00
Carsten Haitzler 26b68f8c7e e mixer pulse backened -f ix warning about use of uninit var
display really isn't uninitialized due to the logic, but compielr is
kind of right in theory... but less warnings is better so we fix the
real problems more easily. fix.
2017-02-12 16:25:35 +09:00
Derek Foreman 4cf555f36e Replace all timer_reset with timer_loop_reset
Another sed bomb - didn't occur to me first time around to
check for this.  Cleans up more clock_gettime calls.
2017-02-06 15:59:25 -06:00
Derek Foreman 73aecd73ab Replace all timer_add with timer_loop_add
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.

It would be really nice if I'm not wrong. :)

The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.

 #YOLO
2017-02-03 15:52:28 -06:00
Michaël Bouchaud (yoz) 307f0831ce mixer: use the new e_client api to export volume control by app.
We use the pulseaudio backend to export volume control by app.
This commit introduce 3 news shortcuts to control the volume with the current
focused window.

@features
2016-10-27 21:54:40 +02:00
Michaël Bouchaud (yoz) 1943cee080 mixer: fix the volume conversion calc into pulseaudio backend
a get and a set don't give the same result

@fix
2016-10-27 21:54:39 +02:00
Marcel Hollerbach 1a3086b2c2 mixer: introduce emix_max_volume_get
This lets the module decide what its maximum value is.
Everything over 100% is considered overloading. And is protected by the
mixer and the gadget.
2016-09-07 11:05:11 +02:00
Flavio Ceolin 5df7963ad1 emix: when in alsa mode only operate on master 2016-09-06 11:54:51 +02:00
Marcel Hollerbach 4f0e3bce84 emix: update sink of sink_input when changed
this fixes none changing sinks in the app.
2016-06-25 17:12:35 +02:00
Mike Blumenkrantz 366193f2d2 remove pulse sinks/sources from list before running cbs which access the list
this guarantees a crash any time the default sink gets removed since it will
always re-set the about-to-be-deleted default sink as the default sink

fix T3277 probably
2016-05-17 15:05:18 -04:00
Mike Blumenkrantz 01c261e9f7 unset DISPLAY during mixer's pulse backend startup
fixes more xwayland deadlocks
2016-05-06 13:40:03 -04:00
Mike Blumenkrantz ed25a5005f clean up mixer includes
config.h needs to be included. always.
2016-05-06 13:38:09 -04:00
Mike Blumenkrantz fe34f45995 Revert "mixer: try to fix a possible bug"
This reverts commit 61182d6434.

accidentally pushed, does not resolve anything
2016-04-12 13:38:44 -04:00
Marcel Hollerbach 61182d6434 mixer: try to fix a possible bug
for the case the default sink was removed the gadget will get a new
  default sink again, for the case of pa there is the possibility that
  at this time the sink is still the default one, but the sink gets
  removed. so we better set the default index to -1 and return just some
  sink for the case the default is deleted.
2016-04-12 13:33:54 -04:00
Derek Foreman 1965c7965e emix: Rename parameter bool to mute
Summary: Broke my wayland build because something included stdbool.h

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3467
2015-12-18 16:42:30 -05:00
Marcel Hollerbach d9e01e851f alsa: fix a valgrind warning
Valgrind was warning about the values not initialized
2015-12-18 13:20:48 +01:00
Stefan Schmidt 7ed2381722 pulse backend: correct declaration of function with no parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
2015-11-26 18:10:47 +01:00
Flavio Ceolin a524d165bc modules:mixer: Avoid pa backend from crash
Check the pulseaudio's context error and if info is not null before
get server's information.
2015-10-24 19:10:40 -02:00
Amitesh Singh de740b2520 pulseaudio: pass big data as pass by reference
CID: 1308394
2015-10-14 21:51:00 +05:30
Marcel Hollerbach c61320ce72 Merge branch 'devs/bu5hm4n/mixer'
This merge fixes problems which where discovered by the mail "[e-users] alsa NOT mixer?"
2015-08-10 19:48:23 +02:00
Marcel Hollerbach 81e8a349bb mixer: only list playbackdevices if they are _real_ playbackdevices 2015-08-10 19:23:31 +02:00
Marcel Hollerbach d6833f0749 mixer: update internal volume and call the changed event 2015-08-10 19:17:43 +02:00
Marcel Hollerbach 91f34cb1f7 mixer: get volume after setting channels 2015-08-10 19:15:59 +02:00
Flavio Ceolin 7c195e383c modules:mixer:pulse Update default sink
Update the default sink when it changes (for instance when it is changed
on pavucontrol).
2015-08-07 16:53:51 -03:00
Chris Michael 3a395b4223 mixer: Fix resource leaks
This fixes Coverity CID1308395: Resource leak. Basically, don't bother
allocating 'source' if we are just going to end up returning due to
'eol' variable tests

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-26 10:25:42 -04:00