@@ -944,6 +944,80 @@ JNI_METHOD(jboolean, mediaPlayback_1skipBackward)
944
944
return (err == CHIP_NO_ERROR);
945
945
}
946
946
947
+ JNI_METHOD (jboolean, mediaPlayback_1previous)
948
+ (JNIEnv * env, jobject, jobject contentApp, jobject jResponseHandler)
949
+ {
950
+ return TvCastingAppJNIMgr ().runCastingServerCommand (
951
+ env, contentApp, jResponseHandler, " MediaPlayback_Previous" , MediaPlayback_Previous,
952
+ [](TargetEndpointInfo endpoint) -> CHIP_ERROR {
953
+ return CastingServer::GetInstance ()->MediaPlayback_Previous (&endpoint, [](CHIP_ERROR err) {
954
+ TvCastingAppJNIMgr ().getMediaCommandResponseHandler (MediaPlayback_Previous).Handle (err);
955
+ });
956
+ });
957
+ }
958
+
959
+ JNI_METHOD (jboolean, mediaPlayback_1rewind)
960
+ (JNIEnv * env, jobject, jobject contentApp, jobject jResponseHandler)
961
+ {
962
+ return TvCastingAppJNIMgr ().runCastingServerCommand (
963
+ env, contentApp, jResponseHandler, " MediaPlayback_Rewind" , MediaPlayback_Rewind,
964
+ [](TargetEndpointInfo endpoint) -> CHIP_ERROR {
965
+ return CastingServer::GetInstance ()->MediaPlayback_Rewind (&endpoint, [](CHIP_ERROR err) {
966
+ TvCastingAppJNIMgr ().getMediaCommandResponseHandler (MediaPlayback_Rewind).Handle (err);
967
+ });
968
+ });
969
+ }
970
+
971
+ JNI_METHOD (jboolean, mediaPlayback_1fastForward)
972
+ (JNIEnv * env, jobject, jobject contentApp, jobject jResponseHandler)
973
+ {
974
+ return TvCastingAppJNIMgr ().runCastingServerCommand (
975
+ env, contentApp, jResponseHandler, " MediaPlayback_FastForward" , MediaPlayback_FastForward,
976
+ [](TargetEndpointInfo endpoint) -> CHIP_ERROR {
977
+ return CastingServer::GetInstance ()->MediaPlayback_FastForward (&endpoint, [](CHIP_ERROR err) {
978
+ TvCastingAppJNIMgr ().getMediaCommandResponseHandler (MediaPlayback_FastForward).Handle (err);
979
+ });
980
+ });
981
+ }
982
+
983
+ JNI_METHOD (jboolean, mediaPlayback_1startOver)
984
+ (JNIEnv * env, jobject, jobject contentApp, jobject jResponseHandler)
985
+ {
986
+ return TvCastingAppJNIMgr ().runCastingServerCommand (
987
+ env, contentApp, jResponseHandler, " MediaPlayback_StartOver" , MediaPlayback_StartOver,
988
+ [](TargetEndpointInfo endpoint) -> CHIP_ERROR {
989
+ return CastingServer::GetInstance ()->MediaPlayback_StartOver (&endpoint, [](CHIP_ERROR err) {
990
+ TvCastingAppJNIMgr ().getMediaCommandResponseHandler (MediaPlayback_StartOver).Handle (err);
991
+ });
992
+ });
993
+ }
994
+
995
+ jboolean TvCastingAppJNI::runCastingServerCommand (JNIEnv * env, jobject contentApp, jobject jResponseHandler,
996
+ const char * commandName, MediaCommandName command,
997
+ const std::function<CHIP_ERROR(TargetEndpointInfo)> & commandRunner)
998
+ {
999
+ chip::DeviceLayer::StackLock lock;
1000
+
1001
+ ChipLogProgress (AppServer, " JNI_METHOD %s called" , commandName);
1002
+
1003
+ TargetEndpointInfo endpoint;
1004
+ CHIP_ERROR err = convertJContentAppToTargetEndpointInfo (contentApp, endpoint);
1005
+ VerifyOrExit (err == CHIP_NO_ERROR,
1006
+ ChipLogError (AppServer, " Conversion from jobject contentApp to TargetEndpointInfo * failed: %" CHIP_ERROR_FORMAT,
1007
+ err.Format ()));
1008
+
1009
+ err = TvCastingAppJNIMgr ().getMediaCommandResponseHandler (command).SetUp (env, jResponseHandler);
1010
+ VerifyOrExit (CHIP_NO_ERROR == err,
1011
+ ChipLogError (AppServer, " MatterCallbackHandlerJNI.SetUp failed %" CHIP_ERROR_FORMAT, err.Format ()));
1012
+
1013
+ err = commandRunner (endpoint);
1014
+ VerifyOrExit (CHIP_NO_ERROR == err,
1015
+ ChipLogError (AppServer, " CastingServer.%s failed %" CHIP_ERROR_FORMAT, commandName, err.Format ()));
1016
+
1017
+ exit :
1018
+ return (err == CHIP_NO_ERROR);
1019
+ }
1020
+
947
1021
JNI_METHOD (jboolean, mediaPlayback_1subscribeToCurrentState)
948
1022
(JNIEnv * env, jobject, jobject contentApp, jobject jReadSuccessHandler, jobject jReadFailureHandler, jint minInterval,
949
1023
jint maxInterval, jobject jSubscriptionEstablishedHandler)
0 commit comments