Commit graph

1557 commits

Author SHA1 Message Date
Daniel Eklöf
35d7b2bc4a bar: add EFD_CLOEXEC flag to 'ready' eventfd 2018-12-28 12:41:05 +01:00
Daniel Eklöf
904f9ff8e1 tag: all tag constructors must now be passed a module 'owner' 2018-12-28 12:40:41 +01:00
Daniel Eklöf
8d94202057 particle/progress-bar: renders a progrss-bar-like thingy 2018-12-27 14:22:05 +01:00
Daniel Eklöf
ce895ac44f particle/empty: placeholder particle, renders nothing
But may have margins.
2018-12-27 14:21:33 +01:00
Daniel Eklöf
99008c5ad9 module/mpd: "elapsed" tag is now a realtime tag (when state == playing) 2018-12-27 11:44:46 +01:00
Daniel Eklöf
025c6991a3 tag: add a new variant of int tags, with a realtime unit property
The idea is, consumers of a tag, can check the realtime property, and
if set to something other than TAG_REALTIME_NONE, schedule a realtime
update.

For example, it could be used to track song progress.
2018-12-27 11:43:27 +01:00
Daniel Eklöf
9a94c9c1f7 module/mpd: monitors MPD 2018-12-27 11:36:38 +01:00
Daniel Eklöf
3aa6b21056 particle/string: call particle_default_destroy() 2018-12-26 21:35:39 +01:00
Daniel Eklöf
ce85ccda56 particle/ramp: call particle_default_destroy() 2018-12-26 21:35:24 +01:00
Daniel Eklöf
20fb0c37b5 particle/map: call particle_default_destroy() 2018-12-26 21:35:05 +01:00
Daniel Eklöf
f5123afc72 particle/list: call particle_default_destroy() 2018-12-26 21:34:53 +01:00
Daniel Eklöf
1427d6a98b particle: provide a default destroy() function
This allows us to destroy the associated decoration.
2018-12-26 21:34:19 +01:00
Daniel Eklöf
f65a18b655 particle: initialize 'deco' member to NULL
Fixes valgrind warnings about uninitialized variable. This happened
for every particle that did *not* have a decoration.
2018-12-26 21:33:35 +01:00
Daniel Eklöf
1b50808da5 bar: set_cursor(): new interface function, to set the X cursor
Use this to explicitly set the initial/default cursor to "left_ptr"
2018-12-26 17:16:54 +01:00
Daniel Eklöf
ce68bdb59d exposable: add a 'width' member, set (at latest) in begin_expose() 2018-12-26 16:37:11 +01:00
Daniel Eklöf
a745436ee2 decoration: stack: stacks multiple decorations on top of each other 2018-12-26 15:59:48 +01:00
Daniel Eklöf
09cd27b688 decoration/underline: draws a line at the bottom of the particle 2018-12-26 15:59:16 +01:00
Daniel Eklöf
1c9a908a8f particle/string: draw decoration, if available 2018-12-26 15:31:49 +01:00
Daniel Eklöf
0e3dd72313 yml: bump anchor vector size 2018-12-26 15:31:37 +01:00
Daniel Eklöf
0094cc1269 config: load decorations. All particles may have one 2018-12-26 15:31:16 +01:00
Daniel Eklöf
0284f5ac85 decoration: configurable graphical effects, added to a particle 2018-12-26 15:30:47 +01:00
Daniel Eklöf
052513c736 particle/ramp: don't use floating point arithmetic 2018-12-26 12:44:26 +01:00
Daniel Eklöf
1929099ca4 module/backlight: new module 2018-12-26 12:44:17 +01:00
Daniel Eklöf
5306ebd4ed bar: call refresh() after all modules have been loaded
This also means that modules do *not* have to call bar->refresh() just
before/after calling module_signal_ready().

