yashsingh1/xdaforums huggingface dataset:
[Touch Diamond, MDA Compact IV General] Jiggs1337:
I really wish this was sorted out. It is such a pain to have to reach into my pocket to change track when i have a perfectly good AVRCP headset :(.
[Touch Diamond, MDA Compact IV General] defaria:
I installed this TaskMgr. Thanks, this is a cool app. And I turned off a few services I don't use like QuickGPS and Windows Live.

The services listed that might be involved in the AVRCP of Bluetooth are:

1) Bluetooth Audio Gateway (BAG0:)

2) HtcServices (HSV2:)

3) Sync Bluetooth Server(ASB0:)

4) Bluetooth HID Loader (BHL0:)

#1 shouldn't matter as I have Bluetooth Audio Gateway turned off anyway. If it's #2, well that seems like it might be everything lumped in together. That would bad as surely turning that off will turn off many things. #3 doesn't seem like it's it as it seems more involved with Blue ActiveSynching (Something I don't do because I don't have a Bluetooth enabled desktop). #4 looks promising however stopping the service doesn't seem to effect anything.
[Touch Diamond, MDA Compact IV General] defaria:
Sorry the ":" followed by ")" were being set to :) by this forums software.
[Touch Diamond, MDA Compact IV General] neuro159:
Even stop of all these services does't disable AVRCP interception by WMP on my device
[Touch Diamond, MDA Compact IV General] thx1200:
No progress yet, but I heard back from Conduits and they have aquired a Touch Pro so are now going to actively attempt to circumvent the AVRCP for the version after the next maintenance release for PocketPlayer. So no fast solution yet, but there are still some brains working on this.
[Touch Diamond, MDA Compact IV General] muppix:
If I do a search for AVRCP in the registry of my HTC Touch Pro there is only one result returned, pointing to Avrcp_MPplugin.dll. I'm guessing that the bluetooth stack used the registry as a look-up for what to do when receiving AVRCP commands from my headset and the registry calls functions in that DLL file, which goes on to control the standard WM6 media player.

I guess the media player in TF3D must therefore also be an interface to the MS media player. The only solution to getting AVRCP (and therefore most stereo bluetooth headsets) to work with other media players like Pocket Music would be reverse-engineer that DLL file and see what the hooks are, then create a similar DLL for each media player that you want to control.

Mup.

PS: My background is similar; like the look n feel of TouchFlo 3D (TF3D) but have opted for the standard Windows Mobile 6 (WM6) interface due to speed and functionality. Dislike Windows Media Player Mobile (or whatever it's called this week) but hate the fact I can't control any of my alternatives with my Philips bluetooth headset.

PPS: Sorry about the search-engine f0dd3r in this post, until I added AVRCP to my googles I get zero results, hopefully this post will help others. :)
[Touch Diamond, MDA Compact IV General] defaria:
Let's get terminology straight. The media player in TF3D is called the HTC Audio Manager. The tab is called the HTC Audio Manger Today Plugin.

So let's think this out a bit. If the path to who gets the signal to pause when pressing the pause button through AVRCP is through this DLL then fine. What is on the other end of this DLL? It is WMP or HTC Audio Manager (HTCAM)?

Pocket Player also "goes through" WMP to do AVRCP, just like HTCAM must.

