Commit graph

38 commits

Author SHA1 Message Date
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
29cb7bf39a format: improve format parsing 2017-03-24 18:11:11 +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
d9a51b5d14 mapper: place strings in array
mapper: place strings in a big array.
Make it possible to configure array and map extend size.
2017-03-23 17:57:03 +01:00
Wim Taymans
6f0a12462b format: add format utils 2017-03-21 11:37:18 +01:00
Wim Taymans
c1cf1e6f67 Add update_uris method and event
Add a way to send mapper updates between client and server and a way
to map between client and server types.
2017-03-14 20:18:31 +01:00
Wim Taymans
8fbcb0fef1 remove some unused event and seqnum 2017-03-09 19:21:50 +01:00
Wim Taymans
1e600713a5 core: handle client bind errors
When a client attempts to bind to an unexisting global, don't error
but instead let the client know the object was removed.
2017-03-09 15:52:19 +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
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
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
16b62de53a Rework formats
Use a POD for the format body. This allows us to more easily build
and copy the formats.
Remove obsolete code to make video and audio formats.
Use SpaVideo/AudioInfo to keep track of formats. Make functions to parse
the format into the structures.
Update plugins
2017-02-24 09:28:18 +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
fd54471249 Implement SYNC message
A sync message returns a notify-done after all request are finished and
can be used to wait for completion of a bunch of commands. Use it wait
for all proxy BIND requests to complete so that we can look at the
info immediately.
Copy the default value of unset properties.
2017-02-01 17:48:12 +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
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
8ce3f949e2 Add core introspection
Use global ids in info messages to refer to global objects.
2016-12-15 20:09:48 +01:00
Wim Taymans
5e8a3afe17 handle cleanup of remote proxies
Destroying a resource informs the client to destroy the proxy.
Destroying an object destroys all the bound resources on it.
2016-12-02 17:14:32 +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
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
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
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
ae93f15965 Work on event loop
Make a new epoll based event loop and use it for the data tranport.
Simplify the spa event api a little and rename to SpaLoop
2016-11-18 17:46:01 +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
b6ad45bb74 track client resources 2016-11-15 17:06:09 +01:00
Wim Taymans
0d21d633c9 WIP object model change
Work on cleanup
2016-11-15 13:29:58 +01:00
Wim Taymans
c25ccbb4ba WIP change object model 2016-11-14 12:42:00 +01:00
Wim Taymans
190f01d88e WIP
Change object model
2016-11-10 15:42:14 +01:00