Design question: how to store the "preferred ports" of a card

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2016-02-25 17:18, Tanu Kaskinen wrote:
> Hi,
>
> Some time ago I submitted a patch[1] for fixing the HDMI routing
> regression[2]. The patch introduces two new variables for cards:
> preferred_input_port and preferred_output_port. The variables are
> internal to module-switch-on-port-available. It turned out that the
> patch doesn't fix the bug properly, because the variables are not saved
> on disk, so the user preferences are forgotten on reboot.
>
> Now my question is what approach is preferred for implementing the
> variable persistence. I'd like to keep the logic of setting the
> variables in module-switch-on-port-available, but I'd prefer not to
> create a new file for storing the variables on disk. So, I propose that
> module-card-restore will take care of saving and restoring the
> variables.
>
> How should module-switch-on-port-available and module-card-restore
> communicate with each other? My preference would be to add the
> variables to pa_card, and add functions
> pa_card_set_preferred_input_port() and
> pa_card_set_preferred_output_port(). module-switch-on-port-available
> would call those when it wants to change the values, and module-card-
> restore would call them when restoring the values from disk. There
> would also be new hooks PA_CARD_PREFERRED_INPUT_PORT_CHANGED and the
> same for output, which module-card-restore would use to update the on-
> disk database.
>
> Another alternative would be to use the card proplist for storing the
> variables.
>
> Opinions?
Hmm, is there anything in the above that differs from the strategy used 
for the recently added pa_device_port->preferred_profile?

Adding variables to pa_card seems reasonable to me. Perhaps having the 
same hook for both input and output (and perhaps adding a parameter 
telling which one changed) would save a few lines of code here and 
there? But that's mostly a detail.

>
> [1] https://patchwork.freedesktop.org/patch/74014/
> [2] https://bugs.freedesktop.org/show_bug.cgi?id=93946
>
> -- 
> Tanu
>



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux