Sound quality in bluetooth headphones doesn't change to high
After several months of experimenting I have learned more about Bluetooth profiles that are supported by my phone: HSF (headset) and A2DP (advanced audio distribution). First profile allows to stream low-quality audio in both directions (e.g. for audio calls on the cell or Skype) and the other one is designed to provide high-quality single-direction audio (e.g. for listening to music).
My Nokia phone perfectly handles these two modes since it knows definitely when I need to switch between profiles (HSF when somebody is calling, A2DP when listing to music). However, it's a different story with a PC. There are many VoIP applications (Skype, VoipDiscount etc.) that may want to use HSF while other audio applications (e.g. Winamp, VLC) will want to use A2DP. Is it not absolutely clear how should an operating system support that. One may say that they should switch to HSF when VoIP applications demand it and switch back when the conversation is over. This sounds like a good solution but it would provide inequality for apps, while the operating system must remain neutral.
Best option would be to allow the user to select from a number of policies which should be used in such conflicts. Unfortunately in all operating systems that I've tried (Mac OS, Ubuntu, Windows 7) there is no support for that. Mac and Ubuntu are better since they at least provide a way to set profile manually, which is not possible on Windows.
EDIT: Android handles this nicely. They have a special permission for apps called "Phone", which allows the app to switch the phone into HSF mode when needed, but otherwise the phone stays in A2DP. Futhermore, apps with "Phone" permission can also stop music playing from other apps when the call is in progress. This way, the user gets to choose which apps can have the permission and thus OS stays neutral.