Send create_object error messages to the new resource id so that
the client can better know what proxy is failing.
Use resource_remove when create_object fails because the core will
already send a remove_id on failure.
Try to send other errors to the proxy that made the request if
possible.
Sending the errors to the proxy id allows the client to know something
is wrong with the proxy and deal with it better.
Use the port global id in the error message.
Make a function to send an error to another resource. This can be
used to send errors to proxies that now have a resource associated
with them, like in error cases.
We only need to sync clients when start/stop has been issued otherwise
we simply write the new position values in the driver segment.
Don't overwrite bar/video position info with invalid values.
When the client uploads a buffer, copy all data fields except for
the chunk memory that we configured before.
If we overwrite the chunk memory, the users of the buffer would not
be able to find the chunk memory anymore and crash or fail.
The change_mask string generation was buggy and confusing.
Fix it with something more usable.
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
A missing XDG_RUNTIME_DIR results in ENOENT, like on the server
side.
A too long name results in ENAMETOOLONG, like on the server side.
When we can't find the socket, return EHOSTDOWN to make it more
obvious what is going.
Log an error when we send an error to the client so that we don't need
to log and error anymore.
Improve the error messages when we can
Move some warnings and errors to debug
Until now there was no method to display parameters along with
information of their parent object.
This patchset stores parameter info in the global object so
that it may displayed along with its parent object.
This is a necessary step to be able to display and modify parameters
in a simple form like the following
pipewire-0>> set 12 volume=0.7
pipewire-0>> get 12 volume
0.7
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
The socket call does not terminate the string with '\0' so
we have to use the length explicitly.
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Return 0 when there are no more events, 1 when we have an event and
< 0 for errors. Use this to correctly push the last set of events on
EOS and then return 0 and stop without an error.
Monitor the device reservation objects and mark the device available.
Don't select nodes from devices that are not available.
Acquire the device reservation when a device starts.
Release the device reservation when we suspend the device again.
JACK can handle 2 buffers at most, make the default buffer allocator
allocate 2 buffers when no params are given.
Prefer 2 buffers, it allows some form of async fill/consume
enum_param should return -ENOENT when the param is not known.
When negotiating buffers handle -ENOENT. This means the port does
not know about the property and we should assume anything is fine
so just use the filter from the first port.
Use time in seconds as event timestamp.
Apply tempo from the new events, keep track of elapsed time and
time since tempo change to get the right time.
Skip metadata midi in pw-cat.
When we just picked a buffer from the queue and it is now empty,
call the process method to fill up the queue again or else we
won't have a buffer for the next wakeup.