No, current is the current value setted. Don't need to add a field for that. Instead to only be changed by pulseaudio the field is updated by a set, like you do but without duplicating it. And a timer is launched for the use case we have no update from pulseaudio and sync the volume level. No bouncing and no wrong value (or for a short couple of times).
All case are covered and I don't forget where pulse stay at 40%. 2017-02-24 18:36 GMT+01:00 <marcel-hollerb...@t-online.de>: > I dont see why... > > Lets keep the sample 20% -> 40% -> 60% > > then there are 2 calls, > > first: emix_sink_volume_set(sink, vol) where volume is set to 40% > second: emix_sink_volume_set(sink, vol) where volume is set to 60% > > So at each time the set_value points to the value that got set last > time. And we are always jumping to the correct value back when the drag > ends... > > And "if pulse stays at 40%", then my scenario wont hit ... but i think > we should not search for a scenario where it works :P > > On Fri, Feb 24, 2017 at 06:25:07PM +0100, michael bouchaud wrote: > > Sorry but with your solution the comportment will be the same... > > Or you will save and display wrong value > > > > 2017-02-24 18:23 GMT+01:00 michael bouchaud <michael.bouch...@gmail.com > >: > > > > > Ok and if pulse stay at 40% ? > > > > > > 2017-02-24 17:15 GMT+01:00 <marcel-hollerb...@t-online.de>: > > > > > >> On Fri, Feb 24, 2017 at 01:42:00PM +0100, michael bouchaud wrote: > > >> > 2017-02-24 13:31 GMT+01:00 michael bouchaud < > michael.bouch...@gmail.com > > >> >: > > >> > > > >> > > 2017-02-23 22:13 GMT+01:00 Simon Lees <sfl...@suse.de>: > > >> > > > > >> > >> > > >> > >> > > >> > >> On 02/24/2017 01:03 AM, marcel-hollerb...@t-online.de wrote: > > >> > >> > On Thu, Feb 23, 2017 at 03:13:18PM +0100, michael bouchaud > wrote: > > >> > >> >> 2017-02-23 14:11 GMT+01:00 <marcel-hollerb...@t-online.de>: > > >> > >> >> The "current" is the current value of pulseaudio, and if > > >> pulseaudio > > >> > >> change > > >> > >> >> this > > >> > >> >> value we will got an event who update the value and the > slider. > > >> > >> > > > >> > >> >> The user don't complain about bouncing slider, but because he > got > > >> wrong > > >> > >> >> value displayed by the slider. > > >> > >> > > > >> > >> > The video obviously shows how the slider bounces back and > forth ... > > >> > >> > so the user complained about the bouncing slider. Just read the > > >> commit > > >> > >> > message you reverted, and you get to the video where you see > the > > >> bug. > > >> > >> > > > >> > >> > > >> > >> While in most cases i'd agree that showing the actual volume is > > >> better, > > >> > >> i've experienced the bouncing around and it basically makes the > > >> slider > > >> > >> unusable so unfortunately in this case I don't think we can show > the > > >> > >> actual volume, pulse will catch up soon enough. > > >> > >> > > >> > >> > > >> > > I understand boucing slider could be annoying for users, we need > to > > >> take > > >> > > this into account, I agreed. Marcel I don't think adding a field > is > > >> the > > >> > > best way to resolve > > >> > > this. If we do like that we need to add a field for sinks, > > >> sink_inputs and > > >> > > main volume. > > >> > > And now the problem go to e_client_volume too, so we need to do > the > > >> same > > >> > > with these > > >> > > sliders (I really dislike it). This only grow the memory usage in > my > > >> point > > >> > > of view without > > >> > > really fixing it. We just moving the problem, as I say before, in > > >> other > > >> > > place (here higher > > >> > > level). > > >> > > > > >> > > > >> > Ok I see your commit you don't move the problem in higher level, but > > >> memory > > >> > still grow. > > >> > > >> I dont think thats too bad. Thats a few bytes per sink and channel. > > >> The reason i dont like the timeout mechanic is that pulse could update > > >> to a "old" value. > > >> > > >> Lets say you rise from 20% to 40% to 60%. Now you wait for pulse to > > >> update. Pulse first updates to 40 (you display it) and then pulse > > >> updates to 60%. And you have a jumping slider again. > > >> > > >> I think that saving our own volume somewhere is here the easiest > > >> solution, with the smallest number of corner cases. > > >> > > >> > > > >> > > > >> > > > > >> > > Why not adding a timeout mechanics when a volume set is done. We > set > > >> the > > >> > > volume > > >> > > and update current volume field. If pulse don't change it in a > delay > > >> of > > >> > > time (maybe 1 s), > > >> > > we go to read the current volume. > > >> > > If the volume isn't changed current field differ from the readed > > >> value, so > > >> > > we could send > > >> > > the volume change event. > > >> > > > > >> > > This fix all places without more memory allocated. What do you > think ? > > >> > > > > >> > > > > >> > >> -- > > >> > >> > > >> > >> Simon Lees (Simotek) > http://simotek.net > > >> > >> > > >> > >> Emergency Update Team > keybase.io/simotek > > >> > >> SUSE Linux Adelaide Australia, > UTC+10:30 > > >> > >> GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 > 014B > > >> > >> > > >> > >> > > >> > >> ------------------------------------------------------------ > > >> > >> ------------------ > > >> > >> Check out the vibrant tech community on one of the world's most > > >> > >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > >> > >> _______________________________________________ > > >> > >> enlightenment-devel mailing list > > >> > >> enlightenment-devel@lists.sourceforge.net > > >> > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > >> > > >> > >> > > >> > > > > >> > > > > >> > > -- > > >> > > Michaël Bouchaud > > >> > > > > >> > > > >> > > > >> > > > >> > -- > > >> > Michaël Bouchaud > > >> > ------------------------------------------------------------ > > >> ------------------ > > >> > Check out the vibrant tech community on one of the world's most > > >> > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > >> > _______________________________________________ > > >> > enlightenment-devel mailing list > > >> > enlightenment-devel@lists.sourceforge.net > > >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > > >> ------------------------------------------------------------ > > >> ------------------ > > >> Check out the vibrant tech community on one of the world's most > > >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > >> _______________________________________________ > > >> enlightenment-devel mailing list > > >> enlightenment-devel@lists.sourceforge.net > > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > > > > > > > > > > > > -- > > > Michaël Bouchaud > > > > > > > > > > > -- > > Michaël Bouchaud > > ------------------------------------------------------------ > ------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Michaël Bouchaud ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel