Commit Graph

429 Commits

Author SHA1 Message Date
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
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 b64a637428 allow mixer volume increase actions to exceed 100%
ref 0bbb20a3be

cc @raster probably should have some kind of theme indicator in the theme
for "high" volumes > 100%
2016-04-18 11:44:52 -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
Mike Blumenkrantz d1d30029d1 select mixer popup sink after popup has been fully initialized
attempting to select too early results in callbacks being triggered
before various widgets are available
2016-01-08 12:05:41 -05: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 f174008a83 mixer: only save state if not in init
If we are calling emix_config_save_state_get while in init, we are
freeing the list emix_config_save_state_restore is iterating over.
This leads to crashes.

@fix T2942
@fix T2906
2015-12-18 13:21:08 +01: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
Carsten Haitzler e5f56f95e9 e mixer fix - fix default mixer to pulse if there
this makes e use the correct mixer backend if pulse is available as
opposed to using alsa going behind pulses back.

@fix
2015-11-14 10:14:30 +09:00
Mike Blumenkrantz 3ad521ab9c ensure that all mixer volumes resolve to the appropriate gadget icon
reported by Jef91 in #e
2015-11-11 11:54:58 -05: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 2fd6f95a9b mixer: start app from bin directory
before the app was installed into the modules directory, now its
installed to the bin directory
2015-10-13 22:06:00 +02:00
Marcel Hollerbach 03888cf941 mixer: install icon and .desktop file 2015-10-13 22:06:00 +02:00
Carsten Haitzler 9c5b6acb05 e mixer - be more robust if pulse exits/crashes and def sink is null
ensure there are protections everywhere for when default sink is null
- mixer did crash when pulse crashed and a popup was to be shown...
2015-10-10 11:07:24 +09:00
Carsten Haitzler 530c8613c8 e mixer - shut up coverity CID 1323098 2015-09-09 11:02:23 +09:00
Carsten Haitzler 2a0b1c024b e mixer - save state when we get change events too
this plugs a gap where wrong state is saved.
2015-09-06 20:04:22 +09:00
Carsten Haitzler 04496541c4 e mixer - fix up saving to save everything
as pointed out by jackdanielsz and bu5hm4n - this doesnt save
everything. like all the outputs and ports and... so now it does.
everything is saved and restored is "remember" is enabled. now
everything should be fine.
2015-09-02 18:31:44 +09:00
Carsten Haitzler f18d9258fc e mixer - discovered bug as a lack of feature - does not remember volume
i have never seen this before until last night. on some systems audio
starts up volume 0 and muted (either or) and thus on login the volume
is not where you left it and you have to manually fix it every time.
this fixes this by having mixer remember the last volume and mute
state you set (option to enable/disable too) and handles "upgrading"
to remember by default if you have old config

@feature / @fix
2015-09-02 12:49:42 +09:00
Carsten Haitzler bdcbf06b0f e - mixer - fix leak when seting volume
fixes a lieak i spotted in mixer after moving to epulse core. fix for
e20
2015-09-02 00:03:57 +09:00
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 5675ed26cd mixer: Fix segfault when backend does not have any sink 2015-08-10 19:25:27 +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
Marcel Hollerbach 0a26246848 mixer: this if does not make much sense 2015-08-10 19:14:51 +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
Carsten Haitzler 0bbb20a3be e - mixer - allow to 150% volume with some "stickynedd" from 100 to 120 2015-06-14 15:01:44 +09:00
Carsten Haitzler 921d4dee2b e - mixer - clean up popup a bit with mute next to slider etc. 2015-06-09 17:22:40 +09:00
Carsten Haitzler dd6e4f33f8 e mixer - fix segv on desklock if default sink not set yet 2015-06-09 16:18:24 +09:00
Carsten Haitzler 5d7fa51309 mixer - dont make list scrollable horizontally for nicer look 2015-06-09 16:17:07 +09:00
Carsten Haitzler e63f358933 Revert "Revert "fix mixer gcc class name""
This reverts commit 6bacf20705.

oops - i was wrong. totally misread that patch i thinkg it changed
mixer -> emix
2015-06-09 14:39:15 +09:00
Carsten Haitzler 918f4bffcc e - mixer - don't do anything on desklock if no mixer context exists 2015-06-09 11:10:35 +09:00
Carsten Haitzler 6bacf20705 Revert "fix mixer gcc class name"
This reverts commit 718b3206cb.

no - this REPLACEs the mixer module. the same old mixer gadget that
was originally in e now will be replaced by this new epulse/emixer
gadget. thus the "mixer" gadcon name.
2015-06-09 11:09:12 +09:00
Mike Blumenkrantz 718b3206cb fix mixer gcc class name 2015-06-08 15:02:24 -04:00
Carsten Haitzler 4f6df6b7ca e mixer - replace with epulse/emixer
this is emixer (epulse) from

http://git.enlightenment.org/devs/ceolin/epulse.git

the emixer binar is rewritten though and the emix lib is compiled-in
into the module and into the binary as oppopsed to a shared lib with
loadable modules. this supports alsa and pulse. a much more solid mixer.
2015-06-08 21:15:09 +09:00
Carsten Haitzler d17851f714 fix leak in randr2 when matching clone modes 2015-06-08 20:53:13 +09:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Conrad Meyer d96517fce3 Mixer Pulse: Fix trivial use-after-free.
Summary: Don't use memory after freeing it.

