Skip to content
Snippets Groups Projects
  1. Nov 16, 2020
  2. Nov 15, 2020
  3. Nov 13, 2020
    • George Kiagiadakis's avatar
      lib: refactor WpProxy · 2f3f5f8e
      George Kiagiadakis authored
      This is an attempt to unclutter the API of WpProxy and
      split functionality into smaller pieces, making it easier
      to work with.
      
      In this new class layout, we have the following classes:
      
      - WpObject: base class for everything; handles activating
      |           and deactivating "features"
      |- WpProxy: base class for anything that wraps a pw_proxy;
       |          handles events from pw_proxy and nothing more
       |- WpGlobalProxy: handles integration with the registry
      
      All the other classes derive from WpGlobalProxy. The reason
      for separating WpGlobalProxy from WpProxy, though, is that
      classes such as WpImplNode / WpSpaDevice can also derive from
      WpProxy now, without interfacing with the registry.
      
      All objects that come with an "info" structure and have properties
      and/or params also implement the WpPipewireObject interface. This
      provides the API to query properties and get/set params. Essentially,
      this is implemented by all classes except WpMetadata (pw_metadata
      does not have info)
      
      This interface is implemented on each object separately, using
      a private "mixin", which is a set of vfunc implementations and helper
      functions (and macros) to facilitate the implementation of this interface.
      
      A notable difference to the old WpProxy is that now features can be
      deactivated, so it is possible to enable something and later disable
      it again.
      
      This commit disables modules, tests, tools, etc, to avoid growing the
      patch more, while ensuring that the project compiles.
      2f3f5f8e
  4. Jun 04, 2020
  5. Jun 01, 2020
  6. May 29, 2020
    • George Kiagiadakis's avatar
      props: refactor WpSpaProps into WpProps · 9ae70711
      George Kiagiadakis authored
      - make it a GObject so that it can emit its own signals
      and so that it can be shared between multiple proxies
      - share the WpProps instance between endpoints, endpoint-streams
      and their underlying nodes
      - introduce the concept of the caching mode that redirects _set
      to _set_param of the proxy that actually has the props; this allows
      shared WpProps to actually set changes on the correct proxy
      in a transparent way
      - change methods to consume the ref of the pod and reflect that
      also on wp_proxy_set_prop()
      - refactor the export process on endpoints & endpoint-streams
      so that they always get all the required features (info, props, bound)
      and make it async so that we can take time to prepare the underlying
      node to have FEATURE_PROPS
      - update the props & endpoint unit tests, bringing back all the
      checks that the endpoint unit test used to have
      9ae70711
  7. May 25, 2020
  8. May 16, 2020
  9. May 14, 2020
  10. May 11, 2020
  11. May 05, 2020
  12. May 03, 2020
  13. Apr 21, 2020
  14. Apr 14, 2020
  15. Apr 01, 2020
  16. Feb 19, 2020
  17. Feb 12, 2020
  18. Feb 11, 2020
    • George Kiagiadakis's avatar
      proxy/core: refactor object creation · 9330208a
      George Kiagiadakis authored
      * core no longer exposes create_remote/local_object
      * node, device & link have constructor methods
        to enable the create_remote_object functionality
      * added WpImplNode to wrap pw_impl_node and allow creating
        "local" node instances
      * added WpSpaDevice to wrap spa_device and allow creating
        "local" device instances
      * exporting objects in all cases now happens by requesting
        FEATURE_BOUND from the proxy, eliminating the need for WpExported
      * replaced WpMonitor by new, simpler code directly in module-monitor
      * the proxy type lookup table in WpProxy is gone, we now
        use a field on the class structure of every WpProxy subclass
        and iterate through all the class structures instead; this is
        more flexible and extensible
      9330208a
  19. Jan 22, 2020
  20. Jan 13, 2020
  21. Dec 11, 2019
  22. Dec 04, 2019
  23. May 17, 2019
    • George Kiagiadakis's avatar
      Refactor everything! · 447c9688
      George Kiagiadakis authored
      After discussing things at the AGL May 2019 F2F meeting
      and reflecting on the initial design of WirePlumber,
      it became clear that it needed a fresh start.
      447c9688
  24. Apr 28, 2019
  25. Apr 22, 2019
Loading