Commit Graph

423 Commits

Author SHA1 Message Date
Carsten Haitzler 2747af8e07 mixer - try not to create notifications for no change in volume 2019-09-20 13:48:31 +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
Carsten Haitzler dccf124ff3 mixer backend - fix null checks to cover all uses
fix CID 1403937
2019-08-06 18:53:30 +01:00
Carsten Haitzler af92895931 e - fix issue in emixer where sliders will not get disabled right
recent changes to try disable sliders won't handle the slider list vs
single slider right - warning pointed this out so fix it right.
2019-06-04 12:38:34 +01:00
maxerba e83259bccd Fix typos in messages 2019-05-25 21:43:24 +02: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) fb23acf874 mixer: factorize backend emix infra
Summary:
The mixer gadgets suffer of a bad design between old and new gadget infra.
This commit refactorize the mixer backend to get only one instance
between old and new gadget. This resolve many problems as e_client_volume
integration or the default_sink choosen in one of this modules.
Now it will be easier to maintain this code and better support when we will
remove old gadget infra.

Reviewers: zmike, devilhorns, stephenmhouston

Reviewed By: zmike

Subscribers: cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D7718
2019-03-18 08:54:42 -04:00
Stephen 'Okra' Houston 4097a9d2f6 Mixer Gadget: Give the mixer gadget its own actions as to not conflict with the shelf module.
Fixes T7263
2019-01-17 11:34:13 -06: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
Carsten Haitzler a0611d0026 mixer - mirror changes to new gadget code too 2019-01-16 16:48:28 +00:00
Carsten Haitzler 3b359b4ea7 mixer - put back parent process hunting for things like spotify 2019-01-16 16:40:20 +00:00
Carsten Haitzler a841544d03 e client mixer handling - fix segv where inputs/sink cause segvs
so i've been seeing this thing where inputs are deleted and then the
sink is appropriately deleted from clients but not all the client
windows it could have been on. the problem seems to manifest if
multiple windows come from the same app playing audio so the sink may
be assigned to only 1 window not all of them.

this seems to nuke the segv as the sink/input was being left dangling on a
window due to the logic in the add/del handling to give up when it finds the
first window target and not all of them.

so after a day or so of testing my segv's are gone. yay!

@fix.
2019-01-16 11:31:41 +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
Michael Bouchaud (yoz) 4cc4260c42 mixer: Add sink_input association on client add event
Summary:
As the pulseaudio sink could be created before the window, we list
sink_inputs from pulseaudio on client add event. This make to not miss
an association and provide the volume control feature as expected.

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D7559
2019-01-10 11:34:23 +01:00
Carsten Haitzler e4339f4819 bryce - improve usability from code and user by having std right menu
now right click on any gagdte in bryce and they ALL have a menu that
allows removal of the gagdte bar or the gadget as well as access to
gadget settings AND the ability for gadgets to extendthis menu like
lunhcer does per icon. now it's standard behavior everywhere which is
much easier to use and discover. it also removes code from every
gadget to do their own "button 3" handling as its handled centrally
making the code in gadgets simpler.

this is part of my effort to improve usability (mostly discoverability
and accessibility of settings/features).

also  long press left mouse gets u gadget right click menu

this has to move many modules/gadgets actions to mouse up instead of
mouse down so the bryce has a chance to trap the events first and set
hold flags. but now long press for 0.5 sec and bryce menu come sup
(with left mouse .. so touch friendly).

in addition move context menu hanbdling to e_gadget instead of in
bryce and in e_gadget. a context callback is called so different
systems can still do different things. this should probably change to
always pop up a mnenu and simple call populate callbacks for site
owner specific content.

all in all it makes the new gagdtes more consistent, easier to use
(without a right mouse button), doesn't need special action bindings
etc. etc.
2018-10-11 16:25:10 +01:00
Carsten Haitzler 7c6702e2fd mixer - fix exe handler del and handle to stop crashes after mixer run
running emixer from the mixer module popup was resulting in crashes.
it was this exe event handler handle and leaving a dangling garbage
ptr after it was deleted.

@fix
2018-05-19 00:58:03 +09:00
Carsten Haitzler ab1360c224 emxier desktop - fix categories to match well known cat names
Audio is not a well known/valid one. AudioVideo is. fixes T5076

