Wim Taymans
46928cbc04
alsa: use timerfd
...
Use timerfd instead of period events to wake up alsa.
module-autolink: fix crash
Some cleanups
2017-03-28 19:29:08 +02:00
Wim Taymans
e90166678c
monitor: pass info to factory
2017-03-24 18:31:37 +01:00
Wim Taymans
94019fb1f5
small cleanups
2017-03-24 16:14:17 +01:00
Wim Taymans
25b7ede0bc
uri -> type
...
Clean up some more types.
2017-03-24 13:11:57 +01:00
Wim Taymans
5825c62d6d
types: more work on types
2017-03-24 11:40:58 +01:00
Wim Taymans
acedfe71c0
clean up types
2017-03-23 21:15:52 +01:00
Wim Taymans
3dba9f0fd4
pod: handle NULL
2017-03-23 16:08:50 +01:00
Wim Taymans
e28b5f91b8
props: make properties dynamic keys and values
2017-03-23 12:38:00 +01:00
Wim Taymans
7270986c3a
monitor: use dynamic types
...
Make the monitor item a POD object and use dynamic types.
2017-03-23 08:54:04 +01:00
Wim Taymans
8a6ce3b179
Make AllocParams into POD objects
...
Make allocparams into pod objects. This makes it easy to serialize,
copy, create and intersect them.
Add convenience macros for properties
Add helper function to collect object properties.
2017-03-17 11:58:09 +01:00
Wim Taymans
3e472c2dae
loop: add before_iterate signal
...
Add before_iterate signal and use it to flush data to clients.
2017-03-14 16:13:29 +01:00
Wim Taymans
9b93fd396a
Fix some crashers
2017-03-13 11:43:34 +01:00
Wim Taymans
7ad02f553a
improve interfaces
...
Make an interface structure to hold methods and events.
Move interface setup to protocol
2017-03-09 13:00:56 +01:00
Wim Taymans
78a3cd61b8
pod-builder: make more generic builder
...
Make a vararg based builder that produces much smaller code.
Catch demarshal errors.
Simplify array handling
2017-03-07 17:23:35 +01:00
Wim Taymans
f92b68c3c3
Use types with known sizes where we can, easier to serialize
...
Add iterator for POD and use it to implement some demarshalling.
2017-03-07 11:56:43 +01:00
Wim Taymans
41399b0b25
Rework serialization
...
Move serialization to the protocol, we now just send blocks of bytes
over the connection and let the protocol deserialize them.
2017-03-06 15:48:04 +01:00
Wim Taymans
842d73ca4b
protocol-native: move to separate file
...
Move protocol-native to separate client and server file
2017-03-03 19:06:54 +01:00
Wim Taymans
b9a0b067be
use interfaces in client
2017-03-03 17:43:23 +01:00
Wim Taymans
e0813b679d
Use interfaces
...
Add interfaces and events on objects. Use this to communicate with the
objects and transparently convert/marshall to network in the protocols.
2017-03-02 16:06:45 +01:00
Wim Taymans
710a1a41e6
Improve negotiation
...
Fix selection of the default property value by restricting it to
something in the valid range of the property.
Fix audio/videotestsrc reuse
Fix format enum with filters.
Fix module property configuration
Fix connection refill
2017-03-01 14:07:02 +01:00
Wim Taymans
dbae2e3f96
rework props with pod
2017-02-27 21:25:33 +01:00
Wim Taymans
df86fcec10
Improve negotiation
...
Try to link ports based on compatible formats
Add methods to filter formats.
2017-02-10 10:17:07 +01:00
Wim Taymans
1370fafd5b
Fix renegotiation
...
When we are idle and are asked to negotiate, suspend first so that we
can do full negotiation again instead of using the old format.
Stability fixes.
2017-02-02 17:48:39 +01:00
Wim Taymans
b38ecafe81
Use int counters for iterating items
...
Use counters instead of void* to iterate items. This simplifies some
things and makes it easier to do over the wire.
Add format description to NodeInfo and use this to add format
descriptions to pinos devices.
Small fixes to fix leaks and crashes.
2017-02-01 08:58:21 +01:00
Wim Taymans
4b55d7c4da
Fix proxy ids
...
The proxy/resource ids are generated by the client and so we need to
used them as index in the client resource map instead of making our own
number.
Fix stream disconnect and client-node destroy
Fix gstreamer device provider
Make all sockets non-blocking to avoid errors with bad clients
Advertise the subsystems we monitor and disable the gstreamer monitors.
Implement core properties updates
Make sure we send REMOVE_ID after we are done with the resource.
2017-01-20 15:53:03 +01:00
Wim Taymans
cae971e106
improve error reporting
...
Move signals from core to the objects themselves
Use per object info to track object signals
Use periods in alsasink and source
2017-01-17 10:27:58 +01:00
Wim Taymans
474981ddda
Refactor the work queue
...
Make a separate work queue to track async operations. Keep separate
work queues for links and nodes. This avoids lockups when some async
operation take a long time and the work queue has SYNC_WAIT operations.
2017-01-12 16:48:17 +01:00
Wim Taymans
6d4db64767
Use refcounting for async shutdown
...
fix some memory leaks
2017-01-12 15:13:15 +01:00
Wim Taymans
ee0aa6a2ac
Implement access control
...
Move send and dispatch functions to the implementation. This makes it
possible to place an access check before sending and dispatching.
Add module-access that allows to bind and notify on globals owned by
the client.
2017-01-10 17:26:43 +01:00
Wim Taymans
85d375e4bb
Implement subscription with a signal
...
Use a signal for subscription events
Work on handling OOM errors and other errors.
2016-12-22 16:50:01 +01:00
Wim Taymans
ff5e260d67
Add client info message
...
Update client info and improve core info
2016-12-21 17:19:06 +01:00
Wim Taymans
e6f45a7686
Add link introspection
2016-12-02 16:06:16 +01:00
Wim Taymans
b969623ec8
Work on introspection
2016-12-02 13:38:43 +01:00
Wim Taymans
7c29209023
Registry: implement registry
...
Make GET_REGISTRY method to create a registry resource, send global
added and removed to this resource.
Use map for storing proxies and resources.
2016-11-30 19:09:09 +01:00
Wim Taymans
3dada4731c
rename signal -> sig
...
Meson puts the directory of the source file in the include path and then
it picks up our signal.h instead of the system one...
2016-11-28 16:24:10 +01:00
Wim Taymans
ee67929a7c
cleanups
2016-11-25 13:38:49 +01:00
Wim Taymans
1d61fd3696
Work on async cleanup
...
Track all async changes and only perform free of resources when all
previous async operations completed.
2016-11-25 13:06:23 +01:00
Wim Taymans
7ecfc28d0f
use plain libdbus instead of GDBus
2016-11-24 18:17:29 +01:00
Wim Taymans
4e94743906
Use pinos loop for mainloop
...
Remove more glib stuff
2016-11-24 17:40:26 +01:00
Wim Taymans
27bba6f587
Make native protocol
...
Remove DBus and work towards something like wayland.
Remove more glib stuff from the client code
2016-11-24 17:00:42 +01:00
Wim Taymans
efae64a759
Mainloop: use PinosLoop
...
Implement the main-loop with pinos_loop except for the parts that still
need to go through glib mainloop.
Start working on native protocol
2016-11-22 13:06:22 +01:00
Wim Taymans
e7cae649aa
Use mapper to make object id
...
Reuse object ids by using a mapper
Simpify the uri struct a little.
2016-11-21 16:29:15 +01:00
Wim Taymans
f42268b9a5
loop: build loop with SPA interface
2016-11-21 15:55:30 +01:00
Wim Taymans
3dcbf4b228
Move suspend on idle in module
...
Move suspend-on-idle code from the node to a module
Add some more SpaLoop API
2016-11-21 12:54:40 +01:00
Wim Taymans
d250ed42e6
Use global id in dbus name
...
This allows us to use the dbus name to connect again
2016-11-21 10:03:31 +01:00
Jonathan Karlsson
7c127f91a5
Pinos modules: Parse options with getopt
...
Make it possible to add options for modules in pinos.conf.in.
Only a few options for videotestsrc is supported at the moment.
2016-11-21 08:58:54 +01:00
Wim Taymans
0d2fa5ebc8
cleanups
2016-11-16 17:21:59 +01:00
Wim Taymans
dfbfb4c9ee
Rework dbus handling
...
Remove the Daemon object and remove all dbus code from the main
objects. We can use the signals in a separate module to create and
destroy the DBus interfaces.
Move the dbus protocol in a module
Move the autolink policy to a module
2016-11-16 16:57:47 +01:00
Wim Taymans
1a48bccca0
cleanups
...
Remove hastables, use lists
Remove obsolete ringbuffer
some small cleanups
2016-11-15 20:12:31 +01:00
Wim Taymans
0d21d633c9
WIP object model change
...
Work on cleanup
2016-11-15 13:29:58 +01:00