Difference between revisions of "New Bluetooth"

From WebOS Internals
Jump to navigation Jump to search
 
Line 566: Line 566:
 
[HFG]: HandleVolumeChange: volume 51
 
[HFG]: HandleVolumeChange: volume 51
 
[HFG]: BtHfgConnectingIndHandler
 
[HFG]: BtHfgConnectingIndHandler
[HFG]:  Connected to 00:19:7f:50:3f:15
+
[HFG]:  Connected to AA:BB:CC:DD:EE:FF
 
[HFG]: Passing Noise Reduction to telephony: {"carkit":false,"echocancellation":true}
 
[HFG]: Passing Noise Reduction to telephony: {"carkit":false,"echocancellation":true}
 
[HFG]: Indicator Service: 0x1
 
[HFG]: Indicator Service: 0x1

Latest revision as of 03:22, 5 September 2009

{{#icon:Peter_Grenade.png|Thinking Page|140}}
Thinking Page
This page is a work in progress and information could change without warning.

We're working on replacing the proprietary Palm bluetooth engine, etc. with BlueZ. Here is where you will find the progress. It is likely to be just scribble for a few weeks.

1. mv /usr/bin/PmBtStart /usr/bin/PmBtStart.old
2. ps aux | grep PmBt
3. kill -9 <PmBtStack PID>
4. The bluetooth stack and engine should be stopped, soon.

Palm modifications to pulseaudio to remove BlueZ support (not all listed yet):

<source lang="text"> -#### BlueZ support (optional) #### - -# Check whether --enable-bluez was given. -if test "${enable_bluez+set}" = set; then - enableval=$enable_bluez; - case "${enableval}" in - yes) bluez=yes ;; - no) bluez=no ;; - *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-bluez" >&5 -$as_echo "$as_me: error: bad value ${enableval} for --disable-bluez" >&2;} - { (exit 1); exit 1; }; } ;; - esac - -else - bluez=auto -fi - -if test "x${bluez}" != xno ; then - -pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for BLUEZ" >&5 -$as_echo_n "checking for BLUEZ... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$BLUEZ_CFLAGS"; then - pkg_cv_BLUEZ_CFLAGS="$BLUEZ_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" bluez >= 3.0 \"") >&5 - ($PKG_CONFIG --exists --print-errors " bluez >= 3.0 ") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_BLUEZ_CFLAGS=`$PKG_CONFIG --cflags " bluez >= 3.0 " 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$BLUEZ_LIBS"; then - pkg_cv_BLUEZ_LIBS="$BLUEZ_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" bluez >= 3.0 \"") >&5 - ($PKG_CONFIG --exists --print-errors " bluez >= 3.0 ") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_BLUEZ_LIBS=`$PKG_CONFIG --libs " bluez >= 3.0 " 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - BLUEZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " bluez >= 3.0 "` - else - BLUEZ_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " bluez >= 3.0 "` - fi - # Put the nasty error message in config.log where it belongs - echo "$BLUEZ_PKG_ERRORS" >&5 - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_BLUEZ=0 - if test "x$bluez" = xyes ; then - { { $as_echo "$as_me:$LINENO: error: *** BLUEZ support not found" >&5 -$as_echo "$as_me: error: *** BLUEZ support not found" >&2;} - { (exit 1); exit 1; }; } - fi - -elif test $pkg_failed = untried; then - - HAVE_BLUEZ=0 - if test "x$bluez" = xyes ; then - { { $as_echo "$as_me:$LINENO: error: *** BLUEZ support not found" >&5 -$as_echo "$as_me: error: *** BLUEZ support not found" >&2;} - { (exit 1); exit 1; }; } - fi - -else - BLUEZ_CFLAGS=$pkg_cv_BLUEZ_CFLAGS - BLUEZ_LIBS=$pkg_cv_BLUEZ_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_BLUEZ=1 -fi -else - HAVE_BLUEZ=0 -fi - - - - - if test "x$HAVE_BLUEZ" = x1; then - HAVE_BLUEZ_TRUE= - HAVE_BLUEZ_FALSE='#' -else - HAVE_BLUEZ_TRUE='#' - HAVE_BLUEZ_FALSE= -fi </source>

Not that it's anything to do with BlueZ... This is what happens when PmBtEngine is started with the flag "-t" (Start with test functions enabled)

<source lang="text"> root@castle:/usr/bin# ./PmBtEngine -t Starting PmBtEngine daemon... (process:3626): Powerd-DEBUG: IdlerShm already exists... reusing

    • (process:3626): DEBUG: _powerd_server_up connected was true (powerd is already running)

Initializing BtEngine components [PWR]: Initializing Power [ MEM ] Initializing [ MEM ] Initializing - list 0x40099dd0 [ MEM ] Starting [CFG]: BtConfigInit: Initializing BT configuration module [Core]: In PmBtEngineEventHandlerInitialize [Core]: BtEngineEventHandler created successfully [BSF]: calling init_pmalloc

          • ERROR: PmBtOsLogInit: Logs are already initialized

[BSF]: calling init_sched [BSF]: calling init_bchs_msg_converter [BSF]: calling SPP_init_converter [BSF]: calling HFG_init_converter [BSF]: calling BSL_init_converter [BSF]: calling SC_init_converter [BSF]: calling CM_init_converter [BSF]: calling SD_init_converter [BSF]: calling AV_init_converter [BSF]: calling AVRCP_init_converter [BSF]: calling PAS_init_converter [BSF]: calling OPC_init_converter [BSF]: calling peer_register_converter [BSF]: calling peer_com_init sched: external send registered peer_com: connection to server established... peer_com: performing peer_com version 2 handshake... peer_com: server has replied to handshake, code 0x0001... [BSF]: SchedulerThreadFn: Sched started: CSR 16.3.9 [BSF]: Bluetooth--> init_test [BSF]: init_test: Signalling sched [BSF]: Bluetooth <== init_test [Core]: Find profile - unable to find profile 0xff02 [Core]: Successfully registered profile -- GAP [TM]: TmProfMgrRegisterInit:Tm Profile registration status 0x0 [Core]: Find profile - unable to find profile 0xff04 [Core]: Successfully registered profile -- BT Co-Existance Profile [COEX]: CoExProfMgrRegisterInit:CoEx Profile registration status 0x0 [COEX]: CoExProfMgrRegisterInit:CoEx Profile Set IPC Registration func, err= 0x0 [Core]: Find profile - unable to find profile 0x111f [Core]: Successfully registered profile -- hfp/hsp [HFG]: BtHfgProfMgrRegisterInit:HFG Profile registration status 0x0 [HFG]: BtHfgProfMgrRegisterInit:HFG Profile Set IPC Registration func, err= 0x0 [Core]: Find profile - unable to find profile 0x110d [Core]: Successfully registered profile -- a2dp [Core]: Find profile - unable to find profile 0x112f [Core]: Successfully registered profile -- pbap [Core]: Find profile - unable to find profile 0x1115 [Core]: Successfully registered profile -- pan [Core]: Find profile - unable to find profile 0x110e [Core]: Successfully registered profile -- avrcp [Core]: Find profile - unable to find profile 0xf001 [Core]: Successfully registered profile -- BT Test Mode [TM]: TmProfMgrRegisterInit:Tm Profile registration status 0x0 [Core]: Find profile - unable to find profile 0x1105 [Core]: Successfully registered profile -- opp [Core]: BtProfMgrStartupProfiles: Entered [Core]: Initializing profile GAP [Core]: Initializing profile BT Co-Existance Profile [Core]: Initializing profile hfp/hsp [BSF]: SC_SET_SECURITY_MODE_CFM: Status = 0x0 [Core]: Initializing profile a2dp [Core]: Initializing profile pbap [Core]: Initializing profile pan [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0x10

          • ERROR:[IPC]: PmBtMsgLunaSendNotification: Cannot find Category for given profile uuid=0xff03

[PAN]: PanActivate: Entered [Core]: Initializing profile avrcp [Core]: Initializing profile BT Test Mode [Core]: Initializing profile opp [OPP]: PmBtBsaifHandleOppPrim: Security mode successfully set [Core]: BtProfMgr: unhandled event Profile = avrcp event = 0x10

          • ERROR:[IPC]: PmBtMsgLunaSendNotification: Cannot find Category for given profile uuid=0xff03

[HFG]: Battery Level Change 5 [BSF]: ####### default in CmPrim handler 0x8035, [COEX]: CoExIpcInit: Initializing [HFG] PmBtMsgHfgInit: Initializing [Core]: BtProfMgr: unhandled event Profile = pan event = 0x10

          • ERROR:[IPC]: PmBtMsgLunaSendNotification: Cannot find Category for given profile uuid=0xff03

[PAN]: PanStatusHandler: PAN activated [A2DP]: PmBtMsgA2dpInit: Initializing [AVRCP]: PmBtMsgAvrcpInit: Initializing [OPP]: PmBtMsgOppInit: Initializing [COEX] PmBtWifiStatusNotification: 1 [HFG] PmBtTelephonySrvCallback: 1 [HFG] Querying for current calls [HFG] PmBtAudioSrvCallback: 1 [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"requested","scenario":"phone_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":true,"subscribed":true} [HFG]: PmBtVoiceStatusNotification: {"returnValue":true,"action":"requested","scenario":"voice_dialing_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":true,"subscribed":true} [HFG]: PmBtCallStatusNotification: {"returnValue":true,"errorText":"","errorCode":0} [HFG]: PmBtPowerStatusNotification: Failed to find string response [HFG]: Operator is Sprint [PHONEBOOK]: PmBtContactsStatusCallback: 0 [HFG]: PbMonitor Started [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"requested","scenario":"media_back_speaker","volume":50,"active":true,"ringer switch":true,"muted":false,"slider":true,"subscribed":true} [COEX] WifiDisabled [HFG]: PmBtCallStatusNotification: {"returnValue":true,"errorText":"","errorCode":0} [HFG]: PmBtPowerStatusNotification: Failed to find string response [HFG] QueryPlatformCallback: {"returnValue":true,"extended":{"meid":"HI,THERE","platformType":"cdma"}} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"requested","scenario":"phone_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":true,"subscribed":true} [HFG]: PmBtVoiceStatusNotification: {"returnValue":true,"action":"requested","scenario":"voice_dialing_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":true,"subscribed":true}

    • (process:3626): DEBUG: Registered object path: Client com.palm.netcfg /com/palm/netcfg

[HFG] PhoneNumberCallback: {"returnValue":true,"errorCode":0,"extended":{"number":"1112223456"},"subscribed":false} [HFG] IMSICallback: {"returnValue":false,"errorText":"Carrier network returned failure","errorCode":102} [HFG] QueryPlatformCallback: {"returnValue":true,"extended":{"meid":"HI,THERE","platformType":"cdma"}} [HFG] PhoneNumberCallback: {"returnValue":true,"errorCode":0,"extended":{"number":"1112223456"},"subscribed":false} [HFG] IMSICallback: {"returnValue":false,"errorText":"Carrier network returned failure","errorCode":102} [HFG]:GetCurrentNetType - failed to find type [HFG]: SendSignalStrength - couldn't find network type [COEX]: CoExEventHandler [COEX]: Enabling all BT channels for use [BSF]: Setting afh channel map [HFG]:GetCurrentNetType - failed to find type [HFG]: SendSignalStrength - couldn't find network type [HFG]:GetCurrentNetType - failed to find type [HFG]: SendSignalStrength - couldn't find network type [HFG]: Network Status Indication: [HFG]: Network Name: Sprint [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0 [HFG]:GetCurrentNetType - failed to find type [HFG]: SendSignalStrength - couldn't find network type [HFG]: IMSI Setting [HFG]: Data Status Indication: [HFG]: Command assigning subscriber info: 1112223456 129 [BSF]:CM_SET_AFH_CHANNEL_CLASS_CFM [HFG]: IMSI Setting [HFG]: Data Status Indication: [HFG]: HFG already activated [HFG]: Command assigning subscriber info: 1112223456 129 [HFG]: PbMonitor Ended [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [Core]: BtProfMgrCallAllProfEventHandlers: Entered

          • ERROR:[GAP]: Gap Event 0x3 Not Found

[COEX]: CoExEventHandler [Core]: BtProfMgr: profile a2dp associate req [CFG]: BtConfigFindProfile: found profile 0x110d [Core]: BtProfMgr: profile a2dp Connect req [Core]: BtProfMgr: profile hfp/hsp associate req [HFG]: HfgAssociate [CFG]: BtConfigFindProfile: found profile 0x111f [Core]: BtProfMgr: profile hfp/hsp Connect req [HFG]: HfgConnect [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xb [Core]: BtProfMgr: profile a2dp Connecting [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xb [Core]: BtProfMgr: profile hfp/hsp Connecting [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xa [Core]: BtProfMgr: profile a2dp Connected, error=0x11b [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xa [Core]: BtProfMgr: profile a2dp Connected, error=0x0 [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"enabled","scenario":"media_a2dp"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"media_a2dp","volume":89,"active":true,"ringer switch":true,"muted":false,"slider":true} [AVRCP]: *** AVRCP_CONNECT_IND: **** , conn id=0 [Core]: BtProfMgr: unhandled event Profile = avrcp event = 0xa [Core]: BtProfMgr: profile avrcp Connected, error=0x0 [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [A2DP]: Received Media Play Event in invalid state, 8 [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"maxVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":89,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":78,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":67,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":56,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":45,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":34,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":23,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":12,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"minVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"minVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":11,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":22,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":33,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":44,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":55,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":66,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":77,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":88,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"maxVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":89,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":78,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":67,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":56,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":45,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":34,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":23,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":12,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"minVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":0,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"minVolume"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":11,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":22,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":33,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":44,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":55,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":66,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":77,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":88,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["volume"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["event"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":true,"event":"maxVolume"} [HFG]: Operator is Sprint [HFG]: Network Status Indication: [HFG]: Network Name: Sprint [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0 [HFG]: Operator is Sprint [HFG]: Network Status Indication: [HFG]: Network Name: Sprint [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0 [HFG]: Operator is Sprint [HFG]: Network Status Indication: [HFG]: Network Name: Sprint [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0 [HFG]: Operator is Sprint [HFG]: Network Status Indication: [HFG]: Network Name: Sprint [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0

</source>

This is what happens when PmBtEngine is started:

<source lang="text">

[SIG]: Received SIGINT, Stopping BT Engine [SIG]: Received Signal to stop, Stopping BT Engine Tearing down components [Core]: Shutting down profile GAP [Core]: Shutting down profile BT Co-Existance Profile [Core]: Shutting down profile hfp/hsp [HFG]: HfgDisconnect [HFG]: HfgDisconnect [HFG]: Canceling connection request [HFG]: Canceling connection request [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xc [Core]: BtProfMgr: profile hfp/hsp Disconnecting [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xc [Core]: BtProfMgr: profile hfp/hsp Disconnecting

          • ERROR:[HFG]: HfgShutdown: Error in waiting to disconnect Hfg

[HFG]: Waiting for deactivation [HFG]: Deactivated [Core]: Shutting down profile a2dp [A2DP]: Rx Events : 48299 [A2DP]: Rx maxPollCount : 27495 [A2DP]: Rx notStreaming : 1 [A2DP]: Rx pollFailed : 0 [A2DP]: Rx dataOverrun : 0 [A2DP]: Rx shortRead : 0 [A2DP]: Rx readFail : 0 [A2DP]: Rx writeSuccess : 0 [A2DP]: Rx writeFail : 0 [A2DP]: Tx Events : 48299 [A2DP]: Tx dataReady : 48299 [A2DP]: Tx dataNotReady : 0 [A2DP]: Tx dataSent : 48299 [A2DP]: Tx dataNotStreaming : 0 [A2DP]: Tx encodeFail : 0 [A2DP]: Tx pollFailed : 0 [A2DP]: Tx pollSucces : 48299 [A2DP]: Exiting PmBtA2dpEncodeAudio ..... [A2DP]: A2dpShutdown: Waiting to deactivate [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xc [Core]: BtProfMgr: profile a2dp Disconnecting [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xc [Core]: BtProfMgr: profile a2dp Disconnecting [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0x9 [Core]: BtProfMgr: profile a2dp BtProfDisConnected [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0x11 [Core]: BtProfMgr: profile a2dp Deactivated [Core]: Shutting down profile pbap [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0x9 [Core]: BtProfMgr: profile a2dp BtProfDisConnected [AVRCP]: *** AVRCP_DISCONNECT_IND: **** [Core]: BtProfMgr: unhandled event Profile = avrcp event = 0x9 [Core]: BtProfMgr: profile avrcp BtProfDisConnected

          • ERROR:[PBAP]: PbapWaitForDeactivate: Error in waiting to deactivate PBAP

[Core]: Shutting down profile pan [PAN]: PanShutdown: Waiting to deactivate [Core]: BtProfMgr: unhandled event Profile = pan event = 0x11 [Core]: BtProfMgr: profile pan Deactivated [PAN]: PanStatusHandler: PAN deactivated

    • (process:3626): DEBUG: Registered object path: Client com.palm.netcfg /com/palm/netcfg

[Core]: Shutting down profile avrcp [Core]: Shutting down profile BT Test Mode [Core]: Shutting down profile opp [BSF]:sched_task_deinit [BSF]: SchedulerThreadFn: Sched is closed [BSF]: Bluetooth--> deinit_test [BSF]:peer_com_deinit peer_com: rx-thread cancel error [BSF]:deinit_sched [BSF]:deinit_pmalloc

          • ERROR:[STACK]: OUTSTANDING MEMORY ALLOCS IN STACK************
          • ERROR:[STACK]: maxAllocatedMemory=5543 bytes
          • ERROR:[STACK]: maxNumberOfConcurrentAllocations=90
          • ERROR:[STACK]: Memory allocated:
          • ERROR:[STACK]: 00 - (null) : 0 bytes
          • ERROR:[STACK]: 01 - (null) : 0 bytes
          • ERROR:[STACK]: 02 - (null) : 0 bytes
          • ERROR:[STACK]: 03 - (null) : 0 bytes
          • ERROR:[STACK]: 04 - (null) : 0 bytes
          • ERROR:[STACK]: Memory: task id=5, serialize_sd_prim.c, Deserialize_SdUnregisterServiceRecordCfm, 1123, 0xeae80, size=8
          • ERROR:[STACK]: Memory: task id=5, sched/sched.c, do_put_message, 682, 0xe6ee0, size=16
          • ERROR:[STACK]: 05 - (null) : 24 bytes
          • ERROR:[STACK]: 06 - (null) : 0 bytes
          • ERROR:[STACK]: 07 - (null) : 0 bytes
          • ERROR:[STACK]: 08 - (null) : 0 bytes
          • ERROR:[STACK]: 09 - (null) : 0 bytes
          • ERROR:[STACK]: 10 - (null) : 0 bytes
          • ERROR:[STACK]: 11 - (null) : 0 bytes
          • ERROR:[STACK]: 12 - (null) : 0 bytes
          • ERROR:[STACK]: 13 - (null) : 0 bytes
          • ERROR:[STACK]: 14 - (null) : 0 bytes
          • ERROR:[STACK]: 15 - (null) : 0 bytes
          • ERROR:[STACK]: 16 - (null) : 0 bytes
          • ERROR:[STACK]: 17 - (null) : 0 bytes
          • ERROR:[STACK]: 18 - (null) : 0 bytes
          • ERROR:[STACK]: 19 - (null) : 0 bytes
          • ERROR:[STACK]: 20 - (null) : 0 bytes
          • ERROR:[STACK]: 21 - (null) : 0 bytes
          • ERROR:[STACK]: 22 - (null) : 0 bytes
          • ERROR:[STACK]: 23 - (null) : 0 bytes
          • ERROR:[STACK]: 24 - (null) : 0 bytes
          • ERROR:[STACK]: 25 - (null) : 0 bytes
          • ERROR:[STACK]: 26 - (null) : 0 bytes
          • ERROR:[STACK]: 27 - (null) : 0 bytes
          • ERROR:[STACK]: 28 - (null) : 0 bytes
          • ERROR:[STACK]: 29 - (null) : 0 bytes
          • ERROR:[STACK]: 30 - (null) : 0 bytes
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdf400, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdf4f8, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdb980, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdeb10, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdeb20, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdbe98, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdbea8, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdbeb8, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdf4d8, size=12
          • ERROR:[STACK]: Memory: task id=65535, bchs_msg_conv.c, coal_msg_profile_insert, 131, 0xdf4e8, size=12
          • ERROR:[STACK]: ** - ENVIRONMENT : 120 bytes
          • ERROR:*******************************144

</source>

This is what happens when you disable and re-enable a bluetooth headset:

<source lang="text">

[Core]: BtProfMgrGetConnectedDev: GetConnectedDev function not implemented, profile=GAP [Core]: BtProfMgrGetConnectedDev: GetConnectedDev function not implemented, profile=BT Co-Existance Profile [Core]: BtProfMgrGetConnectedDev: GetConnectedDev function not implemented, profile=BT Test Mode [Core]: BtProfMgr: profile hfp/hsp Disconnect req [HFG]: HfgDisconnect [HFG]: Disconnecting HFG [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xc [Core]: BtProfMgr: profile hfp/hsp Disconnecting [Core]: BtProfMgr: profile a2dp Disconnect req [A2DP]: Rx Events : 19377 [A2DP]: Rx maxPollCount : 8 [A2DP]: Rx notStreaming : 1 [A2DP]: Rx pollFailed : 0 [A2DP]: Rx dataOverrun : 0 [A2DP]: Rx shortRead : 0 [A2DP]: Rx readFail : 0 [A2DP]: Rx writeSuccess : 0 [A2DP]: Rx writeFail : 0 [A2DP]: Tx Events : 19377 [A2DP]: Tx dataReady : 19377 [A2DP]: Tx dataNotReady : 0 [A2DP]: Tx dataSent : 19377 [A2DP]: Tx dataNotStreaming : 0 [A2DP]: Tx encodeFail : 0 [A2DP]: Tx pollFailed : 0 [A2DP]: Tx pollSucces : 19377 [A2DP]: Exiting PmBtA2dpEncodeAudio ..... [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xc [Core]: BtProfMgr: profile a2dp Disconnecting [HFG]: HandleHfgPrim: HFG_DISCONNECT_IND set disconnected 0x0 [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0x9 [Core]: BtProfMgr: profile hfp/hsp BtProfDisConnected [HFG]: BtHfgStackDisconnectInd: [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"phone_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":false} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"phone_front_speaker","volume":50,"active":false,"ringer switch":true,"muted":false,"slider":false} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"disabled","scenario":"phone_bluetooth_sco"} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"disabled","scenario":"phone_bluetooth_sco"} [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0x9 [Core]: BtProfMgr: profile a2dp BtProfDisConnected [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"media_back_speaker","volume":50,"active":true,"ringer switch":true,"muted":false,"slider":false} [AVRCP]: *** AVRCP_DISCONNECT_IND: **** [Core]: BtProfMgr: unhandled event Profile = avrcp event = 0x9 [Core]: BtProfMgr: profile avrcp BtProfDisConnected [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"disabled","scenario":"media_a2dp"} [Core]: BtProfMgr: profile hfp/hsp associate req [HFG]: HfgAssociate [CFG]: BtConfigFindProfile: found profile 0x111f [Core]: BtProfMgr: profile hfp/hsp Connect req [HFG]: HfgConnect [Core]: BtProfMgr: profile a2dp associate req [CFG]: BtConfigFindProfile: found profile 0x110d [Core]: BtProfMgr: profile a2dp Connect req [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xb [Core]: BtProfMgr: profile hfp/hsp Connecting [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xb [Core]: BtProfMgr: profile a2dp Connecting [Core]: BtProfMgr: unhandled event Profile = a2dp event = 0xa [Core]: BtProfMgr: profile a2dp Connected, error=0x0 [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"enabled","scenario":"media_a2dp"} [A2DP]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"media_a2dp","volume":100,"active":true,"ringer switch":true,"muted":false,"slider":false} [HFG]: HandleHfgPrim: HFG_SUPPORTED_FEATURES_IND: 0x18 [HFG]: Remote Device Supports - Voice Recognition [HFG]: Remote Device Supports - Remote Volume Control [HFG]: HFG_SERVICE_CONNECT_IND set connected 0x0 [Core]: BtProfMgr: unhandled event Profile = hfp/hsp event = 0xa [Core]: BtProfMgr: profile hfp/hsp Connected, error=0x0 [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"enabled","scenario":"phone_bluetooth_sco"} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"enabled","scenario":"phone_bluetooth_sco"} [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"phone_bluetooth_sco","volume":51,"active":false,"ringer switch":true,"muted":false,"slider":false} [HFG]: HandleVolumeChange: volume 51 [HFG]: PmBtAudioStatusNotification: {"returnValue":true,"action":"changed","changed":["scenario","volume"],"scenario":"phone_bluetooth_sco","volume":51,"active":false,"ringer switch":true,"muted":false,"slider":false} [HFG]: HandleVolumeChange: volume 51 [HFG]: BtHfgConnectingIndHandler [HFG]: Connected to AA:BB:CC:DD:EE:FF [HFG]: Passing Noise Reduction to telephony: {"carkit":false,"echocancellation":true} [HFG]: Indicator Service: 0x1 [HFG]: Indicator Roaming: 0x0 [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [HFG]: ESCO Support enabled [HFG]: BtHfgConnectingIndHandler - no calls [HFG]: Sco routing request [HFG]: push audio to HFG [HFG]: Adjust Speaker Volume Cmd: 8 [HFG]: Setting Speaker Volume: 0x8 [HFG]: Sco routing request [HFG]: push audio to HFG [HFG]: Adjust Speaker Volume Cmd: 8 [HFG]: Setting Speaker Volume: 0x8 [AVRCP]: *** AVRCP_CONNECT_IND: **** , conn id=0 [Core]: BtProfMgr: unhandled event Profile = avrcp event = 0xa [Core]: BtProfMgr: profile avrcp Connected, error=0x0 [Core]: BtProfMgrGetConnState: GetConnState function not implemented, profile=GAP [HFG]: HFG_SPEAKER_GAIN_IND [HFG]: BtHfgStackSpeakerGainIndHandler: 8 [HFG]: passing kBtStackSpeakerGainInd on to Prim [HFG]: HFG_STATUS_IND [HFG]: HFG_STATUS_IND </source>