- Sep 15, 2024
-
-
Dimitris Papaioannou authored
-
- Jul 16, 2024
-
-
- Jun 30, 2024
-
-
Link Mauve authored
This avoids the need to create a temporary CString to then downcast it into a CStr. This requires a small bump of MSRV.
-
- Jun 17, 2024
-
-
New wrapper around spa_pod_struct that enables proper reading of struct pods by providing an iterator over its fields. The new &PodStruct converts to a &Pod and, if the pod is a struct, the reverse.
-
New wrappers around spa_pod_object and spa_pod_prop enables proper reading of object pods. The new &PodObject converts to a &Pod and, if the pod is an object, the reverse.
-
-
- May 21, 2024
-
-
Teoh Han Hui authored
-
- Apr 12, 2024
-
-
Deduplicates shared information in the Cargo.toml file of each crate by moving it into the workspace file and inheriting the fields.
-
Add a constructor, setters, and derive Clone and Copy
-
add set_position callback to specify audio channels in the tone example.
-
Add support for more audio format
-
to enable transfer of strings via FFI boundaries add CStr variants to functions using &str Fixes #95
-
Tom Wagner authored
-
Tom Wagner authored
These are currently empty and dont do anything.
-
- Feb 06, 2024
-
-
Tom Wagner authored
-
Tom Wagner authored
-
Tom Wagner authored
-
- Feb 05, 2024
-
-
- Jan 18, 2024
-
-
Using pipe2 instead of eventfd increases portability and reduces special casing. Due to the channel lock eventfd only counts to 1 and a pipe is as efficent as eventfd. Also gets rid of some unsafe blocks.
-
-
Tom Wagner authored
Makes multiple improvements to the pipewire loop types `Loop`, `MainLoop`, `ThreadLoop`: - Make each `Inner` type an implementation detail. Those structs are no longer public, and all functionality has been moved to the outer types This also included changing and renaming the AsLoop trait. - Remove long deref chains (outer type -> inner type -> LoopRef) Deref should only be used for the "smart pointer"-like outer types to dereference to their ref type. `loop_()` methods have been added instead to get the `&LoopRef`. - `new` and `with_properties` constructors have been merged into one constructor using an Option. Properties are not used rarely enough to warrant a seperate constructor. - Conversion functions from/to raw pointers have been added and changed to fit the crate convention - Missing crate::init() calls added to avoid UB when using uninitialized library - General code style improvements
-
-
- Jan 09, 2024
-
-
Dorinda Bassey authored
Add missing audioformats
-
- Dec 26, 2023
-
-
Tom Wagner authored
Applies the usual ref-struct pattern to pw_core by splitting it into a `Core` and a `CoreRef`, so that non-owned cores can be managed through the bindings.
-
Removes the `ReadableDict` and `WritableDict` traits. Instead, adds a new `DictRef` struct that is a transparent wrapper around `spa_dict` and implements reading functionality. Things that wrap spa dicts (e.g. `pipewire::properties::Properties` have accessors and AsRef implementations to get a `DictRef` for the wrapped dict. Functions that used to be generic over `ReadableDict` now accept a `&DictRef`, which the caller needs to obtain from their wrapper types. Writing functionality is now specific to wrappers of the spa_dict (same as the C library), so there is no direct replacement for the `WritableDict` trait, instead, some wrappers will have their own methods for writing.
-
- Dec 25, 2023
-
-
dsee authored
-
- Dec 07, 2023
-
-
Ian Douglas Scott authored
It doesn't seem like there's any reason not to provide these to all the callbacks. In some cases they're useful (and require ugly hacks to work around their absence), so it seems best to just be consistent. This also changes the order of arguments to `param_changed` to have the param id after `D`, again for consistency.
-
-
Generated `bindings.rs` expect a *mut pipewire_sys::timespec, whereas a *const pipewire_sys::timespec was given here.
-
-
Tom Wagner authored
This job fails on some valid email addresses, and also we shouldn't fail CI because someone signed off on their commit.
-
- Nov 20, 2023
-
-
Tom Wagner authored
Before this commit, PropertiesRef was not a transparent wrapper like the other ref structs in the crate are, so you couldn't use it in places were you just had a pointer to a nonowned pw_sys::pw_properties. Deref/DerefMut impls are added to the Properties struct so that it can be converted automatically as needed.
- Oct 11, 2023
-
-
-
Tom Wagner authored
pipewire, libspa: Rework module hierarchy so that items are in (or near) the location of their corresponding header Our previous strategy of organizing modules and their items was simply to put stuff whereever it roughtly fit. Some items were `pub use`d to the crate root, other things were in random modules, and some things even appeared in multiple locations due to their module being `pub`, but the module also being `pub use`d in the crate root. The new strategy is that most things should be in a module which is in a location that corresponds to their C headers location in the upstream pipewire and spa libraries. For example, an item in `pipewire/core.h` will be in `pipewire::core`, while an item in `spa/utils/dict.h` will be in `spa::utils::dict`. Some items where the exact header doesn't really add any information, things may be moved to a slightly different location, e.g. spa_direction from spa/utils/defs.h is contained directly in spa::utils.
-
Dimitris Papaioannou authored
-
Dimitris Papaioannou authored
-
- Oct 02, 2023
-
-
Dorinda Bassey authored
-
- Sep 28, 2023
-
-
Tom Wagner authored
While the pipewire library named the functions with int/long, the actual size of the integers is always 32/64 bits and only matches with the int/long size on some platforms
-
- Sep 25, 2023
-
-
Dorinda Bassey authored
Added thread_loop bindings to enable it to be present at link-time
-