And interestingly enough we can actually run both WMP and HTCAM at the same time! Listening to two different audio programs! What happens in such a case when an AVRCP comes in telling the media player to pause. Which one pauses? (For you I mean - I've had varying different results nothing consistant).

The real solution would be similar to the solution for Windows itself - somewhere along the line a media player gets registered as the default media player much like you can set the default between IE and FF on Windows. However that solution requires an Windows Mobile OS level fix so I'm not holding my breath.
[Touch Diamond, MDA Compact IV General] muppix:
Thank you for correcting my terminology with esteem. What can I say, I'm new to this.

I belive AVRCP to be an instance of WMP for a number of reasons, the least of which not being that I don't believe HTC would code a new media player from scratch when you can skin WMP.

I'm not even going to try that. Again, I believe those two to be instances of the same thing, and the whole test is completely irrelevant, a bit like throwing one bone to two dogs and declaring the loser to be vegetarian.

Agreed on all counts. Perhaps we could write a DLL to control PocketMusic? That would mean a level of cooperation from PocketMind though, anyone have a contact?

Mup.
[Touch Diamond, MDA Compact IV General] defaria:
I'm not convinced that there's just one instance of WMP running. After all HTC has an Audio Manager application as well as the HTC Audio Manager Today Plugin. Additionally, although you think it's irrelevant to run both WMP and HTCAM at the same time one surely can. And it's instructive because two different audio streams can be playing simultaneously! Therefore I believe this proves it's not one instance of WMP because one instance cannot output two different audio streams. It could be WMP and HTCAM or it could be two instances of WMP.

For example, today my bluetooth is behaving a little bit better. Right now I am playing a podcast through the HTCAM Today Plugin (Known as the Sprint Music player on the Sprint version of HTC Touch Diamond). AVRCP is behaving properly in that the Pause/Play button works.

If, however I start WMP and it has the "focus" (IOW it's visiable) then pressing Pause/Play will pause or play WMP (currently Frankenstein from Edgar Winter). And the music plays over, on top of or simultaneously with the podcast.

As long as WMP is showing the pause/play button pauses or plays the music in WMP. If I switch to the Home screen or any other application, pause/play pauses or plays the podcast!

That says something! It says there isn't just one instance of WMP. It also says that WMP has been coded such that it only intercepts AVRCP commands if it is the currently running application in the foreground and it says the HTCAM (or HTCAM controlling another instance of WMP) is coded such that it will intercept AVRCP commands if it has the focus or anything else has the focus except WMP.

Additionally if you are running Task Manager v3.1 you can see that there is one process named AudioManager_eng.exe and another named wmplayer.exe. And you can kill wmplayer.exe while the podcast is running (probably throught AudioManager_eng.exe) and the podcast does not stop.
[Touch Diamond, MDA Compact IV General] amidsin:
Problem confirmed on AT&T Fuze

I can confirm this problem in AT&T Fuze (HTC Touch Pro - Raphael). I have tied coocked ROMs - ROMeOS and EliteRaphael. Also I have tried disabling Touch FLO 3D by resting device before *.CAB are installed during initial customization.

AVRCP appears to be hardcoded for working only with Touch FLO 3D player if it is running or Windows Media Player Mobile if Touch FLO 3D is disabled.

I plan to drop the note in the treads for almighty cooks with request for solution.
[Touch Diamond, MDA Compact IV General] Xoroos:
To bring an action on HTC or to address in the International Antimonopoly Service - more effective method, than to write meek letters to technical support.

There are here lawyers?

How about collective claim?

HTC has broken the international antimonopoly norms, having made WMP exclusive client AVRCP!

And how to be with human rights on a choice?
[Touch Diamond, MDA Compact IV General] defaria:
So far the following has been working for me: Use TF3D Config to disable the HTC Audio Manager tab. On my Sprint HTC Touch Diamond this is called the Sprint Music player. Now it's no longer in the way!

I installed S2P (Slide to Play) which is a nice media player and it seems to be responding to AVRCP without too many problems (It seems to start WMP in the background). Sometimes however the AVRCP gets confused and drives WMP instead of S2P.

Haven't tried this with Pocket Player or Pocket Music however the trick seems to be to get that HTC Audio Manger out of the picture.

Oh and TF3D Config fails to start on the Sprint version of the HTC Touch Diamond but if you remove the Tweaks.xml file that it installs it will at least come up and allow you to disable/enable tabs.
[Touch Diamond, MDA Compact IV General] DazColl:
S2P solution doesn't work on Touch HD

Just tried the solution posted by defaria on my Touch HD, but this doesn't work (however, I do like the look of S2P - very influenced by a similar fruit themed app! ;))

With Audio Manager disabled, but still using TouchFlo, WMP intercepts the AVRCP commands, but with a very long delay (20 seconds +).

With TouchFlo disabled WMP pops up straight away when it detects any AVRCP commands.

Both WMP and S2P will play music (2 different instances of WMP?)

Lets hope Conduit (PocketPlayer) comes up with a solution that could be used for all 3rd party players...
[Touch Diamond, MDA Compact IV General] Arktronic:
I've asked HTC to look into this.
[Touch Diamond, MDA Compact IV General] igorstef:
Any news on this one.

When I bought stereo bluetooth set my goal was to be able to listen music

receive calls and start and stop song over AVRCP.

I was willing to make peace with Touch Flo player interface but AUDIO BOOSTER

doesn't work with wireless headset. So I ended up trying to use SRS WOW HD

but this app has problem with reverting back to internal (stereo) settings every

time you receive call effectively making it unusable for me.

So my only hope is if somebody find solution for 3rd party players (SP2 works

for me but doesn't have equalizer) or HTC decide to share some light on this.
[Touch Diamond, MDA Compact IV General] lmv7777:
i have a feeling this whole problem is related to the AVRCP_MPplugin.dll file. microsoft has gone to ridiculous lengths to make sure that this file and several others cannot be moved, copied anything. i was trying to move it to my computer and no luck at all. tried to copy it to another destination and try again... no luck. is there anyplace to find this file before the rom is cooked and modify it? or at least take a look at the guts?
[Touch Diamond, MDA Compact IV General] defaria:
How do you figure really? From what I can tell this is merely a file that is in the ROM. ROM, being read only memory cannot be moved, well, because it's read only! How is that Microsoft plotting anything? It's simply a hardware limitation. Deal with it!
[Touch Diamond, MDA Compact IV General] lmv7777:
not moved, copied. i tried to copy the file.

but back to the issue at hand. does anyone know of a way to get the file out or at least take a look at it under a microscope.
[Touch Diamond, MDA Compact IV General] Arktronic:
You'll probably be able to find this DLL in a Diamond kitchen. And FYI, while files in ROM cannot be overwritten, they can be "shadowed", which effectively does the same thing - you can copy a file that has the same name as a ROM file into \Windows and that file will be used. You can do this with Total Commander.
[Touch Diamond, MDA Compact IV General] defaria:
Interesting...
[Touch Diamond, MDA Compact IV General] lbhocky19:
wow i just got a s9hd yesterday im amazed no one has figured out how to make the controls work yet after the diamond and pro have been out so long

or does anyone know of any equalizers that will work over bluetooth? thats the only reason i want to use coreplayer over tf3d anyway
[Touch Diamond, MDA Compact IV General] lmv7777:
i searched the kitchen but i cant find this .dll file. any idea of where it might be so we can take a look at it? and please start another thread about equalizer over BT, lest ye hijack this thread.
[Touch Diamond, MDA Compact IV General] Noonski:
Yes the Audio Drivers are pretty weird in the Diamond.

But the SRS Wow dll only replaces a few and there's one more audio part that SRS isn't replacing by Default.

Just take a look at

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WaveDev\]

&

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SpeakerPhone]

Now the SRS cab i use (and most others) isn't set to replace the latter. Only the Wavedev.

So here's the test.

Take note of the values under the Wavedev registry setting install SRS WOW.

Then look at the registry again.

Then put the same values you find changed under wavedev in Speakerphone.

Restart the device after 10 seconds and see if anything has changed with Incoming calls killing sound altogether.

If the issue doesn't happen anymore, the theory could then be that when you get a call it will switch to the Speakerphone driver, which will then not be the same as the driver handling the sound at that moment and killing it.

This is all theory. I didn't test this as i was having other Audio issues to fix.

But be my geust and if it doesn't work, well wel can then rule out that it's the reference to wavedev under speakerhone.

And if it works someone can change the Cab for SRS to reflect the finding.

PS there are instances in WINCE where a file can not be copied (Not Cut) from ROM to storage, but haven't seen this happen in Windows mobile that often.

If you check the attched file that was mentioned with an HEXeditor.

It may not make any sense, but You will find this:

"Windows Media Player Plugin - Controlled by AVRCP"

in the file.

That should say a little something of what the file is meant for.

Now as you stated you weren't using WMP but HTC Audiomanager.

So you can exclude this DLL of being the culprit.

In the end al this does not solve why AVCRP is not working with these other apps.

And that's what this thread is about.

But i don't think it's the MS AVCRP plugin for WMP that is breaking this behaviour.

What did change was the new Bleutooth settings which in newer roms have a visibility time out that did not exist before.

Port these to a Kaiser where it did work and another part can be excluded (or not).

My Money is on HTC's part in the OEM part not MS for causing this.

Oh and one more thing, People (deFaria), no need to get personal, If you want to show of your superiority by telling some one to "deal with it".

I suggest you take it to doctor phill's forum and not let it out here.
[Touch Diamond, MDA Compact IV General] Arktronic:
I just zeroed the DLL on my Raphael, and that did nothing. The file does show up as 0-byte, but the AVRCP behavior remains exactly the same as before. When TF3D is on, the Music tab takes over. When it's off, WMPlayer responds. So either WinMo is simply ignoring the 0-byte version of the file and getting it from the ROM (which seems unlikely) or it's completely unused now. That would explain why all the apps that used to rely on this DLL no longer get the messages. Also, as Noonski mentioned, the BT stack seems different from older versions. Not only is there a new visibility timeout, but there is also a Profile page that lists all the profiles supported by the stack. AVRCP is one of those profiles.
[Touch Diamond, MDA Compact IV General] lmv7777:
you guys seem to be absolutely right. seems older devices like the titan and touch when updated to the newest CE OS are beginning to have the same problem with the blue tooth controls. im trying right now to narrow down which build the change was created so we can make this right. i dont hate WMP but it definatly doesn't play shoutcast, or youtube, or divx movies, etc etc. you get the idea lol
[Touch Diamond, MDA Compact IV General] defaria:
I see, so the other guy can throw out wild accusations about MS conspiracies to stop him from moving a file from read only memory, but if I point out the fact that it's read only and suggest he learn to deal with the real world I'm the person trying to assert my superiority??? I guess I shouldn't mention anything that others might not agree with 100%...

No thanks. I wouldn't be caught dead in there...
[Touch Diamond, MDA Compact IV General] ramontrotman:
Noonski and defaria....both of you knock it off. i don't expect to hear or read anything more about you two going at it.

have a good day.
[Touch Diamond, MDA Compact IV General] Robrecht:
http://xdaforums.com/showthread.php?t=454646
[Touch Diamond, MDA Compact IV General] Arktronic:
I wonder if Conduits would like to shed some light on how they did that to the community, although it seems unlikely since their paid player now has a competitive advantage over the rest...
[Touch Diamond, MDA Compact IV General] lmv7777:
it appears they are using the TF3D widget for music to make this work. when you deactivate TF3D it still does the same thing
[Touch Diamond, MDA Compact IV General] comc:
Problems now fixed!

Conduits have just released Pocket Player v3.71 which includes a "AVRCP TouchFlo3D Helper Plugin" and I have tested this new version on my HTC Diamond and yeeeeehaaaa I can now advance/retard/pause/play on the pocket player using my bluetooth controls.

Big thanks to the guys at Conduits for helping with our plight.
[Touch Diamond, MDA Compact IV General] nthdgreee:
Try deactivating TF3D and see if you can still control Pocket Player via your bluetooth controls. I don't use TF3D on my "Fuze" ( I don't have a Diamond but it's the same problem). Anyway, when I run Pocket Player without the HTC TF3D shell running I still cannot control Pocket Player. Any Bluetooth button presses continue to bring up Windows Media Player just like it did in 3.7
[Touch Diamond, MDA Compact IV General] chvcky:
AVRCP

Problems now fixed!

Conduits have just released Pocket Player v3.71 which includes a "AVRCP TouchFlo3D Helper Plugin" and I have tested this new version on my HTC Diamond and yeeeeehaaaa I can now advance/retard/pause/play on the pocket player using my bluetooth controls.

Big thanks to the guys at Conduits for helping with our plight.

How does this work in practice ?
[Touch Diamond, MDA Compact IV General] nthdgreee:
Conduit has also provided a fix for those who do not use TF3D. As stated here Conduit acknowledges that when TF3D is disabled their fix no longer works. However just follow the instructions in the link and you'll be able to use your AVRCP controls regardless of whether or not your using TF3D. Great Service Conduit!
[Touch Diamond, MDA Compact IV General] neuro159:
Pocket Player 3.71 DID IT

Pocket Player 3.71 For Windows Mobile Has Been Released!

...

AVRCP SUPPORT FOR HTC TOUCH DIAMOND/PRO

Previously, Pocket Player was unable to utilize Bluetooth headphone remote controls (AVRCP) when running on the HTC Touch Pro or Diamond devices (also available as the AT&T Fuze). The TouchFLO 3D software would intercept the button commands. Pocket Player 3.71 resolves this issue, and enables AVRCP commands to be processed.

...
[Touch Diamond, MDA Compact IV General] neuro159:
Details

A special note about HTC AVRCP support..

Pocket Player 3.71 comes with "out-of-the-box" support for AVRCP on devices running TouchFLO 3D. We had to use some undocumented tricks to get this to work.

If you have disabled TouchFLO 3D, strangely enough our workarounds cease to work (the system winds up launching WMP) without an additional step. You will need to install the gen_wmhost plugin (from our plugins page). Then select Menu > More > Options > Plugins > WM Adapter > Configure, and check the "HTC WMP Control Plug-in" in the selection tree there. You won't need to check the "Windows Media Player Mobile A2DP Plugin" since Pocket Player has built-in support for it.

After doing so, select OK and restart Pocket Player. You may need to close Windows Media Player as well. After performing these steps, Pocket Player will receive the AVRCP commands.

Users discussing exact options to make it work in Conduits forum http://www.conduits.com/community/forum_posts.asp?TID=1400&PN=1
[Touch Diamond, MDA Compact IV General] mahesham22:
Pocket player always rocks. they have come up with good solution..

thanks
[Touch Diamond, MDA Compact IV General] Sleuth255:
Coreplayer is working too. Here's how to set it up:

Go to menu->tools->Preferences->WMP UI Plugins.

Now check HTC WMP Control Plug-in and also Windows Media Player Mobile A2DP Plugin and choose OK.

Now exit the player with menu->exit

Reset your device

Good to go

Tested on Fuze using latest Coreplayer v1.3 with HP headphones. I'll try my Nokias when I get home. YMMV on the Diamond but I don't see why it won't work here too.

Edit:

Bad news after further testing: My Nokia HS12-W is still hardcoded to WMP. Very strange... I have a HP iPAQ headset that works great and a Nokia that's not working..
[Touch Diamond, MDA Compact IV General] Arktronic:
I can't duplicate your results. I'm running Da_G's latest clean ROM with TF3D and, following your instructions, nothing changes. TF3D still responds when it's on, and WMPlayer starts when TF3D is off. And yes, I did soft-reset ;)