As long as the module's initial state has been correctly/completely
set up before it calls module_signal_ready(), the module *only* has to
call bar->refresh() when it's state changes.
2018-12-26 11:48:09 +01:00
Daniel Eklöf
3af0280304 module/xwindow: replace assert with real error check 2018-12-26 11:44:21 +01:00
Daniel Eklöf
6d75fe64ef module/xkb: signal module-ready when failing early 2018-12-26 11:42:42 +01:00
Daniel Eklöf
b2121070f8 module/i3: replace asserts with real error checks 2018-12-26 11:31:28 +01:00
Daniel Eklöf
30332670aa module/battery: convert asserts to real error checks 2018-12-25 12:25:24 +01:00
Daniel Eklöf
d81547066d module/battery: log error message on failure during initialization 2018-12-19 21:12:42 +01:00
Daniel Eklöf
3bc4bd56a9 tag: tag_new_string(): allow NULL values (treat as empty string) 2018-12-19 21:01:36 +01:00
Daniel Eklöf
7f2c0681a7 log: add LOG_ERRNO()
Works like LOG_ERR(), but appends a string representation of the
current errno value to the log message string.
2018-12-19 21:01:01 +01:00
Daniel Eklöf
8897e480c5 log: rename log_class() -> log_msg() 2018-12-19 20:56:26 +01:00
Daniel Eklöf
7e95862e12 module/battery: error handling during initialization 2018-12-19 20:54:36 +01:00
Daniel Eklöf
ffaec546f5 module/xwindow: use lock from generic module 2018-12-19 20:35:43 +01:00
Daniel Eklöf
60b72cc55a module/xkb: delay ready signal, until we've actually initialized 2018-12-19 20:29:58 +01:00
Daniel Eklöf
661cabfb69 module/i3: use lock provided by generic module 2018-12-19 20:26:15 +01:00
Daniel Eklöf
2c7362fefa module/battery: no need to lock before we've signaled ready 2018-12-19 20:24:36 +01:00
Daniel Eklöf
3413232ed6 module: add new function module_signal_ready() 2018-12-19 20:23:53 +01:00
Daniel Eklöf
a3eb7ebc08 bar: wait for all modules to have started up before continuing
After starting all the module threads, wait for all modules to have
signalled "ready" before continuing.

This will allow modules to do initial setup, and knowing that
content() will *not* be called until they've signalled "ready".
2018-12-19 19:41:25 +01:00
Daniel Eklöf
7f0f096ba4 module: begin_expose() and content() take a non-const module pointer 2018-12-19 19:03:19 +01:00
Daniel Eklöf
b579f97db7 module/xwindow: use module common constructor/destructor 2018-12-19 19:00:29 +01:00
Daniel Eklöf
f8cb3acc35 module/xkb: use module common constructor/destructor 2018-12-19 18:59:33 +01:00
Daniel Eklöf
20cb0f0de7 module/label: use module common constructor/destructor 2018-12-19 18:58:10 +01:00
Daniel Eklöf
536db672b4 module/i3: use module common constructor/destructor 2018-12-19 18:57:19 +01:00
Daniel Eklöf
16553a7216 module/battery: acquire lock when reading/writing state 2018-12-18 20:24:30 +01:00
Daniel Eklöf
d279b585db module/battery: read all data into local variables first
This minimizes the time we'll have to hold the lock (once we lock).
2018-12-18 20:23:19 +01:00
Daniel Eklöf
f253bbebd2 module/battery: we're scanning into a signed long 2018-12-18 20:22:48 +01:00
Daniel Eklöf
76995ddcd5 module/battery: use module common constructor and default destructor 2018-12-18 20:22:30 +01:00
Daniel Eklöf
72624af1fa clock: use module common constructor and destructor 2018-12-18 20:13:04 +01:00
Daniel Eklöf
edc418b22d module: provide a "common" constructor and destructor
Also, provide a lock for module to use (to ensure run() and content()
doesn't step on each other's toes).
2018-12-18 20:12:04 +01:00