bluetooth_server: Nuke the weird logging system, just use macros...
... just like everything else on Haiku does. Permanently enabled for the time being. At least I can tell what's going on now.
This commit is contained in:
parent
b83e81795a
commit
5559d51db7
@ -7,7 +7,7 @@
|
||||
|
||||
/* Kit Comunication */
|
||||
|
||||
// LocalDevice
|
||||
// LocalDevice
|
||||
#define BT_MSG_COUNT_LOCAL_DEVICES 'btCd'
|
||||
#define BT_MSG_ACQUIRE_LOCAL_DEVICE 'btAd'
|
||||
#define BT_MSG_HANDLE_SIMPLE_REQUEST 'btsR'
|
||||
@ -22,7 +22,4 @@
|
||||
#define BT_MSG_INQUIRY_ERROR 'IqER'
|
||||
#define BT_MSG_INQUIRY_DEVICE 'IqDE'
|
||||
|
||||
// Server
|
||||
#define BT_MSG_SERVER_SHOW_CONSOLE 'btsc'
|
||||
|
||||
#endif
|
||||
|
@ -30,7 +30,6 @@ static const uint32 kMsgRevert = 'rvrt';
|
||||
|
||||
static const uint32 kMsgStartServices = 'SrSR';
|
||||
static const uint32 kMsgStopServices = 'StST';
|
||||
static const uint32 kMsgShowDebug = 'ShDG';
|
||||
|
||||
LocalDevice* ActiveLocalDevice = NULL;
|
||||
|
||||
@ -59,10 +58,7 @@ BluetoothWindow::BluetoothWindow(BRect frame)
|
||||
new BMessage(kMsgStopServices), 0));
|
||||
menu->AddSeparatorItem();
|
||||
menu->AddItem(new BMenuItem(
|
||||
B_TRANSLATE("Show bluetooth console" B_UTF8_ELLIPSIS),
|
||||
new BMessage(kMsgShowDebug), 0));
|
||||
menu->AddItem(new BMenuItem(
|
||||
B_TRANSLATE("Refresh LocalDevices" B_UTF8_ELLIPSIS),
|
||||
B_TRANSLATE("Refresh local devices" B_UTF8_ELLIPSIS),
|
||||
new BMessage(kMsgRefresh), 0));
|
||||
fMenubar->AddItem(menu);
|
||||
|
||||
@ -134,13 +130,6 @@ BluetoothWindow::MessageReceived(BMessage* message)
|
||||
printf("kMsgStopServices: %s\n", strerror(error));
|
||||
}
|
||||
break;
|
||||
case kMsgShowDebug:
|
||||
if (be_roster->IsRunning(BLUETOOTH_SIGNATURE)) {
|
||||
status_t error = BMessenger(BLUETOOTH_SIGNATURE).SendMessage(
|
||||
BT_MSG_SERVER_SHOW_CONSOLE);
|
||||
printf("kMsgShowDebug: %s\n", strerror(error));
|
||||
}
|
||||
break;
|
||||
|
||||
case kMsgAddToRemoteList:
|
||||
PostMessage(message, fRemoteDevices);
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <Path.h>
|
||||
#include <Roster.h>
|
||||
#include <String.h>
|
||||
#include <Window.h>
|
||||
|
||||
#include <TypeConstants.h>
|
||||
#include <syslog.h>
|
||||
@ -28,7 +29,7 @@
|
||||
#include "BluetoothServer.h"
|
||||
#include "DeskbarReplicant.h"
|
||||
#include "LocalDeviceImpl.h"
|
||||
#include "Output.h"
|
||||
#include "Debug.h"
|
||||
|
||||
|
||||
status_t
|
||||
@ -36,7 +37,7 @@ DispatchEvent(struct hci_event_header* header, int32 code, size_t size)
|
||||
{
|
||||
// we only handle events
|
||||
if (GET_PORTCODE_TYPE(code)!= BT_EVENT) {
|
||||
Output::Instance()->Post("Wrong type frame code", BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: Wrong type frame code\n");
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
@ -45,7 +46,7 @@ DispatchEvent(struct hci_event_header* header, int32 code, size_t size)
|
||||
LocateLocalDeviceImpl(GET_PORTCODE_HID(code));
|
||||
|
||||
if (lDeviceImplementation == NULL) {
|
||||
Output::Instance()->Post("LocalDevice could not be fetched", BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: LocalDevice could not be fetched\n");
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
@ -61,14 +62,6 @@ BluetoothServer::BluetoothServer()
|
||||
fSDPThreadID(-1),
|
||||
fIsShuttingDown(false)
|
||||
{
|
||||
Output::Instance()->Run();
|
||||
Output::Instance()->SetTitle("Bluetooth message gathering");
|
||||
|
||||
Output::Instance()->AddTab("General", BLACKBOARD_GENERAL);
|
||||
Output::Instance()->AddTab("Device Manager", BLACKBOARD_DEVICEMANAGER);
|
||||
Output::Instance()->AddTab("Kit", BLACKBOARD_KIT);
|
||||
Output::Instance()->AddTab("SDP", BLACKBOARD_SDP);
|
||||
|
||||
fDeviceManager = new DeviceManager();
|
||||
fLocalDevicesList.MakeEmpty();
|
||||
|
||||
@ -91,14 +84,11 @@ bool BluetoothServer::QuitRequested(void)
|
||||
|
||||
status_t threadReturnStatus;
|
||||
wait_for_thread(fSDPThreadID, &threadReturnStatus);
|
||||
printf("SDP server thread exited with: %s\n", strerror(threadReturnStatus));
|
||||
|
||||
// Finish quitting
|
||||
Output::Instance()->Lock();
|
||||
Output::Instance()->Quit();
|
||||
TRACE_BT("BluetoothServer server thread exited with: %s\n",
|
||||
strerror(threadReturnStatus));
|
||||
|
||||
delete fEventListener2;
|
||||
printf("Shutting down bluetooth_server.\n");
|
||||
TRACE_BT("Shutting down bluetooth_server.\n");
|
||||
|
||||
return BApplication::QuitRequested();
|
||||
}
|
||||
@ -110,7 +100,6 @@ void BluetoothServer::ArgvReceived(int32 argc, char **argv)
|
||||
if (strcmp(argv[1], "--finish") == 0)
|
||||
PostMessage(B_QUIT_REQUESTED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -122,11 +111,9 @@ void BluetoothServer::ReadyToRun(void)
|
||||
fDeviceManager->StartMonitoringDevice("bluetooth/h5");
|
||||
|
||||
if (fEventListener2->Launch() != B_OK)
|
||||
Output::Instance()->Post("Bluetooth event listener failed\n",
|
||||
BLACKBOARD_GENERAL);
|
||||
TRACE_BT("General: Bluetooth event listener failed\n");
|
||||
else
|
||||
Output::Instance()->Post("Bluetooth event listener Ready\n",
|
||||
BLACKBOARD_GENERAL);
|
||||
TRACE_BT("General: Bluetooth event listener Ready\n");
|
||||
|
||||
_InstallDeskbarIcon();
|
||||
|
||||
@ -137,8 +124,8 @@ void BluetoothServer::ReadyToRun(void)
|
||||
#define _USE_FAKE_SDP_SERVER
|
||||
#ifdef _USE_FAKE_SDP_SERVER
|
||||
if (fSDPThreadID <= 0 || resume_thread(fSDPThreadID) != B_OK) {
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Failed launching the SDP server thread: %x\n", fSDPThreadID);
|
||||
TRACE_BT("BluetoothServer: Failed launching the SDP server thread: %lx\n",
|
||||
fSDPThreadID);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -160,11 +147,9 @@ void BluetoothServer::MessageReceived(BMessage* message)
|
||||
case BT_MSG_ADD_DEVICE:
|
||||
{
|
||||
BString str;
|
||||
|
||||
message->FindString("name", &str);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_GENERAL,
|
||||
"Requested LocalDevice %s\n", str.String());
|
||||
TRACE_BT("BluetoothServer: Requested LocalDevice %s\n", str.String());
|
||||
|
||||
BPath path(str.String());
|
||||
|
||||
@ -174,15 +159,10 @@ void BluetoothServer::MessageReceived(BMessage* message)
|
||||
if (lDeviceImpl->GetID() >= 0) {
|
||||
fLocalDevicesList.AddItem(lDeviceImpl);
|
||||
|
||||
Output::Instance()->AddTab("Local Device",
|
||||
BLACKBOARD_LD(lDeviceImpl->GetID()));
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(lDeviceImpl->GetID()),
|
||||
"LocalDevice %s id=%x added\n", str.String(),
|
||||
TRACE_BT("LocalDevice %s id=%lx added\n", str.String(),
|
||||
lDeviceImpl->GetID());
|
||||
|
||||
} else {
|
||||
Output::Instance()->Post("Adding LocalDevice hci id invalid\n",
|
||||
BLACKBOARD_GENERAL);
|
||||
TRACE_BT("BluetoothServer: Adding LocalDevice hci id invalid\n");
|
||||
}
|
||||
|
||||
status = B_WOULD_BLOCK;
|
||||
@ -231,10 +211,6 @@ void BluetoothServer::MessageReceived(BMessage* message)
|
||||
return;
|
||||
}
|
||||
|
||||
case BT_MSG_SERVER_SHOW_CONSOLE:
|
||||
ShowWindow(Output::Instance());
|
||||
break;
|
||||
|
||||
default:
|
||||
BApplication::MessageReceived(message);
|
||||
break;
|
||||
@ -299,7 +275,7 @@ BluetoothServer::LocateLocalDeviceImpl(hci_id hid)
|
||||
status_t
|
||||
BluetoothServer::HandleLocalDevicesCount(BMessage* message, BMessage* reply)
|
||||
{
|
||||
Output::Instance()->Post("Count Requested\n", BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: count requested\n");
|
||||
|
||||
return reply->AddInt32("count", fLocalDevicesList.CountItems());
|
||||
}
|
||||
@ -315,16 +291,14 @@ BluetoothServer::HandleAcquireLocalDevice(BMessage* message, BMessage* reply)
|
||||
static int32 lastIndex = 0;
|
||||
|
||||
if (message->FindInt32("hci_id", &hid) == B_OK) {
|
||||
Output::Instance()->Post("GetLocalDevice requested with id\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: GetLocalDevice requested with id\n");
|
||||
lDeviceImpl = LocateDelegateFromMessage(message);
|
||||
|
||||
} else if (message->FindData("bdaddr", B_ANY_TYPE,
|
||||
(const void**)&bdaddr, &size) == B_OK) {
|
||||
|
||||
// Try to find out when the user specified the address
|
||||
Output::Instance()->Post("GetLocalDevice requested with bdaddr\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: GetLocalDevice requested with bdaddr\n");
|
||||
for (lastIndex = 0; lastIndex < fLocalDevicesList.CountItems();
|
||||
lastIndex ++) {
|
||||
// TODO: Only possible if the property is available
|
||||
@ -338,7 +312,7 @@ BluetoothServer::HandleAcquireLocalDevice(BMessage* message, BMessage* reply)
|
||||
|
||||
} else {
|
||||
// Careless, any device not performing operations will be fine
|
||||
Output::Instance()->Post("GetLocalDevice plain request\n", BLACKBOARD_KIT);
|
||||
TRACE_BT("BluetoothServer: GetLocalDevice plain request\n");
|
||||
// from last assigned till end
|
||||
for (int index = lastIndex + 1;
|
||||
index < fLocalDevicesList.CountItems(); index++) {
|
||||
@ -346,8 +320,7 @@ BluetoothServer::HandleAcquireLocalDevice(BMessage* message, BMessage* reply)
|
||||
if (lDeviceImpl != NULL && lDeviceImpl->Available()) {
|
||||
printf("Requested local device %" B_PRId32 "\n",
|
||||
lDeviceImpl->GetID());
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Device available: %lx\n", lDeviceImpl->GetID());
|
||||
TRACE_BT("BluetoothServer: Device available: %lx\n", lDeviceImpl->GetID());
|
||||
lastIndex = index;
|
||||
break;
|
||||
}
|
||||
@ -360,8 +333,7 @@ BluetoothServer::HandleAcquireLocalDevice(BMessage* message, BMessage* reply)
|
||||
if (lDeviceImpl != NULL && lDeviceImpl->Available()) {
|
||||
printf("Requested local device %" B_PRId32 "\n",
|
||||
lDeviceImpl->GetID());
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Device available: %lx\n", lDeviceImpl->GetID());
|
||||
TRACE_BT("BluetoothServer: Device available: %lx\n", lDeviceImpl->GetID());
|
||||
lastIndex = index;
|
||||
break;
|
||||
}
|
||||
@ -375,7 +347,7 @@ BluetoothServer::HandleAcquireLocalDevice(BMessage* message, BMessage* reply)
|
||||
hid = lDeviceImpl->GetID();
|
||||
lDeviceImpl->Acquire();
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT, "Device acquired %lx\n", hid);
|
||||
TRACE_BT("BluetoothServer: Device acquired %lx\n", hid);
|
||||
return reply->AddInt32("hci_id", hid);
|
||||
}
|
||||
|
||||
@ -431,8 +403,7 @@ BluetoothServer::HandleGetProperty(BMessage* message, BMessage* reply)
|
||||
// Find out if there is a property being requested,
|
||||
if (message->FindString("property", &propertyRequested) == B_OK) {
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(lDeviceImpl->GetID()),
|
||||
"Searching %s property...\n", propertyRequested);
|
||||
TRACE_BT("BluetoothServer: Searching %s property...\n", propertyRequested);
|
||||
|
||||
// Check if the property has been already retrieved
|
||||
if (lDeviceImpl->IsPropertyAvailable(propertyRequested)) {
|
||||
@ -471,8 +442,7 @@ BluetoothServer::HandleGetProperty(BMessage* message, BMessage* reply)
|
||||
|
||||
|
||||
} else {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(lDeviceImpl->GetID()),
|
||||
"Property %s could not be satisfied\n", propertyRequested);
|
||||
TRACE_BT("BluetoothServer: Property %s could not be satisfied\n", propertyRequested);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -497,13 +467,12 @@ BluetoothServer::SDPServerThread(void* data)
|
||||
status_t status;
|
||||
char buffer[512] = "";
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP, "SDP server thread up...\n");
|
||||
TRACE_BT("SDP: SDP server thread up...\n");
|
||||
|
||||
socketServer = socket(PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_L2CAP);
|
||||
|
||||
if (socketServer < 0) {
|
||||
Output::Instance()->Post("Could not create server socket ...\n",
|
||||
BLACKBOARD_SDP);
|
||||
TRACE_BT("SDP: Could not create server socket ...\n");
|
||||
return B_ERROR;
|
||||
}
|
||||
|
||||
@ -518,8 +487,7 @@ BluetoothServer::SDPServerThread(void* data)
|
||||
sizeof(struct sockaddr_l2cap));
|
||||
|
||||
if (status < 0) {
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Could not bind server socket %d ...\n", status);
|
||||
TRACE_BT("SDP: Could not bind server socket (%s)...\n", strerror(status));
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -530,42 +498,36 @@ BluetoothServer::SDPServerThread(void* data)
|
||||
status = listen(socketServer, 10);
|
||||
|
||||
if (status != B_OK) {
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Could not listen server socket %d ...\n", status);
|
||||
TRACE_BT("SDP: Could not listen server socket (%s)...\n", strerror(status));
|
||||
return status;
|
||||
}
|
||||
|
||||
while (!server->fIsShuttingDown) {
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Waiting connection for socket %d ...\n", socketServer);
|
||||
TRACE_BT("SDP: Waiting connection for socket (%s)...\n", strerror(status));
|
||||
|
||||
uint len = sizeof(struct sockaddr_l2cap);
|
||||
client = accept(socketServer, (struct sockaddr*)&loc_addr, &len);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Incomming connection... %ld\n", client);
|
||||
TRACE_BT("SDP: Incomming connection... %d\n", client);
|
||||
|
||||
ssize_t receivedSize;
|
||||
|
||||
do {
|
||||
receivedSize = recv(client, buffer, 29 , 0);
|
||||
if (receivedSize < 0)
|
||||
Output::Instance()->Post("Error reading client socket\n",
|
||||
BLACKBOARD_SDP);
|
||||
TRACE_BT("SDP: Error reading client socket\n");
|
||||
else {
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP,
|
||||
"Received from SDP client: %ld:\n", receivedSize);
|
||||
TRACE_BT("SDP: Received from SDP client: %ld:\n", receivedSize);
|
||||
for (int i = 0; i < receivedSize ; i++)
|
||||
Output::Instance()->Postf(BLACKBOARD_SDP, "%x:", buffer[i]);
|
||||
TRACE_BT("SDP: %x:", buffer[i]);
|
||||
|
||||
Output::Instance()->Post("\n", BLACKBOARD_SDP);
|
||||
TRACE_BT("\n");
|
||||
}
|
||||
} while (receivedSize >= 0);
|
||||
|
||||
snooze(5000000);
|
||||
Output::Instance()->Post("\nWaiting for next connection...\n",
|
||||
BLACKBOARD_SDP);
|
||||
TRACE_BT("SDP: Waiting for next connection...\n");
|
||||
}
|
||||
|
||||
// Close the socket
|
||||
@ -600,9 +562,8 @@ BluetoothServer::_InstallDeskbarIcon()
|
||||
}
|
||||
|
||||
status_t res = deskbar.AddItem(&appInfo.ref);
|
||||
if (res != B_OK) {
|
||||
printf("Failed adding deskbar icon: %" B_PRId32 "\n", res);
|
||||
}
|
||||
if (res != B_OK)
|
||||
TRACE_BT("Failed adding deskbar icon: %" B_PRId32 "\n", res);
|
||||
}
|
||||
|
||||
|
||||
@ -611,9 +572,8 @@ BluetoothServer::_RemoveDeskbarIcon()
|
||||
{
|
||||
BDeskbar deskbar;
|
||||
status_t res = deskbar.RemoveItem(kDeskbarItemName);
|
||||
if (res != B_OK) {
|
||||
printf("Failed removing Deskbar icon: %" B_PRId32 ": \n", res);
|
||||
}
|
||||
if (res != B_OK)
|
||||
TRACE_BT("Failed removing Deskbar icon: %" B_PRId32 ": \n", res);
|
||||
}
|
||||
|
||||
|
||||
@ -624,8 +584,6 @@ BluetoothServer::_RemoveDeskbarIcon()
|
||||
int
|
||||
main(int /*argc*/, char** /*argv*/)
|
||||
{
|
||||
setbuf(stdout, NULL);
|
||||
|
||||
BluetoothServer* bluetoothServer = new BluetoothServer;
|
||||
|
||||
bluetoothServer->Run();
|
||||
|
18
src/servers/bluetooth/Debug.h
Normal file
18
src/servers/bluetooth/Debug.h
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright 2016, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Augustin Cavalier, <waddlesplash>
|
||||
*/
|
||||
#ifndef _BLUETOOTH_SERVER_DEBUG_H
|
||||
#define _BLUETOOTH_SERVER_DEBUG_H
|
||||
|
||||
//#ifdef TRACE_BLUETOOTH_SERVER
|
||||
#if 1
|
||||
# define TRACE_BT(x...) printf(x)
|
||||
#else
|
||||
# define TRACE_BT(x)
|
||||
#endif
|
||||
|
||||
#endif
|
@ -16,7 +16,7 @@
|
||||
#include "DeviceManager.h"
|
||||
#include "LocalDeviceImpl.h"
|
||||
|
||||
#include "Output.h"
|
||||
#include "Debug.h"
|
||||
#include "BluetoothServer.h"
|
||||
|
||||
#include <bluetoothserver_p.h>
|
||||
@ -36,14 +36,14 @@ DeviceManager::MessageReceived(BMessage* msg)
|
||||
const char *name;
|
||||
BDirectory dir;
|
||||
|
||||
Output::Instance()->Post("Something new in the bus ... ", BLACKBOARD_DEVICEMANAGER);
|
||||
TRACE_BT("Something new in the bus ... ");
|
||||
|
||||
if ((msg->FindInt32("device", &ref.device)!=B_OK)
|
||||
|| (msg->FindInt64("directory", &ref.directory)!=B_OK)
|
||||
|| (msg->FindString("name", &name) != B_OK))
|
||||
return;
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, " -> %s\n", name);
|
||||
TRACE_BT("DeviceManager: -> %s\n", name);
|
||||
|
||||
ref.set_name(name);
|
||||
|
||||
@ -62,8 +62,7 @@ DeviceManager::MessageReceived(BMessage* msg)
|
||||
break;
|
||||
case B_ENTRY_REMOVED:
|
||||
{
|
||||
Output::Instance()->Post("Something removed from the bus ...\n",
|
||||
BLACKBOARD_DEVICEMANAGER);
|
||||
TRACE_BT("Something removed from the bus ...\n");
|
||||
|
||||
}
|
||||
break;
|
||||
@ -86,21 +85,20 @@ DeviceManager::AddDirectory(node_ref *nref)
|
||||
BDirectory directory(nref);
|
||||
status_t status = directory.InitCheck();
|
||||
if (status != B_OK) {
|
||||
Output::Instance()->Post("AddDirectory::Initcheck Failed\n", BLACKBOARD_DEVICEMANAGER);
|
||||
TRACE_BT("AddDirectory::Initcheck Failed\n");
|
||||
return status;
|
||||
}
|
||||
|
||||
status = watch_node(nref, B_WATCH_DIRECTORY, this);
|
||||
if (status != B_OK) {
|
||||
Output::Instance()->Post("AddDirectory::watch_node Failed\n", BLACKBOARD_DEVICEMANAGER);
|
||||
TRACE_BT("AddDirectory::watch_node Failed\n");
|
||||
return status;
|
||||
}
|
||||
|
||||
// BPath path(*nref);
|
||||
// BString str(path.Path());
|
||||
//
|
||||
// Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER,
|
||||
// "Exploring entries in %s\n", str.String());
|
||||
// TRACE_BT("DeviceManager: Exploring entries in %s\n", str.String());
|
||||
|
||||
entry_ref ref;
|
||||
status_t error;
|
||||
@ -109,8 +107,7 @@ DeviceManager::AddDirectory(node_ref *nref)
|
||||
AddDevice(&ref);
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER,
|
||||
"Finished exploring entries(%s)\n", strerror(error));
|
||||
TRACE_BT("DeviceManager: Finished exploring entries(%s)\n", strerror(error));
|
||||
|
||||
return (error == B_OK || error == B_ENTRY_NOT_FOUND)?B_OK:error;
|
||||
}
|
||||
@ -157,7 +154,7 @@ DeviceManager::AddDevice(entry_ref* ref)
|
||||
|
||||
msg->AddString("name", *str );
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "Device %s registered\n", path.Path());
|
||||
TRACE_BT("DeviceManager: Device %s registered\n", path.Path());
|
||||
return be_app_messenger.SendMessage(msg);
|
||||
}
|
||||
|
||||
@ -233,7 +230,7 @@ DeviceManager::StartMonitoringDevice(const char *device)
|
||||
if (error != B_OK)
|
||||
return error;
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "%s path being monitored\n", path.Path());
|
||||
TRACE_BT("DeviceManager: %s path being monitored\n", path.Path());
|
||||
|
||||
// We are monitoring the root we may have already directories inside
|
||||
// to be monitored
|
||||
@ -247,7 +244,7 @@ DeviceManager::StartMonitoringDevice(const char *device)
|
||||
AddDirectory(&driverNRef);
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "Finished exploring entries(%s)\n", strerror(error));
|
||||
TRACE_BT("DeviceManager: Finished exploring entries(%s)\n", strerror(error));
|
||||
|
||||
#if 0
|
||||
HCIDelegate *tmphd = NULL;
|
||||
|
@ -1,8 +1,6 @@
|
||||
/*
|
||||
* Copyright 2007-2008 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com
|
||||
*
|
||||
* All rights reserved. Distributed under the terms of the MIT License.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@ -10,7 +8,7 @@
|
||||
|
||||
#include "BluetoothServer.h"
|
||||
#include "HCITransportAccessor.h"
|
||||
#include "Output.h"
|
||||
|
||||
|
||||
HCITransportAccessor::HCITransportAccessor(BPath* path) : HCIDelegate(path)
|
||||
{
|
||||
|
@ -15,7 +15,6 @@ Server bluetooth_server
|
||||
HCITransportAccessor.cpp
|
||||
LocalDeviceHandler.cpp
|
||||
LocalDeviceImpl.cpp
|
||||
Output.cpp
|
||||
: be network libbluetooth.so
|
||||
[ TargetLibstdc++ ]
|
||||
;
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
#include "LocalDeviceImpl.h"
|
||||
#include "CommandManager.h"
|
||||
#include "Output.h"
|
||||
#include "Debug.h"
|
||||
|
||||
#include <bluetooth/bdaddrUtils.h>
|
||||
#include <bluetooth/bluetooth_error.h>
|
||||
@ -84,7 +84,7 @@ LocalDeviceImpl::Unregister()
|
||||
|
||||
msg->AddInt32("hci_id", fHCIDelegate->Id());
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "Unregistering %x\n",
|
||||
TRACE_BT("LocalDeviceImpl: Unregistering %lx\n",
|
||||
fHCIDelegate->Id());
|
||||
|
||||
be_app_messenger.SendMessage(msg);
|
||||
@ -287,8 +287,7 @@ LocalDeviceImpl::HandleEvent(struct hci_event_header* event)
|
||||
struct hci_ev_cmd_complete* commandComplete
|
||||
= JumpEventHeader<struct hci_ev_cmd_complete>(event);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Incomming CommandComplete(%d) for %s\n", commandComplete->ncmd,
|
||||
TRACE_BT("LocalDeviceImpl: Incoming CommandComplete(%d) for %s\n", commandComplete->ncmd,
|
||||
BluetoothCommandOpcode(commandComplete->opcode));
|
||||
|
||||
request = FindPetition(event->ecode, commandComplete->opcode,
|
||||
@ -304,8 +303,7 @@ LocalDeviceImpl::HandleEvent(struct hci_event_header* event)
|
||||
struct hci_ev_cmd_status* commandStatus
|
||||
= JumpEventHeader<struct hci_ev_cmd_status>(event);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Incomming CommandStatus(%d)(%s) for %s\n", commandStatus->ncmd,
|
||||
TRACE_BT("LocalDeviceImpl: Incoming CommandStatus(%d)(%s) for %s\n", commandStatus->ncmd,
|
||||
BluetoothError(commandStatus->status),
|
||||
BluetoothCommandOpcode(commandStatus->opcode));
|
||||
|
||||
@ -317,8 +315,7 @@ LocalDeviceImpl::HandleEvent(struct hci_event_header* event)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Incomming %s event\n", BluetoothEvent(event->ecode));
|
||||
TRACE_BT("LocalDeviceImpl: Incoming %s event\n", BluetoothEvent(event->ecode));
|
||||
|
||||
request = FindPetition(event->ecode);
|
||||
if (request != NULL)
|
||||
@ -328,8 +325,7 @@ LocalDeviceImpl::HandleEvent(struct hci_event_header* event)
|
||||
}
|
||||
|
||||
if (request == NULL) {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Event %s could not be understood or delivered\n",
|
||||
TRACE_BT("LocalDeviceImpl: Event %s could not be understood or delivered\n",
|
||||
BluetoothEvent(event->ecode));
|
||||
HandleUnexpectedEvent(event);
|
||||
}
|
||||
@ -343,9 +339,8 @@ LocalDeviceImpl::HandleEvent(struct hci_event_header* event)
|
||||
|
||||
void
|
||||
LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
BMessage* request,
|
||||
int32 index) {
|
||||
|
||||
BMessage* request, int32 index)
|
||||
{
|
||||
int16 opcodeExpected;
|
||||
BMessage reply;
|
||||
status_t status;
|
||||
@ -354,8 +349,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
request->FindInt16("opcodeExpected", index, &opcodeExpected);
|
||||
|
||||
if (request->IsSourceWaiting() == false) {
|
||||
Output::Instance()->Post("Nobody waiting for the event\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("LocalDeviceImpl: Nobody waiting for the event\n");
|
||||
}
|
||||
|
||||
switch ((uint16)opcodeExpected) {
|
||||
@ -391,8 +385,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
}
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Reply for Local Version %x\n", version->status);
|
||||
TRACE_BT("LocalDeviceImpl: Reply for Local Version %x\n", version->status);
|
||||
|
||||
reply.AddInt8("status", version->status);
|
||||
status = request->SendReply(&reply);
|
||||
@ -414,8 +407,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
fProperties->AddInt16("page_timeout",
|
||||
pageTimeout->page_timeout);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Page Timeout=%x\n", pageTimeout->page_timeout);
|
||||
TRACE_BT("LocalDeviceImpl: Page Timeout=%x\n", pageTimeout->page_timeout);
|
||||
}
|
||||
|
||||
reply.AddInt8("status", pageTimeout->status);
|
||||
@ -464,15 +456,13 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
fProperties->AddBool("role_switch_capable", roleSwitch);
|
||||
fProperties->AddBool("encrypt_capable", encryptCapable);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Packet type %x role switch %d encrypt %d\n",
|
||||
TRACE_BT("LocalDeviceImpl: Packet type %x role switch %d encrypt %d\n",
|
||||
packetType, roleSwitch, encryptCapable);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Reply for Local Features %x\n", features->status);
|
||||
TRACE_BT("LocalDeviceImpl: Reply for Local Features %x\n", features->status);
|
||||
|
||||
reply.AddInt8("status", features->status);
|
||||
status = request->SendReply(&reply);
|
||||
@ -506,8 +496,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Reply for Read Buffer Size %x\n", buffer->status);
|
||||
TRACE_BT("LocalDeviceImpl: Reply for Read Buffer Size %x\n", buffer->status);
|
||||
|
||||
|
||||
reply.AddInt8("status", buffer->status);
|
||||
@ -531,8 +520,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
sizeof(bdaddr_t));
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Read bdaddr status = %x\n", readbdaddr->status);
|
||||
TRACE_BT("LocalDeviceImpl: Read bdaddr status = %x\n", readbdaddr->status);
|
||||
|
||||
reply.AddInt8("status", readbdaddr->status);
|
||||
status = request->SendReply(&reply);
|
||||
@ -556,8 +544,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
sizeof(classDev->dev_class));
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Read DeviceClass status = %x DeviceClass = [%x][%x][%x]\n",
|
||||
TRACE_BT("LocalDeviceImpl: Read DeviceClass status = %x DeviceClass = [%x][%x][%x]\n",
|
||||
classDev->status, classDev->dev_class[0],
|
||||
classDev->dev_class[1], classDev->dev_class[2]);
|
||||
|
||||
@ -584,8 +571,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
(const char*)readLocalName->local_name);
|
||||
}
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Friendly name status %x\n", readLocalName->status);
|
||||
TRACE_BT("LocalDeviceImpl: Friendly name status %x\n", readLocalName->status);
|
||||
|
||||
reply.AddInt8("status", readLocalName->status);
|
||||
status = request->SendReply(&reply);
|
||||
@ -602,8 +588,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
uint8* statusReply = (uint8*)(event + 1);
|
||||
|
||||
// TODO: This reply has to match the BDADDR of the outgoing message
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"pincode accept status %x\n", *statusReply);
|
||||
TRACE_BT("LocalDeviceImpl: pincode accept status %x\n", *statusReply);
|
||||
|
||||
reply.AddInt8("status", *statusReply);
|
||||
status = request->SendReply(&reply);
|
||||
@ -622,8 +607,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
|
||||
// TODO: This reply might match the BDADDR of the outgoing message
|
||||
// => FindPetition should be expanded....
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"pincode reject status %x\n", *statusReply);
|
||||
TRACE_BT("LocalDeviceImpl: pincode reject status %x\n", *statusReply);
|
||||
|
||||
reply.AddInt8("status", *statusReply);
|
||||
status = request->SendReply(&reply);
|
||||
@ -641,8 +625,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
= JumpEventHeader<struct hci_read_stored_link_key_reply,
|
||||
struct hci_ev_cmd_complete>(event);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Status %s MaxKeys=%d, KeysRead=%d\n",
|
||||
TRACE_BT("LocalDeviceImpl: Status %s MaxKeys=%d, KeysRead=%d\n",
|
||||
BluetoothError(linkKeyRetrieval->status),
|
||||
linkKeyRetrieval->max_num_keys,
|
||||
linkKeyRetrieval->num_keys_read);
|
||||
@ -663,8 +646,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
= JumpEventHeader<struct hci_cp_link_key_reply_reply,
|
||||
struct hci_ev_cmd_complete>(event);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Status %s addresss=%s\n", BluetoothError(linkKeyReply->status),
|
||||
TRACE_BT("LocalDeviceImpl: Status %s addresss=%s\n", BluetoothError(linkKeyReply->status),
|
||||
bdaddrUtils::ToString(linkKeyReply->bdaddr).String());
|
||||
|
||||
ClearWantedEvent(request, HCI_EVENT_CMD_COMPLETE, opcodeExpected);
|
||||
@ -680,8 +662,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
if (scanEnable->status == BT_OK) {
|
||||
fProperties->AddInt8("scan_enable", scanEnable->enable);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"enable = %x\n", scanEnable->enable);
|
||||
TRACE_BT("LocalDeviceImpl: enable = %x\n", scanEnable->enable);
|
||||
}
|
||||
|
||||
reply.AddInt8("status", scanEnable->status);
|
||||
@ -707,8 +688,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
{
|
||||
reply.AddInt8("status", *(uint8*)(event + 1));
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s for %s status %x\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s for %s status %x\n", __FUNCTION__,
|
||||
BluetoothCommandOpcode(opcodeExpected), *(uint8*)(event + 1));
|
||||
|
||||
status = request->SendReply(&reply);
|
||||
@ -721,8 +701,7 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event,
|
||||
}
|
||||
|
||||
default:
|
||||
Output::Instance()->Post("Command Complete not handled\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("LocalDeviceImpl: Command Complete not handled\n");
|
||||
break;
|
||||
|
||||
}
|
||||
@ -742,8 +721,7 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event,
|
||||
request->FindInt16("opcodeExpected", index, &opcodeExpected);
|
||||
|
||||
if (request->IsSourceWaiting() == false) {
|
||||
Output::Instance()->Post("Nobody waiting for the event\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("LocalDeviceImpl: Nobody waiting for the event\n");
|
||||
}
|
||||
|
||||
switch (opcodeExpected) {
|
||||
@ -752,8 +730,7 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event,
|
||||
{
|
||||
reply.what = BT_MSG_INQUIRY_STARTED;
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Inquiry status %x\n", event->status);
|
||||
TRACE_BT("LocalDeviceImpl: Inquiry status %x\n", event->status);
|
||||
|
||||
reply.AddInt8("status", event->status);
|
||||
status = request->SendReply(&reply);
|
||||
@ -771,8 +748,7 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event,
|
||||
if (event->status == BT_OK) {
|
||||
ClearWantedEvent(request, HCI_EVENT_CMD_STATUS, opcodeExpected);
|
||||
} else {
|
||||
Output::Instance()->Postf(BLACKBOARD_KIT,
|
||||
"Command Status for remote friendly name %x\n",
|
||||
TRACE_BT("LocalDeviceImpl: Command Status for remote friendly name %x\n",
|
||||
event->status);
|
||||
|
||||
reply.AddInt8("status", event->status);
|
||||
@ -800,8 +776,7 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event,
|
||||
break;*/
|
||||
|
||||
default:
|
||||
Output::Instance()->Post("Command Status not handled\n",
|
||||
BLACKBOARD_KIT);
|
||||
TRACE_BT("LocalDeviceImpl: Command Status not handled\n");
|
||||
break;
|
||||
}
|
||||
|
||||
@ -821,16 +796,16 @@ LocalDeviceImpl::InquiryResult(uint8* numberOfResponses, BMessage* request)
|
||||
|
||||
reply.AddInt8("count", *numberOfResponses);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()), "%s #responses=%d\n",
|
||||
TRACE_BT("LocalDeviceImpl: %s #responses=%d\n",
|
||||
__FUNCTION__, *numberOfResponses);
|
||||
|
||||
struct inquiry_info* info = JumpEventHeader<struct inquiry_info, uint8>
|
||||
(numberOfResponses);
|
||||
|
||||
while (responses > 0) {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"page_rep=%d scan_period=%d, scan=%d clock=%d\n", info->pscan_rep_mode,
|
||||
info->pscan_period_mode, info->pscan_mode, info->clock_offset);
|
||||
TRACE_BT("LocalDeviceImpl: page_rep=%d scan_period=%d, scan=%d clock=%d\n",
|
||||
info->pscan_rep_mode, info->pscan_period_mode, info->pscan_mode,
|
||||
info->clock_offset);
|
||||
responses--;
|
||||
info++;
|
||||
}
|
||||
@ -871,17 +846,15 @@ LocalDeviceImpl::RemoteNameRequestComplete(
|
||||
|
||||
reply.AddInt8("status", remotename->status);
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s for %s with status %s\n",
|
||||
TRACE_BT("LocalDeviceImpl: %s for %s with status %s\n",
|
||||
BluetoothEvent(HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE),
|
||||
bdaddrUtils::ToString(remotename->bdaddr).String(),
|
||||
BluetoothError(remotename->status));
|
||||
|
||||
printf("%s: Sending reply...\n", __func__);
|
||||
status_t status = request->SendReply(&reply);
|
||||
if (status < B_OK)
|
||||
printf("%s: Error sending reply!\n", __func__);
|
||||
// debug reply.PrintToStream();
|
||||
printf("%s: Error sending reply to BMessage request: %s!\n",
|
||||
__func__, strerror(status));
|
||||
|
||||
// This request is not gonna be used anymore
|
||||
ClearWantedEvent(request);
|
||||
@ -895,8 +868,7 @@ LocalDeviceImpl::ConnectionRequest(struct hci_ev_conn_request* event,
|
||||
size_t size;
|
||||
void* command;
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Connection Incoming type %x from %s...\n",
|
||||
TRACE_BT("LocalDeviceImpl: Connection Incoming type %x from %s...\n",
|
||||
event->link_type, bdaddrUtils::ToString(event->bdaddr).String());
|
||||
|
||||
// TODO: add a possible request in the queue
|
||||
@ -925,12 +897,10 @@ LocalDeviceImpl::ConnectionRequest(struct hci_ev_conn_request* event,
|
||||
AddWantedEvent(newrequest);
|
||||
|
||||
if ((fHCIDelegate)->IssueCommand(command, size) == B_ERROR) {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Command issued error for Accepting connection\n");
|
||||
TRACE_BT("LocalDeviceImpl: Command issued error for Accepting connection\n");
|
||||
// remove the request?
|
||||
} else {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Command issued for Accepting connection\n");
|
||||
TRACE_BT("LocalDeviceImpl: Command issued for Accepting connection\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -949,14 +919,12 @@ LocalDeviceImpl::ConnectionComplete(struct hci_ev_conn_complete* event,
|
||||
new RemoteDevice(event->bdaddr, cod));
|
||||
iConnection->Show();
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Address %s handle=%#x type=%d encrypt=%d\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Address %s handle=%#x type=%d encrypt=%d\n", __FUNCTION__,
|
||||
bdaddrUtils::ToString(event->bdaddr).String(), event->handle,
|
||||
event->link_type, event->encrypt_mode);
|
||||
|
||||
} else {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: failed with error %s\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: failed with error %s\n", __FUNCTION__,
|
||||
BluetoothError(event->status));
|
||||
}
|
||||
|
||||
@ -985,8 +953,7 @@ void
|
||||
LocalDeviceImpl::DisconnectionComplete(
|
||||
struct hci_ev_disconnection_complete_reply* event, BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Handle=%#x, reason=%s status=%x\n", __FUNCTION__, event->handle,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Handle=%#x, reason=%s status=%x\n", __FUNCTION__, event->handle,
|
||||
BluetoothError(event->reason), event->status);
|
||||
|
||||
if (request != NULL) {
|
||||
@ -1016,8 +983,7 @@ LocalDeviceImpl::PinCodeRequest(struct hci_ev_pin_code_req* event,
|
||||
void
|
||||
LocalDeviceImpl::RoleChange(hci_ev_role_change* event, BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Address %s role=%d status=%d\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Address %s role=%d status=%d\n", __FUNCTION__,
|
||||
bdaddrUtils::ToString(event->bdaddr).String(), event->role, event->status);
|
||||
}
|
||||
|
||||
@ -1026,8 +992,7 @@ void
|
||||
LocalDeviceImpl::PageScanRepetitionModeChange(
|
||||
struct hci_ev_page_scan_rep_mode_change* event, BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Address %s type=%d\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Address %s type=%d\n", __FUNCTION__,
|
||||
bdaddrUtils::ToString(event->bdaddr).String(), event->page_scan_rep_mode);
|
||||
}
|
||||
|
||||
@ -1036,8 +1001,7 @@ void
|
||||
LocalDeviceImpl::LinkKeyNotify(hci_ev_link_key_notify* event,
|
||||
BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Address %s, key=%s, type=%d\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Address %s, key=%s, type=%d\n", __FUNCTION__,
|
||||
bdaddrUtils::ToString(event->bdaddr).String(),
|
||||
LinkKeyUtils::ToString(event->link_key).String(), event->key_type);
|
||||
}
|
||||
@ -1047,8 +1011,7 @@ void
|
||||
LocalDeviceImpl::LinkKeyRequested(struct hci_ev_link_key_req* keyRequested,
|
||||
BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Address %s\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Address %s\n", __FUNCTION__,
|
||||
bdaddrUtils::ToString(keyRequested->bdaddr).String());
|
||||
|
||||
// TODO:
|
||||
@ -1065,11 +1028,9 @@ LocalDeviceImpl::LinkKeyRequested(struct hci_ev_link_key_req* keyRequested,
|
||||
|
||||
if ((fHCIDelegate)->IssueCommand(linkKeyNegativeReply.Data(),
|
||||
linkKeyNegativeReply.Size()) == B_ERROR) {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Command issued error for reply %s\n", __FUNCTION__);
|
||||
TRACE_BT("LocalDeviceImpl: Command issued error for reply %s\n", __FUNCTION__);
|
||||
} else {
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"Command issued in reply of %s\n", __FUNCTION__);
|
||||
TRACE_BT("LocalDeviceImpl: Command issued in reply of %s\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
if (request != NULL)
|
||||
@ -1081,7 +1042,7 @@ LocalDeviceImpl::LinkKeyRequested(struct hci_ev_link_key_req* keyRequested,
|
||||
void
|
||||
LocalDeviceImpl::ReturnLinkKeys(struct hci_ev_return_link_keys* returnedKeys)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()), "%s: #keys=%d %s\n",
|
||||
TRACE_BT("LocalDeviceImpl: %s: #keys=%d\n",
|
||||
__FUNCTION__, returnedKeys->num_keys);
|
||||
|
||||
uint8 numKeys = returnedKeys->num_keys;
|
||||
@ -1090,7 +1051,7 @@ LocalDeviceImpl::ReturnLinkKeys(struct hci_ev_return_link_keys* returnedKeys)
|
||||
|
||||
while (numKeys > 0) {
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()), "Address=%s key=%s\n",
|
||||
TRACE_BT("LocalDeviceImpl: Address=%s key=%s\n",
|
||||
bdaddrUtils::ToString(linkKeys->bdaddr).String(),
|
||||
LinkKeyUtils::ToString(linkKeys->link_key).String());
|
||||
|
||||
@ -1103,8 +1064,7 @@ void
|
||||
LocalDeviceImpl::MaxSlotChange(struct hci_ev_max_slot_change* event,
|
||||
BMessage* request)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Handle=%#x, max slots=%d\n", __FUNCTION__,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Handle=%#x, max slots=%d\n", __FUNCTION__,
|
||||
event->handle, event->lmp_max_slots);
|
||||
}
|
||||
|
||||
@ -1112,24 +1072,21 @@ LocalDeviceImpl::MaxSlotChange(struct hci_ev_max_slot_change* event,
|
||||
void
|
||||
LocalDeviceImpl::HardwareError(struct hci_ev_hardware_error* event)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: hardware code=%#x\n", __FUNCTION__, event->hardware_code);
|
||||
TRACE_BT("LocalDeviceImpl: %s: hardware code=%#x\n", __FUNCTION__, event->hardware_code);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
LocalDeviceImpl::NumberOfCompletedPackets(struct hci_ev_num_comp_pkts* event)
|
||||
{
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: #Handles=%d\n", __FUNCTION__, event->num_hndl);
|
||||
TRACE_BT("LocalDeviceImpl: %s: #Handles=%d\n", __FUNCTION__, event->num_hndl);
|
||||
|
||||
struct handle_and_number* numberPackets
|
||||
= JumpEventHeader<handle_and_number, hci_ev_num_comp_pkts>(event);
|
||||
|
||||
for (uint8 i = 0; i < event->num_hndl; i++) {
|
||||
|
||||
Output::Instance()->Postf(BLACKBOARD_LD(GetID()),
|
||||
"%s: Handle=%d #packets=%d\n", __FUNCTION__, numberPackets->handle,
|
||||
TRACE_BT("LocalDeviceImpl: %s: Handle=%d #packets=%d\n", __FUNCTION__, numberPackets->handle,
|
||||
numberPackets->num_completed);
|
||||
|
||||
numberPackets++;
|
||||
@ -1160,16 +1117,14 @@ LocalDeviceImpl::ProcessSimpleRequest(BMessage* request)
|
||||
// TODO:
|
||||
// Reply the request with error!
|
||||
// Remove the just added request
|
||||
(Output::Instance()->Post("## ERROR Command issue, REMOVING!\n",
|
||||
BLACKBOARD_KIT));
|
||||
TRACE_BT("LocalDeviceImpl: ## ERROR Command issue, REMOVING!\n");
|
||||
ClearWantedEvent(request);
|
||||
|
||||
} else {
|
||||
return B_OK;
|
||||
}
|
||||
} else {
|
||||
(Output::Instance()->Post("No command specified for simple request\n",
|
||||
BLACKBOARD_KIT));
|
||||
TRACE_BT("LocalDeviceImpl: No command specified for simple request\n");
|
||||
}
|
||||
|
||||
return B_ERROR;
|
||||
|
@ -1,187 +0,0 @@
|
||||
/*
|
||||
* Copyright 2011 Hamish Morrison, hamish@lavabit.com
|
||||
* Copyright 2010 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com
|
||||
* Copyright 2010 Dan-Matei Epure, mateiepure@gmail.com
|
||||
* Copyright BeNet Team (Original Project)
|
||||
* All rights reserved. Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _Output_h
|
||||
#include "Output.h"
|
||||
#endif
|
||||
|
||||
#include <Looper.h>
|
||||
#include <String.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
#ifndef _Preferences_h
|
||||
#include "Preferences.h"
|
||||
#endif
|
||||
*/
|
||||
|
||||
|
||||
OutputView::OutputView(const char* name)
|
||||
:
|
||||
BGroupView(name, B_VERTICAL, B_WILL_DRAW)
|
||||
{
|
||||
rgb_color textColor = {255, 255, 255};
|
||||
fTextView = new BTextView("Output", NULL, &textColor, B_WILL_DRAW);
|
||||
fTextView->SetViewColor(0, 0, 100);
|
||||
fTextView->MakeEditable(false);
|
||||
BScrollView* scrollView = new BScrollView("ScrollView", fTextView,
|
||||
0, false, true);
|
||||
|
||||
BLayoutBuilder::Group<>(this).Add(scrollView);
|
||||
}
|
||||
|
||||
|
||||
// Singleton implementation
|
||||
Output* Output::sInstance = 0;
|
||||
|
||||
|
||||
Output::Output()
|
||||
:
|
||||
BWindow(BRect(200, 200, 800, 800), "Output",
|
||||
B_TITLED_WINDOW, B_NOT_ZOOMABLE)
|
||||
{
|
||||
fOutputViewsList = new BList();
|
||||
|
||||
fReset = new BButton("reset all", "Clear",
|
||||
new BMessage(kMsgOutputReset), B_WILL_DRAW);
|
||||
fResetAll = new BButton("reset", "Clear all",
|
||||
new BMessage(kMsgOutputResetAll), B_WILL_DRAW);
|
||||
|
||||
fTabView = new BTabView("tab_view", B_WIDTH_FROM_LABEL,
|
||||
B_FULL_UPDATE_ON_RESIZE | B_WILL_DRAW | B_NAVIGABLE_JUMP);
|
||||
|
||||
fTabView->AddTab(fAll = new OutputView("All"));
|
||||
|
||||
BLayoutBuilder::Group<>(this, B_VERTICAL, 5)
|
||||
.Add(fTabView)
|
||||
.AddGroup(B_HORIZONTAL, 0)
|
||||
.Add(fReset)
|
||||
.AddGlue()
|
||||
.Add(fResetAll)
|
||||
.End()
|
||||
.SetInsets(5, 5, 5, 5);
|
||||
|
||||
/*
|
||||
MoveTo( Preferences::Instance()->OutputX(),
|
||||
Preferences::Instance()->OutputY());
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Output::AddTab(const char* text, uint32 index)
|
||||
{
|
||||
OutputView* customOutput;
|
||||
|
||||
Lock();
|
||||
fTabView->AddTab(customOutput = new OutputView(text));
|
||||
fTabView->Invalidate();
|
||||
Unlock();
|
||||
|
||||
fOutputViewsList->AddItem(customOutput, index);
|
||||
}
|
||||
|
||||
|
||||
Output::~Output()
|
||||
{
|
||||
/* BWindow::~BWindow();*/
|
||||
delete fOutputViewsList;
|
||||
}
|
||||
|
||||
|
||||
Output*
|
||||
Output::Instance()
|
||||
{
|
||||
if (!sInstance)
|
||||
sInstance = new Output;
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
Output::QuitRequested()
|
||||
{
|
||||
Hide();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
OutputView*
|
||||
Output::_OutputViewForTab(int32 index)
|
||||
{
|
||||
return (OutputView*)fTabView->TabAt(index)->View();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Output::MessageReceived(BMessage* msg)
|
||||
{
|
||||
switch(msg->what) {
|
||||
case kMsgOutputReset:
|
||||
_OutputViewForTab(fTabView->Selection())->Clear();
|
||||
break;
|
||||
case kMsgOutputResetAll:
|
||||
for (int32 index = 0; index < fTabView->CountTabs(); ++index)
|
||||
_OutputViewForTab(index)->Clear();
|
||||
break;
|
||||
default:
|
||||
BWindow::MessageReceived(msg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Output::FrameMoved(BPoint point)
|
||||
{
|
||||
/* Preferences::Instance()->OutputX(point.x);
|
||||
Preferences::Instance()->OutputY(point.y);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
Output::Postf(uint32 index, const char* format, ...)
|
||||
{
|
||||
char string[200];
|
||||
va_list arg;
|
||||
int done;
|
||||
|
||||
va_start (arg, format);
|
||||
done = vsnprintf(string, 200, format, arg);
|
||||
va_end (arg);
|
||||
|
||||
Post(string, index);
|
||||
|
||||
return done;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Output::Post(const char* text, uint32 index)
|
||||
{
|
||||
Lock();
|
||||
OutputView* view = (OutputView*)fOutputViewsList->ItemAt(index);
|
||||
|
||||
if (view != NULL)
|
||||
_Add(text, view);
|
||||
else
|
||||
// Note that the view should be added before this!
|
||||
// Dropping twice to the main
|
||||
_Add(text, fAll);
|
||||
|
||||
Unlock();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Output::_Add(const char* text, OutputView* view)
|
||||
{
|
||||
view->Add(text);
|
||||
fAll->Add(text);
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Copyright 2011 Hamish Morrison, hamish@lavabit.com
|
||||
* Copyright 2010 Oliver Ruiz Dorantes
|
||||
* Copyright 2010 Dan-Matei Epure, mateiepure@gmail.com
|
||||
* Copyright BeNet Team (Original Project)
|
||||
* All rights reserved. Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _Output_h
|
||||
#define _Output_h
|
||||
|
||||
#include <Button.h>
|
||||
#include <LayoutBuilder.h>
|
||||
#include <ScrollView.h>
|
||||
#include <TabView.h>
|
||||
#include <TextView.h>
|
||||
#include <Window.h>
|
||||
|
||||
const uint32 kMsgOutputReset = 'outr';
|
||||
const uint32 kMsgOutputResetAll = 'opra';
|
||||
|
||||
|
||||
class OutputView : public BGroupView
|
||||
{
|
||||
public:
|
||||
OutputView(const char* name);
|
||||
|
||||
void Add(const char* text) {fTextView->Insert(text);}
|
||||
void Clear() {fTextView->Delete(0, fTextView->TextLength());}
|
||||
|
||||
private:
|
||||
BTextView* fTextView;
|
||||
};
|
||||
|
||||
|
||||
class Output : public BWindow
|
||||
{
|
||||
public:
|
||||
static Output* Instance();
|
||||
|
||||
~Output();
|
||||
|
||||
virtual bool QuitRequested();
|
||||
virtual void MessageReceived(BMessage* msg);
|
||||
virtual void FrameMoved(BPoint point);
|
||||
|
||||
void AddTab(const char* text, uint32 index);
|
||||
|
||||
void Post(const char* text, uint32 index);
|
||||
int Postf(uint32 index, const char* format, ...);
|
||||
|
||||
private:
|
||||
// functions
|
||||
Output();
|
||||
void _Add(const char* text, OutputView* view);
|
||||
OutputView* _OutputViewForTab(int32 index);
|
||||
|
||||
private:
|
||||
// data
|
||||
static Output* sInstance;
|
||||
BTab* fAllTab;
|
||||
|
||||
OutputView* fAll;
|
||||
|
||||
BButton* fReset;
|
||||
BButton* fResetAll;
|
||||
|
||||
BTabView* fTabView;
|
||||
|
||||
BList* fOutputViewsList;
|
||||
};
|
||||
|
||||
|
||||
#endif // _Output_h
|
Loading…
Reference in New Issue
Block a user