diff --git a/.travis.yml b/.travis.yml index 103e7f0da..fa57ad41c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,7 @@ matrix: install: - test -f _install/host/protobuf.stamp || scripts/build-host -j$(nproc || sysctl -n hw.ncpu) $PWD/_install/host/protobuf.stamp +- if [ -e _git/toxcore ]; then (cd _git/toxcore && git pull); fi script: - scripts/build-$TARGET -j$(nproc || sysctl -n hw.ncpu) $GOAL diff --git a/BUILD b/BUILD index ec6638739..92568ee5c 100644 --- a/BUILD +++ b/BUILD @@ -1,4 +1,4 @@ -load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_test") +load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_library", "scala_test") load("@io_bazel_rules_scala//scala_proto:scala_proto.bzl", "scalapb_proto_library") genrule( @@ -201,3 +201,19 @@ scala_library( "@org_slf4j_slf4j_log4j12//jar", ], ) for src in glob(["src/test/java/**/*.java"])] + +[scala_binary( + name = src[src.rindex("/") + 1:-6], + testonly = True, + srcs = [src], + main_class = "im.tox.tox4j.impl.jni.codegen." + src[src.rindex("/") + 1:-6], + resources = glob([ + "src/test/resources/**/*", + ]), + deps = [ + ":codegen_lib", + ":jvm-toxcore-c", + "//jvm-toxcore-api", + "@com_google_guava_guava//jar", + ], +) for src in glob(["src/test/java/im/tox/tox4j/impl/jni/codegen/Jni*.scala"])] diff --git a/build.sbt b/build.sbt index 35aa1423b..ef106aee4 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ // General settings. organization := "org.toktok" name := "tox4j-c" -version := "0.1.5" +version := "0.1.6" scalaVersion := "2.11.12" bintrayVcsUrl := Some("https://github.com/TokTok/jvm-toxcore-c") diff --git a/cpp/src/ToxAv/av.cpp b/cpp/src/ToxAv/av.cpp index 5ba32c8e0..1c9fa6c8f 100644 --- a/cpp/src/ToxAv/av.cpp +++ b/cpp/src/ToxAv/av.cpp @@ -85,14 +85,27 @@ TOX_METHOD (void, CallControl, /* * Class: im_tox_tox4j_impl_ToxAvJni - * Method: toxavBitRateSet - * Signature: (IIII)V + * Method: toxavAudioSetBitRate + * Signature: (III)V */ -TOX_METHOD (void, BitRateSet, - jint instanceNumber, jint friendNumber, jint audioBitRate, jint videoBitRate) +TOX_METHOD (void, AudioSetBitRate, + jint instanceNumber, jint friendNumber, jint audioBitRate) +{ + return instances.with_instance_ign (env, instanceNumber, + toxav_audio_set_bit_rate, friendNumber, audioBitRate + ); +} + +/* + * Class: im_tox_tox4j_impl_ToxAvJni + * Method: toxavVideoSetBitRate + * Signature: (III)V + */ +TOX_METHOD (void, VideoSetBitRate, + jint instanceNumber, jint friendNumber, jint videoBitRate) { return instances.with_instance_ign (env, instanceNumber, - toxav_bit_rate_set, friendNumber, audioBitRate, videoBitRate + toxav_video_set_bit_rate, friendNumber, videoBitRate ); } diff --git a/cpp/src/ToxAv/generated/errors.cpp b/cpp/src/ToxAv/generated/errors.cpp index b06022296..c361add52 100644 --- a/cpp/src/ToxAv/generated/errors.cpp +++ b/cpp/src/ToxAv/generated/errors.cpp @@ -21,8 +21,7 @@ HANDLE ("BitRateSet", BIT_RATE_SET) success_case (BIT_RATE_SET); failure_case (BIT_RATE_SET, FRIEND_NOT_FOUND); failure_case (BIT_RATE_SET, FRIEND_NOT_IN_CALL); - failure_case (BIT_RATE_SET, INVALID_AUDIO_BIT_RATE); - failure_case (BIT_RATE_SET, INVALID_VIDEO_BIT_RATE); + failure_case (BIT_RATE_SET, INVALID_BIT_RATE); failure_case (BIT_RATE_SET, SYNC); } return unhandled (); diff --git a/cpp/src/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h b/cpp/src/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h index d85656293..507bfd3a0 100644 --- a/cpp/src/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h +++ b/cpp/src/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h @@ -73,11 +73,19 @@ JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_toxavCallControl /* * Class: im_tox_tox4j_impl_jni_ToxAvJni - * Method: toxavBitRateSet + * Method: toxavAudioSetBitRate * Signature: (IIII)V */ -JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_toxavBitRateSet - (JNIEnv *, jclass, jint, jint, jint, jint); +JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_toxavAudioSetBitRate + (JNIEnv *, jclass, jint, jint, jint); + +/* + * Class: im_tox_tox4j_impl_jni_ToxAvJni + * Method: toxavVideoSetBitRate + * Signature: (IIII)V + */ +JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_toxavVideoSetBitRate + (JNIEnv *, jclass, jint, jint, jint); /* * Class: im_tox_tox4j_impl_jni_ToxAvJni diff --git a/cpp/src/ToxAv/generated/natives.h b/cpp/src/ToxAv/generated/natives.h index ecfb54b5b..64f9f1ca2 100644 --- a/cpp/src/ToxAv/generated/natives.h +++ b/cpp/src/ToxAv/generated/natives.h @@ -3,8 +3,8 @@ JAVA_METHOD_REF (toxavAnswer) CXX_FUNCTION_REF (toxav_answer) JAVA_METHOD_REF (toxavAudioSendFrame) CXX_FUNCTION_REF (toxav_audio_send_frame) -JAVA_METHOD_REF (toxavBitRateSet) -CXX_FUNCTION_REF (toxav_bit_rate_set) +JAVA_METHOD_REF (toxavAudioSetBitRate) +CXX_FUNCTION_REF (toxav_audio_set_bit_rate) JAVA_METHOD_REF (toxavCall) CXX_FUNCTION_REF (toxav_call) JAVA_METHOD_REF (toxavCallControl) @@ -21,3 +21,5 @@ JAVA_METHOD_REF (toxavNew) CXX_FUNCTION_REF (toxav_new) JAVA_METHOD_REF (toxavVideoSendFrame) CXX_FUNCTION_REF (toxav_video_send_frame) +JAVA_METHOD_REF (toxavVideoSetBitRate) +CXX_FUNCTION_REF (toxav_video_set_bit_rate) diff --git a/cpp/src/ToxAv/lifecycle.cpp b/cpp/src/ToxAv/lifecycle.cpp index f40e010d2..863321c31 100644 --- a/cpp/src/ToxAv/lifecycle.cpp +++ b/cpp/src/ToxAv/lifecycle.cpp @@ -35,14 +35,23 @@ tox4j_call_state_cb (uint32_t friend_number, uint32_t state, Events *events) static void -tox4j_bit_rate_status_cb (uint32_t friend_number, - uint32_t audio_bit_rate, - uint32_t video_bit_rate, - Events *events) +tox4j_audio_bit_rate_cb (uint32_t friend_number, + uint32_t audio_bit_rate, + Events *events) { - auto msg = events->add_bit_rate_status (); + auto msg = events->add_audio_bit_rate (); msg->set_friend_number (friend_number); msg->set_audio_bit_rate (audio_bit_rate); +} + + +static void +tox4j_video_bit_rate_cb (uint32_t friend_number, + uint32_t video_bit_rate, + Events *events) +{ + auto msg = events->add_video_bit_rate (); + msg->set_friend_number (friend_number); msg->set_video_bit_rate (video_bit_rate); } @@ -179,17 +188,34 @@ TOX_METHOD (void, Finalize, /* * Class: im_tox_tox4j_impl_jni_ToxAvJni - * Method: invokeBitRateStatus - * Signature: (IIII)V + * Method: invokeAudioBitRate + * Signature: (III)V + */ +JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_invokeAudioBitRate + (JNIEnv *env, jclass, jint instanceNumber, jint friendNumber, jint audioBitRate) +{ + return instances.with_instance (env, instanceNumber, + [=] (ToxAV *av, Events &events) + { + assert (av != nullptr); + tox4j_audio_bit_rate_cb (friendNumber, audioBitRate, &events); + } + ); +} + +/* + * Class: im_tox_tox4j_impl_jni_ToxAvJni + * Method: invokeVideoBitRate + * Signature: (III)V */ -JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_invokeBitRateStatus - (JNIEnv *env, jclass, jint instanceNumber, jint friendNumber, jint audioBitRate, jint videoBitRate) +JNIEXPORT void JNICALL Java_im_tox_tox4j_impl_jni_ToxAvJni_invokeVideoBitRate + (JNIEnv *env, jclass, jint instanceNumber, jint friendNumber, jint videoBitRate) { return instances.with_instance (env, instanceNumber, [=] (ToxAV *av, Events &events) { assert (av != nullptr); - tox4j_bit_rate_status_cb (friendNumber, audioBitRate, videoBitRate, &events); + tox4j_video_bit_rate_cb (friendNumber, videoBitRate, &events); } ); } diff --git a/cpp/src/tox/generated/av.h b/cpp/src/tox/generated/av.h index c5696e2c6..6aef4c57d 100644 --- a/cpp/src/tox/generated/av.h +++ b/cpp/src/tox/generated/av.h @@ -1,10 +1,12 @@ +// im.tox.tox4j.av.callbacks.AudioBitRateCallback#audioBitRate +CALLBACK (audio_bit_rate) // im.tox.tox4j.av.callbacks.AudioReceiveFrameCallback#audioReceiveFrame CALLBACK (audio_receive_frame) -// im.tox.tox4j.av.callbacks.BitRateStatusCallback#bitRateStatus -CALLBACK (bit_rate_status) // im.tox.tox4j.av.callbacks.CallCallback#call CALLBACK (call) // im.tox.tox4j.av.callbacks.CallStateCallback#callState CALLBACK (call_state) +// im.tox.tox4j.av.callbacks.VideoBitRateCallback#videoBitRate +CALLBACK (video_bit_rate) // im.tox.tox4j.av.callbacks.VideoReceiveFrameCallback#videoReceiveFrame CALLBACK (video_receive_frame) diff --git a/scripts/dependencies.mk b/scripts/dependencies.mk index 1ded62f95..e08d1387b 100644 --- a/scripts/dependencies.mk +++ b/scripts/dependencies.mk @@ -38,6 +38,7 @@ $(SRCDIR)/toxcore: git clone --depth=1 https://github.com/TokTok/c-toxcore $@; \ fi +$(TOOLCHAIN)/toxcore.stamp: $(foreach f,$(shell cd $(SRCDIR)/toxcore && git ls-files),$(SRCDIR)/toxcore/$f) $(TOOLCHAIN)/toxcore.stamp: $(SRCDIR)/toxcore $(TOOLCHAIN_FILE) $(foreach i,libsodium opus libvpx,$(TOOLCHAIN)/$i.stamp) @$(PRE_RULE) mkdir -p $(BUILDDIR)/$(notdir $<) diff --git a/src/main/java/im/tox/tox4j/impl/jni/ToxAvEventDispatch.scala b/src/main/java/im/tox/tox4j/impl/jni/ToxAvEventDispatch.scala index 49f6b206b..f564b7e33 100644 --- a/src/main/java/im/tox/tox4j/impl/jni/ToxAvEventDispatch.scala +++ b/src/main/java/im/tox/tox4j/impl/jni/ToxAvEventDispatch.scala @@ -66,12 +66,21 @@ object ToxAvEventDispatch { } } - private def dispatchBitRateStatus[S](handler: BitRateStatusCallback[S], bitRateStatus: Seq[BitRateStatus])(state: S): S = { - bitRateStatus.foldLeft(state) { - case (state, BitRateStatus(friendNumber, audioBitRate, videoBitRate)) => - handler.bitRateStatus( + private def dispatchAudioBitRate[S](handler: AudioBitRateCallback[S], audioBitRate: Seq[AudioBitRate])(state: S): S = { + audioBitRate.foldLeft(state) { + case (state, AudioBitRate(friendNumber, audioBitRate)) => + handler.audioBitRate( + ToxFriendNumber.unsafeFromInt(friendNumber), + BitRate.unsafeFromInt(audioBitRate) + )(state) + } + } + + private def dispatchVideoBitRate[S](handler: VideoBitRateCallback[S], videoBitRate: Seq[VideoBitRate])(state: S): S = { + videoBitRate.foldLeft(state) { + case (state, VideoBitRate(friendNumber, videoBitRate)) => + handler.videoBitRate( ToxFriendNumber.unsafeFromInt(friendNumber), - BitRate.unsafeFromInt(audioBitRate), BitRate.unsafeFromInt(videoBitRate) )(state) } @@ -136,7 +145,8 @@ object ToxAvEventDispatch { (state |> dispatchCall(handler, events.call) |> dispatchCallState(handler, events.callState) - |> dispatchBitRateStatus(handler, events.bitRateStatus) + |> dispatchAudioBitRate(handler, events.audioBitRate) + |> dispatchVideoBitRate(handler, events.videoBitRate) |> dispatchAudioReceiveFrame(handler, events.audioReceiveFrame) |> dispatchVideoReceiveFrame(handler, events.videoReceiveFrame)) } diff --git a/src/main/java/im/tox/tox4j/impl/jni/ToxAvImpl.scala b/src/main/java/im/tox/tox4j/impl/jni/ToxAvImpl.scala index bbadb9872..6d0b87c00 100644 --- a/src/main/java/im/tox/tox4j/impl/jni/ToxAvImpl.scala +++ b/src/main/java/im/tox/tox4j/impl/jni/ToxAvImpl.scala @@ -77,8 +77,12 @@ final class ToxAvImpl(@NotNull private val tox: ToxCoreImpl) extends ToxAv { ToxAvJni.toxavCallControl(instanceNumber, friendNumber.value, control.ordinal) @throws[ToxavBitRateSetException] - override def setBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate): Unit = - ToxAvJni.toxavBitRateSet(instanceNumber, friendNumber.value, audioBitRate.value, videoBitRate.value) + override def setAudioBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate): Unit = + ToxAvJni.toxavAudioSetBitRate(instanceNumber, friendNumber.value, audioBitRate.value) + + @throws[ToxavBitRateSetException] + override def setVideoBitRate(friendNumber: ToxFriendNumber, videoBitRate: BitRate): Unit = + ToxAvJni.toxavVideoSetBitRate(instanceNumber, friendNumber.value, videoBitRate.value) @throws[ToxavSendFrameException] override def audioSendFrame( @@ -102,8 +106,10 @@ final class ToxAvImpl(@NotNull private val tox: ToxCoreImpl) extends ToxAv { def invokeAudioReceiveFrame(friendNumber: ToxFriendNumber, pcm: Array[Short], channels: AudioChannels, samplingRate: SamplingRate): Unit = ToxAvJni.invokeAudioReceiveFrame(instanceNumber, friendNumber.value, pcm, channels.value, samplingRate.value) - def invokeBitRateStatus(friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate): Unit = - ToxAvJni.invokeBitRateStatus(instanceNumber, friendNumber.value, audioBitRate.value, videoBitRate.value) + def invokeAudioBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate): Unit = + ToxAvJni.invokeAudioBitRate(instanceNumber, friendNumber.value, audioBitRate.value) + def invokeVideoBitRate(friendNumber: ToxFriendNumber, videoBitRate: BitRate): Unit = + ToxAvJni.invokeVideoBitRate(instanceNumber, friendNumber.value, videoBitRate.value) def invokeCall(friendNumber: ToxFriendNumber, audioEnabled: Boolean, videoEnabled: Boolean): Unit = ToxAvJni.invokeCall(instanceNumber, friendNumber.value, audioEnabled, videoEnabled) def invokeCallState(friendNumber: ToxFriendNumber, callState: util.EnumSet[ToxavFriendCallState]): Unit = diff --git a/src/main/java/im/tox/tox4j/impl/jni/ToxAvJni.java b/src/main/java/im/tox/tox4j/impl/jni/ToxAvJni.java index e24943394..1d769c4f2 100644 --- a/src/main/java/im/tox/tox4j/impl/jni/ToxAvJni.java +++ b/src/main/java/im/tox/tox4j/impl/jni/ToxAvJni.java @@ -20,7 +20,8 @@ public final class ToxAvJni { static native void toxavCall(int instanceNumber, int friendNumber, int audioBitRate, int videoBitRate) throws ToxavCallException; static native void toxavAnswer(int instanceNumber, int friendNumber, int audioBitRate, int videoBitRate) throws ToxavAnswerException; static native void toxavCallControl(int instanceNumber, int friendNumber, int control) throws ToxavCallControlException; - static native void toxavBitRateSet(int instanceNumber, int friendNumber, int audioBitRate, int videoBitRate) throws ToxavBitRateSetException; + static native void toxavAudioSetBitRate(int instanceNumber, int friendNumber, int audioBitRate) throws ToxavBitRateSetException; + static native void toxavVideoSetBitRate(int instanceNumber, int friendNumber, int videoBitRate) throws ToxavBitRateSetException; static native void toxavAudioSendFrame( int instanceNumber, @@ -37,7 +38,8 @@ static native void toxavVideoSendFrame( ) throws ToxavSendFrameException; static native void invokeAudioReceiveFrame(int instanceNumber, int friendNumber, short[] pcm, int channels, int samplingRate); - static native void invokeBitRateStatus(int instanceNumber, int friendNumber, int audioBitRate, int videoBitRate); + static native void invokeAudioBitRate(int instanceNumber, int friendNumber, int audioBitRate); + static native void invokeVideoBitRate(int instanceNumber, int friendNumber, int videoBitRate); static native void invokeCall(int instanceNumber, int friendNumber, boolean audioEnabled, boolean videoEnabled); static native void invokeCallState(int instanceNumber, int friendNumber, int callState); @SuppressWarnings("checkstyle:parametername") diff --git a/src/main/protobuf/Av.proto b/src/main/protobuf/Av.proto index fddb3f569..1eee8e923 100644 --- a/src/main/protobuf/Av.proto +++ b/src/main/protobuf/Av.proto @@ -23,10 +23,14 @@ message CallState { repeated Kind call_state = 2; } -message BitRateStatus { +message AudioBitRate { uint32 friend_number = 1; uint32 audio_bit_rate = 2; - uint32 video_bit_rate = 3; +} + +message VideoBitRate { + uint32 friend_number = 1; + uint32 video_bit_rate = 2; } message AudioReceiveFrame { @@ -52,7 +56,8 @@ message VideoReceiveFrame { message AvEvents { repeated Call call = 1; repeated CallState call_state = 2; - repeated BitRateStatus bit_rate_status = 3; - repeated AudioReceiveFrame audio_receive_frame = 4; - repeated VideoReceiveFrame video_receive_frame = 5; + repeated AudioBitRate audio_bit_rate = 3; + repeated VideoBitRate video_bit_rate = 4; + repeated AudioReceiveFrame audio_receive_frame = 5; + repeated VideoReceiveFrame video_receive_frame = 6; } diff --git a/src/test/java/im/tox/tox4j/av/callbacks/AvInvokeTest.scala b/src/test/java/im/tox/tox4j/av/callbacks/AvInvokeTest.scala index f3f2b6304..7bc1d2f84 100644 --- a/src/test/java/im/tox/tox4j/av/callbacks/AvInvokeTest.scala +++ b/src/test/java/im/tox/tox4j/av/callbacks/AvInvokeTest.scala @@ -29,7 +29,8 @@ final class AvInvokeTest extends FunSuite with PropertyChecks { // scalastyle:off line.size.limit override def audioReceiveFrame(friendNumber: ToxFriendNumber, pcm: Array[Short], channels: AudioChannels, samplingRate: SamplingRate)(state: Option[Event]): Option[Event] = setEvent(AudioReceiveFrame(friendNumber, pcm, channels, samplingRate))(state) - override def bitRateStatus(friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate)(state: Option[Event]): Option[Event] = setEvent(BitRateStatus(friendNumber, audioBitRate, videoBitRate))(state) + override def audioBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate)(state: Option[Event]): Option[Event] = setEvent(AudioBitRate(friendNumber, audioBitRate))(state) + override def videoBitRate(friendNumber: ToxFriendNumber, videoBitRate: BitRate)(state: Option[Event]): Option[Event] = setEvent(VideoBitRate(friendNumber, videoBitRate))(state) override def call(friendNumber: ToxFriendNumber, audioEnabled: Boolean, videoEnabled: Boolean)(state: Option[Event]): Option[Event] = setEvent(Call(friendNumber, audioEnabled, videoEnabled))(state) override def callState(friendNumber: ToxFriendNumber, callState: util.EnumSet[ToxavFriendCallState])(state: Option[Event]): Option[Event] = setEvent(CallState(friendNumber, callState.asScala.toSet))(state) override def videoReceiveFrame(friendNumber: ToxFriendNumber, width: Width, height: Height, y: Array[Byte], u: Array[Byte], v: Array[Byte], yStride: Int, uStride: Int, vStride: Int)(state: Option[Event]): Option[Event] = setEvent(VideoReceiveFrame(friendNumber, width, height, y, u, v, yStride, uStride, vStride))(state) @@ -110,11 +111,20 @@ final class AvInvokeTest extends FunSuite with PropertyChecks { } } - test("BitRateStatus") { - forAll { (friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate) => + test("AudioBitRate") { + forAll { (friendNumber: ToxFriendNumber, audioBitRate: BitRate) => callbackTest( - _.invokeBitRateStatus(friendNumber, audioBitRate, videoBitRate), - BitRateStatus(friendNumber, audioBitRate, videoBitRate) + _.invokeAudioBitRate(friendNumber, audioBitRate), + AudioBitRate(friendNumber, audioBitRate) + ) + } + } + + test("VideoBitRate") { + forAll { (friendNumber: ToxFriendNumber, videoBitRate: BitRate) => + callbackTest( + _.invokeVideoBitRate(friendNumber, videoBitRate), + VideoBitRate(friendNumber, videoBitRate) ) } } @@ -160,9 +170,10 @@ final class AvInvokeTest extends FunSuite with PropertyChecks { object AvInvokeTest { sealed trait Event + private final case class AudioBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate) extends Event private final case class AudioReceiveFrame(friendNumber: ToxFriendNumber, pcm: ShortArray, channels: AudioChannels, samplingRate: SamplingRate) extends Event - private final case class BitRateStatus(friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate) extends Event private final case class Call(friendNumber: ToxFriendNumber, audioEnabled: Boolean, videoEnabled: Boolean) extends Event private final case class CallState(friendNumber: ToxFriendNumber, callState: Set[ToxavFriendCallState]) extends Event + private final case class VideoBitRate(friendNumber: ToxFriendNumber, videoBitRate: BitRate) extends Event private final case class VideoReceiveFrame(friendNumber: ToxFriendNumber, width: Width, height: Height, y: ByteArray, u: ByteArray, v: ByteArray, yStride: Int, uStride: Int, vStride: Int) extends Event // scalastyle:ignore line.size.limit } diff --git a/src/test/java/im/tox/tox4j/av/callbacks/audio/AudioReceiveFrameCallbackTest.scala b/src/test/java/im/tox/tox4j/av/callbacks/audio/AudioReceiveFrameCallbackTest.scala index db2871b07..f956ad2d9 100644 --- a/src/test/java/im/tox/tox4j/av/callbacks/audio/AudioReceiveFrameCallbackTest.scala +++ b/src/test/java/im/tox/tox4j/av/callbacks/audio/AudioReceiveFrameCallbackTest.scala @@ -105,8 +105,13 @@ final class AudioReceiveFrameCallbackTest extends AutoTestSuite with ToxExceptio state.addTask(sendFrame(friendNumber)) } - override def bitRateStatus(friendNumber: ToxFriendNumber, audioBitRate: BitRate, videoBitRate: BitRate)(state: State): State = { - debug(state, s"Bit rate in call with ${state.id(friendNumber)} should change to $audioBitRate for audio and $videoBitRate for video") + override def audioBitRate(friendNumber: ToxFriendNumber, audioBitRate: BitRate)(state: State): State = { + debug(state, s"Bit rate in call with ${state.id(friendNumber)} should change to $audioBitRate for audio") + state + } + + override def videoBitRate(friendNumber: ToxFriendNumber, videoBitRate: BitRate)(state: State): State = { + debug(state, s"Bit rate in call with ${state.id(friendNumber)} should change to $videoBitRate for video") state }