Commit Graph

390 Commits

Author SHA1 Message Date
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
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
Marcel Hollerbach 9745890a37 Revert "Revert "mixer: do not set back the value from emix once the drag is finished""
This reverts commit fba185798c.

There is not even a description why you reverted it. This is a bugfix
that fixed a bug. So talk to me what the issue is, but please stop
reverting commits silently.
2017-02-23 09:08:24 +01:00
Michael Bouchaud cb6ea9f747 e_client_volume: check volume setted after a slider drag 2017-02-23 00:36:17 +01:00
Michaël Bouchaud (yoz) fba185798c Revert "mixer: do not set back the value from emix once the drag is finished"
This reverts commit 8724313b8e.
2017-02-22 22:59:13 +01:00
Michaël Bouchaud (yoz) dbdf411b48 mixer: use VOLSET macro in volume output set 2017-02-22 22:59:13 +01: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
Michael Bouchaud 9320b0e4ea e_client_volume: forget to remove the separator 2017-02-20 01:48:40 +01:00
Michael Bouchaud 51a5ec4e6a e_client_volume: display a control per stream in the popup volume
This commit enhance the e_client_volume popup. Now you could see which sink
belongs to an e_client and allow you to control it. Sadly I haven't added a
scroller to this popup, I will add it later. Lots of calcs is needed to
display it correctly.
2017-02-20 02:23:16 +01:00
Michael Bouchaud 0a73905895 e_client_volume: add E_EVENT_CLIENT_VOLUME_SINK handler
This commit introduce 3 new handlers to e_client_volume API. These allow to
catch event about sink add, del and update
2017-02-20 02:21:14 +01:00
Michael Bouchaud 939ac0b93d e_client_volume: add sink_name_get API to e_client_volume 2017-02-20 00:46:59 +01: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
Mike Blumenkrantz 49d9cea5aa center menu-triggered volume popup on same zone as client 2016-11-07 11:26:46 -05:00
Michaël Bouchaud (yoz) be154b60c8 mixer: close the file descriptor on error.
CID: 1365407
2016-11-07 10:32:04 +01:00
Michaël Bouchaud (yoz) 568a676073 mixer: Don't sync volume sink with e_client if they have more than one.
If we got more than one volume sink in e_client and we change the volume
of one of them all sink of this e_client are updated to the same volume.
So don't update e_client volume if we got more than 1 sink.

T4821
2016-11-07 10:26:56 +01:00
Michaël Bouchaud (yoz) ec12cff9f4 mixer: fix a typo spotted by coverity
CID: 1365340
2016-11-07 10:19:28 +01:00
Michaël Bouchaud (yoz) 2a0b4dfbc4 mixer: fix coverity issues 2016-11-02 15:27:38 +01:00
Stefan Schmidt b13486599e mixer: remove unused variables 2016-10-31 11:34:31 +01:00
Stefan Schmidt f606935067 mixer: mark unused function parameter as such 2016-10-31 11:34:02 +01:00
Marcel Hollerbach 8724313b8e mixer: do not set back the value from emix once the drag is finished
emix can still have wrong values from pa, and thus the value will jump
back and later come back to the right pos:

Here a video of what is happening:
http://omicron.homeip.net/filedump/mixer_gadget_bug.ogv

Thank you morluxus!
2016-10-28 11:41:00 +02:00
Michaël Bouchaud (yoz) b2d67bd68a Revert "mixer: lock up the slider for the case a drag is in progress"
This reverts commit eed35d3c4f.

This is a bad workaround, I have fixed the issue so we don't need it
anymore.
2016-10-27 22:38:46 +02:00
Michaël Bouchaud (yoz) b65cb5df92 mixer: add volume control to e_client menu
Add a button to the window menu, when clicked this one make a new window to
control the volume of the app.

@features
2016-10-27 22:34:17 +02: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 838dde02ee mixer: we changed that name when we merged the mixer in 2016-10-11 14:16:53 +02:00
Marcel Hollerbach eed35d3c4f mixer: lock up the slider for the case a drag is in progress
if you click on the slider in the gadget the slider jumps a back to the
old volume and then to the new volume, this is because a pulseaudio
update is sent while the last changed event was called, but not the
drag_stop callback.
2016-09-14 10:43:17 +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
Marcel Hollerbach 1da2bbcd9c mixer: introduce Barrier checks
in this barrier checks the module checks that the user is explicit going
over the value of 100%
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