Fixes T2274

@fix

Reviewers: raster, zmike

Subscribers: abyomi0, zmike

Projects: #enlightenment-git

Maniphest Tasks: T2274

Differential Revision: https://phab.enlightenment.org/D2301

Commit message updates by: Tom Hacohen
2015-04-09 10:37:59 +01:00
Mike Blumenkrantz a5012da244 remove all debug output from mixer module
fix T2274
2015-04-07 19:35:50 -04:00
Mike Blumenkrantz 58447e9508 completely remove E_Manager
the final step in flattening all the canvas/screen apis
2015-03-19 16:53:32 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Mike Blumenkrantz 09ec213a31 remove e_util_zone_current_get() usage 2015-03-13 17:58:45 -04:00
Mike Blumenkrantz ed897a231e de-e_comp_get()ify e
mrw I remember how to regex http://i.giphy.com/dC9dujPVeAfIY.gif
2015-03-13 15:12:20 -04:00
Mike Blumenkrantz 3fc96af2dd Revert "revert all the ui breakes in e - going the wrong direction in the"
This reverts commit 3ea6a3569d.
2015-01-15 03:04:42 -05:00
Carsten Haitzler 3ea6a3569d revert all the ui breakes in e - going the wrong direction in the
first place anyway. shoudl replace the entire dialgo one at a time by
an elm version not try and stuff elm widgets into where e widgets used
to be. this doesnt improve e's config dialogs, just makes them buggy
as all hell in the name of a move to elm.

Revert "e_widget_button -> elm_button conversion"
This reverts commit b1c976d80d.

Revert "update widget size hints when setting a resize object"
This reverts commit fdab0218b2.

Revert "remove no-longer-necessary size hinting in list widgets"
This reverts commit 21479f5019.

Revert "e_widget_textblock -> elm_entry conversion"
This reverts commit 8fe2f00f75.

Revert "e frame -> elm_frame conversion"
This reverts commit e9da6a02fc.

Revert "remove unnecessary size hinting"
This reverts commit b596623efd.

Revert "e_label -> elm_label conversion"
This reverts commit 049b318679.

Revert "set evas size hint min in widget min size"
This reverts commit 2f09aa2fda.

Revert "e_table -> elm_table conversion"
This reverts commit 6434012982.

Revert "remove unused vars"
This reverts commit b19e706b23.
2015-01-15 12:13:53 +09:00
Mike Blumenkrantz 6434012982 e_table -> elm_table conversion
if rebases were monopoly money, this commit would be able to buy mediterranean ave.

 #teamborker
2015-01-13 22:44:55 -05:00
Mike Blumenkrantz c978a045e6 e_entry -> elm_entry conversion
another dice roll in the board game of enlightenment development. next, I will attempt to roll doubles to get out of jail.

 #teamborker

fix T1906
2015-01-11 12:20:46 -05:00
Mike Blumenkrantz ac7a786b59 don't show mixer popup during nocomp
fix T1270
2014-12-30 17:00:23 -05:00
Carsten Haitzler 6510e8bd0e Revert "all dialogs are now resizable"
This reverts commit 9157ca8ca7.

this also makes all dialogs that have content in a toolbar that goes
off window at min size resizable - this is actually what you wanted ..
bgut this previous "all dialogs are resizable" thing was uber-lazy.

Conflicts:
	src/modules/bluez4/e_mod_main.c
	src/modules/conf_bindings/e_int_config_signalbindings.c
	src/modules/conf_theme/e_int_config_theme.c
	src/modules/mixer/conf_gadget.c
	src/modules/shot/e_mod_main.c
2014-12-22 23:02:05 +09:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Stefan Schmidt 98457f7332 modules/mixer: Check fcntl setting CLOEXEC for success
We still keep going if this fails but print out an error.

CID: 1039960
2014-09-19 11:30:38 +02:00
Carsten Haitzler 1412f28b51 mixer: Optionally select an external mixer application.
This feature allows to define an external mixer application, which replaces
the internal mixer.
Examples: 'terminology -e alsamixer', 'pavucontrol'
@feature

this re-commits this with tab fixes (no tabs)
2014-09-17 13:31:02 +09:00
Mike Blumenkrantz e7c0ae402f Revert "mixer: Optionally select an external mixer application."
This reverts commit 97b1caef37.

we don't use tabs, don't even start with this.
2014-09-15 19:28:08 -04:00
Brian 'morlenxus' Miculcy 97b1caef37 mixer: Optionally select an external mixer application.
This feature allows to define an external mixer application, which replaces the internal mixer.
Examples: 'terminology -e alsamixer', 'pavucontrol'
@feature
2014-09-15 19:27:17 +02:00
maxerba fac4e89dfa Updating desktop files, eo.po and fr.po 2014-09-11 21:14:58 +02:00
Mike Blumenkrantz ee5be41194 Revert "mixer: Optionally select an external mixer application."
This reverts commit e4e2550484.

apparently some people don't know what "feature freeze" means...
2014-08-29 10:38:51 -04:00
Brian 'morlenxus' Miculcy e4e2550484 mixer: Optionally select an external mixer application.
This feature allows to define an external mixer application, which replaces the internal mixer.
Examples: 'terminology -e alsamixer', 'pavucontrol'
@feature
2014-08-29 15:32:05 +02:00