Skip to content
Snippets Groups Projects
  1. Nov 16, 2020
  2. Nov 15, 2020
  3. Nov 14, 2020
  4. 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
  5. Jun 04, 2020
  6. Jun 02, 2020
  7. Jun 01, 2020
  8. May 31, 2020
  9. 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
  10. May 25, 2020
  11. May 14, 2020
  12. May 11, 2020
  13. May 07, 2020
  14. May 05, 2020
  15. May 03, 2020
  16. Apr 23, 2020
  17. Apr 21, 2020
  18. Apr 14, 2020
  19. Apr 11, 2020
  20. Mar 31, 2020
  21. Mar 29, 2020
  22. Feb 19, 2020
  23. Feb 12, 2020
  24. 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
  25. Jan 22, 2020
  26. Jan 13, 2020
Loading