sqp / pulseaudio

pulseaudio dbus client for go
ISC License
36 stars 7 forks source link

Support Module Objects #6

Open ushis opened 3 years ago

ushis commented 3 years ago

Hi. I'd like work with Module Objects.

Unfortunately your lib does not implement func (cl *Client) Module() like func (cl *Client) Device() or func (cl *Client) Stream(). I would love to find a solution and have 3 proposals:

  1. Implement func (cl *Client) Module(). It's as easy as:
func (pulse *Client) Module(sink dbus.ObjectPath) *Object {
    return NewObject(pulse.conn, DbusInterface+".Module", sink)
}
  1. Expose Client.conn to the user. That way people can use NewObject using the existing dbus connection of the pulse client.
  2. Change the Signature of NewObject to
func NewObject(client *Client, interf string, path dbus.ObjectPath) *Object

Do you have any preference? I would be happy to open a PR.