# For LE only
export LDFLAGS=" -lncurses -Wl,--as-needed "
-export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET"
+export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DTIZEN_FEATURE_BLUEZ_AVRCP_CONTROL -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DENABLE_AVRCP_CATEGORY1"
export CFLAGS_DEFAULT="$CFLAGS"
export CFLAGS="$CFLAGS_DEFAULT"
autoreconf -fiv
export LDFLAGr=" -lncurses -Wl,--as-needed "
-export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET"
+export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DTIZEN_FEATURE_BLUEZ_AVRCP_CONTROL -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DENABLE_AVRCP_CATEGORY1"
export CFLAGS_DEFAULT="$CFLAGS"
export CFLAGS="$CFLAGS_DEFAULT"
make distclean
export LDFLAGS=" -lncurses -Wl,--as-needed "
-export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET"
+export CFLAGS+=" -Werror -DTIZEN_FEATURE_BLUEZ_MODIFY -DTIZEN_FEATURE_BLUEZ_PBAP_SIM -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DTIZEN_FEATURE_BLUEZ_AVRCP_CONTROL -DTIZEN_FEATURE_BLUEZ_AVRCP_TARGET -DENABLE_AVRCP_CATEGORY1"
export CFLAGS_DEFAULT="$CFLAGS"
export CFLAGS="$CFLAGS_DEFAULT"
DBG("-");
return ct_release(player, AVC_REWIND);
}
+
+static int ct_volume_up(struct media_player *mp, void *user_data)
+{
+ DBG("+");
+ struct avrcp_player *player = user_data;
+
+ DBG("-");
+ return ct_press(player, AVC_VOLUME_UP);
+}
+
+static int ct_volume_down(struct media_player *mp, void *user_data)
+{
+ DBG("+");
+ struct avrcp_player *player = user_data;
+
+ DBG("-");
+ return ct_press(player, AVC_VOLUME_DOWN);
+}
#else
static int ct_fast_forward(struct media_player *mp, void *user_data)
{
.release_fast_forward = ct_release_fast_forward,
.press_rewind = ct_press_rewind,
.release_rewind = ct_release_rewind,
+ .volume_up = ct_volume_up,
+ .volume_down = ct_volume_down,
#else
.fast_forward = ct_fast_forward,
.rewind = ct_rewind,
DBG("-");
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
+
+static DBusMessage *media_player_volume_up(DBusConnection *conn, DBusMessage *msg,
+ void *data)
+{
+ DBG("+");
+ struct media_player *mp = data;
+ struct player_callback *cb = mp->cb;
+ int err;
+
+ if (cb->cbs->volume_up == NULL)
+ return btd_error_not_supported(msg);
+
+ err = cb->cbs->volume_up(mp, cb->user_data);
+ if (err < 0)
+ return btd_error_failed(msg, strerror(-err));
+
+ DBG("-");
+ return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+}
+
+static DBusMessage *media_player_volume_down(DBusConnection *conn, DBusMessage *msg,
+ void *data)
+{
+ DBG("+");
+ struct media_player *mp = data;
+ struct player_callback *cb = mp->cb;
+ int err;
+
+ if (cb->cbs->volume_down == NULL)
+ return btd_error_not_supported(msg);
+
+ err = cb->cbs->volume_down(mp, cb->user_data);
+ if (err < 0)
+ return btd_error_failed(msg, strerror(-err));
+
+ DBG("-");
+ return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+}
+
#else
static DBusMessage *media_player_fast_forward(DBusConnection *conn,
DBusMessage *msg, void *data)
{ GDBUS_METHOD("ReleaseFastForward", NULL, NULL, media_player_release_fast_forward) },
{ GDBUS_METHOD("PressRewind", NULL, NULL, media_player_press_rewind) },
{ GDBUS_METHOD("ReleaseRewind", NULL, NULL, media_player_release_rewind) },
+ { GDBUS_METHOD("VolumeUp", NULL, NULL, media_player_volume_up) },
+ { GDBUS_METHOD("VolumeDown", NULL, NULL, media_player_volume_down) },
#else
{ GDBUS_METHOD("FastForward", NULL, NULL, media_player_fast_forward) },
{ GDBUS_METHOD("Rewind", NULL, NULL, media_player_rewind) },
int (*release_fast_forward) (struct media_player *mp, void *user_data);
int (*press_rewind) (struct media_player *mp, void *user_data);
int (*release_rewind) (struct media_player *mp, void *user_data);
+ int (*volume_up) (struct media_player *mp, void *user_data);
+ int (*volume_down) (struct media_player *mp, void *user_data);
#else
int (*fast_forward) (struct media_player *mp, void *user_data);
int (*rewind) (struct media_player *mp, void *user_data);