Pocket Player won't respond either, so I'm not quite sure what's causing this.
[Touch Diamond, MDA Compact IV General] Sleuth255:
The plot thickens: My Nokia headset remains hardcoded to WMP as well! So I have a HP headset that works w/o issues and a Nokia that doesn't. Maybe it has something to do with when I paired it up. I'm gonna try re-pairing the Nokias...

edit: nope, no difference. My HS-12W must use a different profile than the HP headset. Its the only thing I can think of that could cause this.
[Touch Diamond, MDA Compact IV General] Arktronic:
That's just weird! They should both be using AVRCP for media control; what other profile is there for that purpose? For phone purposes it could be Headset or Handsfree - those are different. I suppose it could be that depending on what phone-related profiles are available or connected, AVRCP could behave differently, but that would make very little sense.

For me, neither the Sony MEX-BT2500 nor the el cheapo Kyocera headphones I got off Woot works. I'm currently charging my Moto HT820, so we'll see what happens with that. I'm fairly sure the Kyocera headphones use Headset and I would guess that the Sony does as well. The Moto headphones are comparatively high-end I think, so they might use the Handsfree profile.

<offtopic>And I almost lost this post due to another HTTP 500. What is going on with the xda-dev servers?</offtopic>

EDIT: And that's a failure. I can't find my code to enumerate supported profiles at the moment, so I can't prove or disprove the profile hypothesis. This is annoying.
[Touch Diamond, MDA Compact IV General] Sleuth255:
The affected profile should be AVRCP. The only thing I can think of atm is the fact that the HP iPAQ headset is A2DP/AVRCP only. It has no handsfree/headset profile so can't take over when a phonecall comes in. However, turning off the HS12-W handsfree support made no diff. Also, it is a very old headset. Maybe there's a list of supported devices embedded in WMP (that's a stretch though) :confused:
[Touch Diamond, MDA Compact IV General] Sleuth255:
I'm guessing that avrcp_MPplugin.dll remains for older headset support and can be taken over as before by other players. However, most newer headsets can also use a different technique to perform RC functions which the updated bluetooth stack understands and routes differently.
[Touch Diamond, MDA Compact IV General] Arktronic:
It looks like the registry has all the info on supported profiles. It's in HKLM\Software\Microsoft\Bluetooth\Device\[YourDeviceMAC]\Services. For me, they all support A2DP (0000110b-...), while the Kyocera supports Headset (00001108), and the other two support Handsfree (0000111e). I'd assume your HP supports A2DP.

To test your theory regarding avrcp_MPplugin.dll, you could shadow it with a zero-byte file and see if there is any difference with your HP headset. As I said earlier in the thread, it made no difference with my devices when I tried it, but it might be different in your case.

EDIT: Erm, now that I bothered to read what I wrote, that test makes no sense. Obviously the DLL is being used. The question is, what's different about your HP headset?