Private 내에 Bluetooth 코드가 상당히 많이 바뀐듯 하다.
기존에 없었던 A2DP, AVRCP, AVCTP, AVDTP 등의 소스가 새로 추가되어 있다.
(해당 업데이트 부분에 문제가 있어서 릴리즈 커널에는 그동안 적용하지 않고 있다.)

- 해당 업데이트 명세 -

QFE업데이트를 한다음 필요한 헤더만 뽑아서 쓰는게 원래 목표..

Private 코드는 완전하지 않을수 있다는 경고를 깜빡하고 QFE업데이트 이후에
Private을 Build 해버린 결과는 아래와 같다..

BUILD: [01:0000000340:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1003) : error C2065: 'BTH_STATE_HCI_INQUIRY_RESULT' : undeclared identifier
BUILD: [01:0000000341:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1003) : error C3861: 'btutil_IteratePeerInfo': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000342:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1006) : error C3861: 'BTH_STATE_HCI_INQUIRY_RESULT': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000343:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1695) : error C3861: 'BTH_STATE_HCI_INQUIRY_RESULT': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000344:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1820) : error C2065: 'HCI_Accept_Synchronous_Connection_Request' : undeclared identifier
BUILD: [01:0000000345:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1821) : error C2065: 'HCI_Reject_Synchronous_Connection_Request' : undeclared identifier
BUILD: [01:0000000346:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1825) : error C2065: 'HCI_Setup_Synchronous_Connection' : undeclared identifier
BUILD: [01:0000000347:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1874) : error C2065: 'HCI_SynchronousConnectionCompleteEvent' : undeclared identifier
BUILD: [01:0000000348:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1874) : error C2146: syntax error : missing ';' before identifier 'pCallback'
BUILD: [01:0000000349:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1874) : error C2065: 'pCallback' : undeclared identifier
BUILD: [01:0000000350:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1874) : error C2039: 'hci_SynchronousConnectionCompleteEvent' : is not a member of '_HCI_EVENT_INDICATION'
BUILD: [01:0000000352:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1876) : error C3861: 'pCallback': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000353:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1888) : error C3861: 'pCallback': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000354:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1918) : error C3861: 'HCI_Setup_Synchronous_Connection': identifier not found, even with argument-dependent lookup
BUILD: [01:0000000355:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1945) : error C2065: 'BTH_LINK_TYPE_ESCO' : undeclared identifier
BUILD: [01:0000000356:ERRORE] d:\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\HCI\BASE\hci.cxx(1945) : fatal error C1903: unable to recover from previous error(s); stopping compilation

에러 한무더기 출력. (필요한 헤더가 몇개 없다.)

Windows CE 5.0 에  Bluetooth A2DP를 적용하고자 한다면...
1. Broadcom 칩셋 + Broadcom 제공 솔루션 사용
2. Bluesoleil for WinCE 사용
3. Kowin 솔루션 사용
4. CSR 칩셋 + WPP 사용

위의 경우에서 선택해야 함.
WinCE 5.0의 MS Bluetooth Stack으로는 SPP, OBEX, HFP 정도가 고작이다. 

핸즈프리 구현의 경우 별도의 하울링 제거용 솔루션도 사용해야
송화음이 수화음에 섞이지 않는다.

* 8월 QFE는 이후 것은 적용하지 말고, 이전 private 코드를 사용하자,
Build 시에 ndislink.h 가 없다고 나오는 에러는 다음의

ndislink.h


파일을  \WINCE500\PRIVATE\WINCEOS\COMM\INC에
넣어주면 무리없이 Build 된다.

BUILD: [00:0000000897:PROGC ] Compiling
\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH
\TDI\ directory.
BUILD: [01:0000000906:PROGC ] Compiling .\tdi.cxx
BUILD: [01:0000000909:ERRORE]
\WINCE500\PRIVATE\WINCEOS\COMM\BLUETOOTH\TDI\tdi
.cxx(55) : fatal error C1083: Cannot open include file: 'ndislink.h': No
such fi
le or directory
BUILD: [01:0000000910:PROGC ] Linking
\WINCE500\public\COMMON\oak\lib\ARMV4I\r
etail\bttdi.lib
BUILD: [01:0000000912:ERRORE] LINK : fatal error LNK1181: cannot open input
file
'obj\ARMV4I\retail\tdi.obj'

+ Recent posts