diff --git a/android/Android.mk b/android/Android.mk
index e988f73..83ea4b3 100644
--- a/android/Android.mk
+++ b/android/Android.mk
bluez/android/client/tabcompletion.c \
bluez/android/client/if-audio.c \
bluez/android/client/if-av.c \
+ bluez/android/client/if-rc.c \
bluez/android/client/if-bt.c \
bluez/android/client/if-hf.c \
bluez/android/client/if-hh.c \
diff --git a/android/Makefile.am b/android/Makefile.am
index 664524f..e065c0c 100644
--- a/android/Makefile.am
+++ b/android/Makefile.am
android/client/tabcompletion.c \
android/client/if-main.h \
android/client/if-av.c \
+ android/client/if-rc.c \
android/client/if-bt.c \
android/client/if-gatt.c \
android/client/if-hf.c \
diff --git a/android/client/haltest.c b/android/client/haltest.c
index f4d1ade..114fe31 100644
--- a/android/client/haltest.c
+++ b/android/client/haltest.c
&audio_if,
&bluetooth_if,
&av_if,
+ &rc_if,
&gatt_if,
&gatt_client_if,
&gatt_server_if,
static const char * const inames[] = {
BT_PROFILE_HANDSFREE_ID,
BT_PROFILE_ADVANCED_AUDIO_ID,
+ BT_PROFILE_AV_RC_ID,
BT_PROFILE_HEALTH_ID,
BT_PROFILE_HIDHOST_ID,
BT_PROFILE_PAN_ID,
diff --git a/android/client/if-bt.c b/android/client/if-bt.c
index 6bfb439..8dcffea 100644
--- a/android/client/if-bt.c
+++ b/android/client/if-bt.c
else if (strcmp(BT_PROFILE_PAN_ID, id) == 0)
pif = (const void **) &if_pan;
else if (strcmp(BT_PROFILE_AV_RC_ID, id) == 0)
- pif = &dummy; /* TODO: change when if_rc is there */
+ pif = (const void **) &if_rc;
else if (strcmp(BT_PROFILE_GATT_ID, id) == 0)
pif = (const void **) &if_gatt;
else
diff --git a/android/client/if-main.h b/android/client/if-main.h
index 2b22fc4..d82358e 100644
--- a/android/client/if-main.h
+++ b/android/client/if-main.h
/* Interfaces from hal that can be populated during application lifetime */
extern const bt_interface_t *if_bluetooth;
extern const btav_interface_t *if_av;
+extern const btrc_interface_t *if_rc;
extern const bthf_interface_t *if_hf;
extern const bthh_interface_t *if_hh;
extern const btpan_interface_t *if_pan;
extern const struct interface audio_if;
extern const struct interface bluetooth_if;
extern const struct interface av_if;
+extern const struct interface rc_if;
extern const struct interface gatt_if;
extern const struct interface gatt_client_if;
extern const struct interface gatt_server_if;
diff --git a/android/client/if-rc.c b/android/client/if-rc.c
new file mode 100644
index 0000000..58fb892
--- /dev/null
+++ b/android/client/if-rc.c
+/*
+ * Copyright (C) 2014 Intel 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 "if-main.h"
+#include "../hal-utils.h"
+
+const btrc_interface_t *if_rc = NULL;
+
+static btrc_callbacks_t rc_cbacks = {
+ .size = sizeof(rc_cbacks),
+};
+
+/* init */
+
+static void init_p(int argc, const char **argv)
+{
+ RETURN_IF_NULL(if_rc);
+
+ EXEC(if_rc->init, &rc_cbacks);
+}
+
+/* cleanup */
+
+static void cleanup_p(int argc, const char **argv)
+{
+ RETURN_IF_NULL(if_rc);
+
+ EXECV(if_rc->cleanup);
+ if_rc = NULL;
+}
+
+static struct method methods[] = {
+ STD_METHOD(init),
+ STD_METHOD(cleanup),
+ END_METHOD
+};
+
+const struct interface rc_if = {
+ .name = "rc",
+ .methods = methods
+};