<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Headphones selected on first run while unplugged and other ports are available"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=87002#c18">Comment # 18</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Headphones selected on first run while unplugged and other ports are available"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=87002">bug 87002</a>
              from <span class="vcard"><a class="email" href="mailto:david.henningsson@canonical.com" title="David Henningsson <david.henningsson@canonical.com>"> <span class="fn">David Henningsson</span></a>
</span></b>
        <pre>Rough outline of new suggested startup order:

 1) Above the add_profiles call in module-alsa-card.c, we should first start
listening to mixer events (in order not to get a race condition).
 2) Update availability of all jacks. This might require some refactoring of
code as the jacks do not have associated ports at that point.

 3) add_profiles ends up calling alsa-mixer.c:device_port_alsa_init. Here, add
a call to pa_device_port_new_data_set_available() and fill it in accordingly.
This will also require refactoring the jack availability to port availability
logic into a separate function in alsa-mixer.c.

 4) We add a new hook in module-switch-on-port-available that listens to
pa_card_new. From this hook, we switch the suggested profile in case the
current profile has no available ports (and we find another profile that has).

Does that make sense? Anything (or all) of the above that you'd like to write
yourself?</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>