蓝牙代码解决方案
蓝牙代码
关于蓝牙代码看不懂望高手指教一二。详细的给出最高分
代码如下:
#include "private.h"
#include "usb_audio.h"
#include "led.h"
#include "inquiry_scan.h"
#include "ps_store.h"
#include "usb_hid.h"
#include "app_manager.h"
#include "a2dp_handler.h"
#include "avrcp_handler.h"
#include "aghfp_handler.h"
#include "sys_handler.h"
#include "cl_handler.h"
#include <panic.h>
#include <pio.h>
#include <pcm.h>
#include <stdlib.h> /* For NULL */
#include <string.h> /* For memcpy */
#include <kalimba_standard_messages.h>
#include <file.h>
#include <kalimba.h>
#include <bdaddr.h>
/* This is the task data associated with the app. */
mvdTaskData *s_the_app = NULL;
mvdTaskData* mvdGetApp (void)
{
return s_the_app;
}
/****************************************************************************
Unhandled state in the message handler.
*/
static void unhandledMessage(MessageId id)
{
DEBUG(("\nUnhandled message 0x%X", (uint16)id));
}
/****************************************************************************
MessageHandler
*/
static void messageHandler(Task task, MessageId id, Message message)
{
/*Sink old_audio_sink = s_the_app->audio_sink; TODO: Remove */
if (id>=MESSAGE_FROM_HOST && id<=MESSAGE_USB_SUSPENDED)
{
mvdHandleSystemMessage(id, message);
}
else if (id>=CL_MESSAGE_BASE && id<CL_MESSAGE_TOP)
{
mvdHandleClMessage(id, message);
}
else if (id>=A2DP_MESSAGE_BASE && id<A2DP_MESSAGE_TOP)
{
mvdHandleA2dpMessage(id, message);
}
else if (id>=AVRCP_MESSAGE_BASE && id<AVRCP_MESSAGE_TOP)
{
mvdHandleAvrcpMessage(id, message);
}
else if (id>=AGHFP_MESSAGE_BASE && id<AGHFP_MESSAGE_TOP)
{
mvdHandleAghfpMessage(id, message);
}
else if (id>=APP_MESSAGE_BASE && id<APP_MESSAGE_TOP)
{
mvdHandleAppMessage(id, message);
}
else
{ /* Unrecognised messages */
unhandledMessage(id);
}
}
/****************************************************************************
Extra initialisation for time critical functionality
*/
extern void _init(void);
void _init(void)
{
/* mvdInitUsbAudioTimeCritical();
mvdInitUsbHidTimeCritical();
*/
}
/****************************************************************************
Find the two DSP apps and take note of their file system indexes
*/
static const char kal_sco_enc[] = "mv_kalimba/mv_kalimba.kap";
void mvdKalimbaStart (mvdTaskData *the_app)
{
DEBUG(("\nkalimbaStart"));
/* Find the file in the file system */
the_app->sco_enc_idx = FileFind(FILE_ROOT,kal_sco_enc,sizeof(kal_sco_enc)-1/*don't pass terminator*/);
PanicFalse( the_app->sco_enc_idx != FILE_NONE );
/* Load the codec into Kalimba */
DEBUG_KALIMBA((" kl"));
PanicFalse( KalimbaLoad(the_app->sco_enc_idx) );
/* Plug in the usb ports to kalimba */
DEBUG_KALIMBA((" cua"));
mvdConnectUsbAudio( StreamKalimbaSink(0), StreamKalimbaSource(1) );
/*DEBUG_KALIMBA((" ksmENCODER_SELECT"));
PanicFalse(KalimbaSendMessage(KALIMBA_ENCODER_SELECT, (uint16)EncoderNone, 0, 0, 0));*/
/* Send go message to DSP */
DEBUG_KALIMBA((" ksmGO"));
PanicFalse( KalimbaSendMessage(KALIMBA_MSG_GO, 0, 0, 0, 0) );
}
void mvdKalimbaSelect (mvdTaskData *the_app, mvdEncoderType enc)
关于蓝牙代码看不懂望高手指教一二。详细的给出最高分
代码如下:
#include "private.h"
#include "usb_audio.h"
#include "led.h"
#include "inquiry_scan.h"
#include "ps_store.h"
#include "usb_hid.h"
#include "app_manager.h"
#include "a2dp_handler.h"
#include "avrcp_handler.h"
#include "aghfp_handler.h"
#include "sys_handler.h"
#include "cl_handler.h"
#include <panic.h>
#include <pio.h>
#include <pcm.h>
#include <stdlib.h> /* For NULL */
#include <string.h> /* For memcpy */
#include <kalimba_standard_messages.h>
#include <file.h>
#include <kalimba.h>
#include <bdaddr.h>
/* This is the task data associated with the app. */
mvdTaskData *s_the_app = NULL;
mvdTaskData* mvdGetApp (void)
{
return s_the_app;
}
/****************************************************************************
Unhandled state in the message handler.
*/
static void unhandledMessage(MessageId id)
{
DEBUG(("\nUnhandled message 0x%X", (uint16)id));
}
/****************************************************************************
MessageHandler
*/
static void messageHandler(Task task, MessageId id, Message message)
{
/*Sink old_audio_sink = s_the_app->audio_sink; TODO: Remove */
if (id>=MESSAGE_FROM_HOST && id<=MESSAGE_USB_SUSPENDED)
{
mvdHandleSystemMessage(id, message);
}
else if (id>=CL_MESSAGE_BASE && id<CL_MESSAGE_TOP)
{
mvdHandleClMessage(id, message);
}
else if (id>=A2DP_MESSAGE_BASE && id<A2DP_MESSAGE_TOP)
{
mvdHandleA2dpMessage(id, message);
}
else if (id>=AVRCP_MESSAGE_BASE && id<AVRCP_MESSAGE_TOP)
{
mvdHandleAvrcpMessage(id, message);
}
else if (id>=AGHFP_MESSAGE_BASE && id<AGHFP_MESSAGE_TOP)
{
mvdHandleAghfpMessage(id, message);
}
else if (id>=APP_MESSAGE_BASE && id<APP_MESSAGE_TOP)
{
mvdHandleAppMessage(id, message);
}
else
{ /* Unrecognised messages */
unhandledMessage(id);
}
}
/****************************************************************************
Extra initialisation for time critical functionality
*/
extern void _init(void);
void _init(void)
{
/* mvdInitUsbAudioTimeCritical();
mvdInitUsbHidTimeCritical();
*/
}
/****************************************************************************
Find the two DSP apps and take note of their file system indexes
*/
static const char kal_sco_enc[] = "mv_kalimba/mv_kalimba.kap";
void mvdKalimbaStart (mvdTaskData *the_app)
{
DEBUG(("\nkalimbaStart"));
/* Find the file in the file system */
the_app->sco_enc_idx = FileFind(FILE_ROOT,kal_sco_enc,sizeof(kal_sco_enc)-1/*don't pass terminator*/);
PanicFalse( the_app->sco_enc_idx != FILE_NONE );
/* Load the codec into Kalimba */
DEBUG_KALIMBA((" kl"));
PanicFalse( KalimbaLoad(the_app->sco_enc_idx) );
/* Plug in the usb ports to kalimba */
DEBUG_KALIMBA((" cua"));
mvdConnectUsbAudio( StreamKalimbaSink(0), StreamKalimbaSource(1) );
/*DEBUG_KALIMBA((" ksmENCODER_SELECT"));
PanicFalse(KalimbaSendMessage(KALIMBA_ENCODER_SELECT, (uint16)EncoderNone, 0, 0, 0));*/
/* Send go message to DSP */
DEBUG_KALIMBA((" ksmGO"));
PanicFalse( KalimbaSendMessage(KALIMBA_MSG_GO, 0, 0, 0, 0) );
}
void mvdKalimbaSelect (mvdTaskData *the_app, mvdEncoderType enc)