Преглед изворни кода

Merge branch 'bugfix/btdm_a2dp_disc_rsn_error_when_as_master' into 'master'

component/bt: Fix bug: a2dp disc_rsn error when as master

See merge request idf/esp-idf!1995
Jiang Jiang Jian пре 7 година
родитељ
комит
dc66940f82

+ 3 - 0
components/bt/bluedroid/bta/av/bta_av_aact.c

@@ -514,6 +514,9 @@ static void bta_av_proc_stream_evt(UINT8 handle, BD_ADDR bd_addr, UINT8 event, t
             p_msg->disc_rsn = p_data->hdr.err_param;
             break;
             */
+            case AVDT_DISCONNECT_IND_EVT:
+                p_msg->hdr.offset = p_data->hdr.err_param;
+                break;
             default:
                 break;
             }

+ 3 - 2
components/bt/bluedroid/bta/av/bta_av_main.c

@@ -1239,9 +1239,10 @@ BOOLEAN bta_av_hdl_event(BT_HDR *p_msg)
         bta_av_sm_execute(&bta_av_cb, p_msg->event, (tBTA_AV_DATA *) p_msg);
     } else {
         APPL_TRACE_VERBOSE("handle=0x%x\n", p_msg->layer_specific);
+        tBTA_AV_SCB *p_scb = bta_av_hndl_to_scb(p_msg->layer_specific);
+        p_scb->disc_rsn = p_msg->offset;
         /* stream state machine events */
-        bta_av_ssm_execute( bta_av_hndl_to_scb(p_msg->layer_specific),
-                            p_msg->event, (tBTA_AV_DATA *) p_msg);
+        bta_av_ssm_execute(p_scb, p_msg->event, (tBTA_AV_DATA *) p_msg);
     }
     return TRUE;
 }