@fix
2018-05-18 21:45:20 +09: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 c1177a1c15 meson: fix build
everything that includes e.h needs deps_e as dependencys, otherwise headers may not be found
2017-12-03 13:14:39 +00:00
Mike Blumenkrantz bd88282047 remove autotools 2017-11-20 07:05:36 -05:00
Carsten Haitzler b9d166f804 use safer ecore_exe flags that close stdin/out/err if possible
this is specifically needed for wayland but is relevant to x with
startx too ... dont let processes that e runs like apps inherit
stdin/out/err as it may be a tty and thus allow apps to do nasty
things with that tty.

@fix
2017-09-23 23:10:35 +09:00
Mike Blumenkrantz 164c87b1db resolve desktop spec issues with emixer.desktop
fix T5076
2017-09-13 10:34:06 -04:00
Mike Blumenkrantz b5e75eb264 formatting
lot of mixed spaces/tabs here made the code unreadable
2017-08-29 15:32:18 -04:00
Stephen 'Okra' Houston ad46d041a8 Gadgets: Don't set gadgets to expand. 2017-08-23 09:55:59 -05:00
Carsten Haitzler 638ffe5853 mixer - fix segv on shutdown
this just got added... dont shutdown actions if no gmixer has been
created.
2017-08-23 17:39:14 +09:00
Mike Blumenkrantz 38a95f0930 do not add del callback for demo mixer gadgets
fixes crash when destroying demo mixer gadgets if no real gadget exists
2017-08-22 18:31:35 -04:00
Stephen 'Okra' Houston 0332eca3c7 Mixer Gadget: Use demo gadget in places where demo gadgets are used. 2017-08-22 11:54:52 -05:00
Marcel Hollerbach 338ce6f11c meson: install emixer correctly 2017-08-22 09:30:36 +02:00
Carsten Haitzler da791a0bf5 e mixer - handle pulse exit/disconnect and not keep e client sinks
we keps e client sinks even if we were dicsonnected from pulse... this
caused fun crashes. fix

@fix
2017-08-20 01:02:03 +09: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 5e59869a62 meson build - mixer - simplify for module build setup
it's still complex anyway... :( but a little smaller
2017-08-12 13:40:44 +09:00
Carsten Haitzler 03aeb1d463 fix fallthrough warnings 2017-08-04 12:35:27 +09:00
Mike Blumenkrantz 403819fc21 fix mixer logging to use mixer log domain 2017-07-28 15:44:55 -04:00
Carsten Haitzler b976006bb5 meson build - fix mixer build because the defines are only for existence
we use these defines with

ifdef xxxx

not #if xxxx

and so they should ne undefed when not there and otherwise value when
defined is irrelevant as long as they are defined.

so use set not set10
2017-07-22 17:00:25 +09:00
Mike Blumenkrantz e8dc71cd48 meson. 2017-07-20 17:18:33 -04:00
Mike Blumenkrantz b7e8e886e9 do not generate module.desktop files
the purpose of this is to allow variable substitutions, but no desktop
files do this so it's a waste of build time for no reason
2017-07-14 18:40:50 -04:00
Stephen 'Okra' Houston 9e7b78ffab Gadgets: Make sure to avoid conflicts with functions and globals. 2017-07-12 16:03:06 -05: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
Stephen 'Okra' Houston 9894726039 Gadgets: Clamp aspect sets to a minimum of width and height minimum of 1.
This fixes T5600
2017-07-06 14:16:00 -05:00
Stephen 'Okra' Houston 202bf770f4 Gadgets: Follow gadget theme naming conventions. 2017-07-06 12:20:53 -05: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
Stephen 'Okra' Houston 7ff0e585ac Gadgets: Remove the word "Gadget" from the name of gadgets. 2017-06-08 15:27:24 -05:00
Stephen 'Okra' Houston e5c337abfb Mixer/Backlight: Set correct levels on creation.
This fixes T5500
2017-05-19 10:52:18 -05:00
Stephen 'Okra' Houston 9d0bcd9ce2 Gadgets: Send proper theme strings, and set aspect/size correctly. 2017-05-12 15:38:45 -05:00
Stephen 'Okra' Houston 20f94cec74 Bryce/Gadgets: Add backlight, xkbswitch, and mixer gadgets. This should round out the core gadget ports.
All three of these gadgets are ports of the existing modules of the same name and are contained within those directories.  Once the move from shelves -> bryce and gadcon->gadgets is complete, backlight and mixer will likely need to go into the sysinfo gadget.
2017-05-11 17:13:15 -05:00
Marcel Hollerbach 56246e0f08 mixer: be prepared for sinks without any volume
for the case that a sink does not have any volume we would access
NULL[0], which leads to a crash, this fixes that.

fix T5298
2017-04-07 11:53:56 +02:00