// set WRITE_POLL_MS to 0 for blocking sockets, nonzero for polled non-blocking sockets
#define WRITE_POLL_MS 20
-#define CASE_RETURN_STR(const) case const: return #const;
-
#define FNLOG() LOG_VERBOSE(LOG_TAG, "%s", __func__);
#define DEBUG(fmt, ...) LOG_VERBOSE(LOG_TAG, "%s: " fmt,__func__, ## __VA_ARGS__)
#define INFO(fmt, ...) LOG_INFO(LOG_TAG, "%s: " fmt,__func__, ## __VA_ARGS__)
/*****************************************************************************
** Functions
******************************************************************************/
-/* Function used only in debug mode */
-static const char* dump_a2dp_ctrl_event(char event) __attribute__ ((unused));
static void a2dp_open_ctrl_path(struct a2dp_stream_common *common);
/*****************************************************************************
** Miscellaneous helper functions
******************************************************************************/
-static const char* dump_a2dp_ctrl_event(char event)
-{
- switch(event)
- {
- CASE_RETURN_STR(A2DP_CTRL_CMD_NONE)
- CASE_RETURN_STR(A2DP_CTRL_CMD_CHECK_READY)
- CASE_RETURN_STR(A2DP_CTRL_CMD_START)
- CASE_RETURN_STR(A2DP_CTRL_CMD_STOP)
- CASE_RETURN_STR(A2DP_CTRL_CMD_SUSPEND)
- default:
- return "UNKNOWN MSG ID";
- }
-}
-
/* logs timestamp with microsec precision
pprev is optional in case a dedicated diff is required */
static void ts_log(const char *tag, int val, struct timespec *pprev_opt)
return ret;
}
-static int a2dp_command(struct a2dp_stream_common *common, char cmd)
+static int a2dp_command(struct a2dp_stream_common *common, tA2DP_CTRL_CMD cmd)
{
char ack;
- DEBUG("A2DP COMMAND %s", dump_a2dp_ctrl_event(cmd));
+ DEBUG("A2DP COMMAND %s", audio_a2dp_hw_dump_ctrl_event(cmd));
if (common->ctrl_fd == AUDIO_SKT_DISCONNECTED) {
INFO("recovering from previous error");
/* wait for ack byte */
if (a2dp_ctrl_receive(common, &ack, 1) < 0) {
- ERROR("A2DP COMMAND %s: no ACK", dump_a2dp_ctrl_event(cmd));
+ ERROR("A2DP COMMAND %s: no ACK", audio_a2dp_hw_dump_ctrl_event(cmd));
return -1;
}
- DEBUG("A2DP COMMAND %s DONE STATUS %d", dump_a2dp_ctrl_event(cmd), ack);
+ DEBUG("A2DP COMMAND %s DONE STATUS %d", audio_a2dp_hw_dump_ctrl_event(cmd),
+ ack);
if (ack == A2DP_CTRL_ACK_INCALL_FAILURE)
return ack;
if (ack != A2DP_CTRL_ACK_SUCCESS) {
- ERROR("A2DP COMMAND %s error %d", dump_a2dp_ctrl_event(cmd), ack);
+ ERROR("A2DP COMMAND %s error %d", audio_a2dp_hw_dump_ctrl_event(cmd),
+ ack);
return -1;
}
--- /dev/null
+/******************************************************************************
+ *
+ * Copyright (C) 2009-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+#include "audio_a2dp_hw.h"
+
+#define CASE_RETURN_STR(const) case const: return #const;
+
+const char* audio_a2dp_hw_dump_ctrl_event(tA2DP_CTRL_CMD event)
+{
+ switch (event) {
+ CASE_RETURN_STR(A2DP_CTRL_CMD_NONE)
+ CASE_RETURN_STR(A2DP_CTRL_CMD_CHECK_READY)
+ CASE_RETURN_STR(A2DP_CTRL_CMD_START)
+ CASE_RETURN_STR(A2DP_CTRL_CMD_STOP)
+ CASE_RETURN_STR(A2DP_CTRL_CMD_SUSPEND)
+ CASE_RETURN_STR(A2DP_CTRL_GET_AUDIO_CONFIG)
+ CASE_RETURN_STR(A2DP_CTRL_CMD_OFFLOAD_START)
+ default:
+ break;
+ }
+
+ return "UNKNOWN A2DP_CTRL_CMD";
+}