Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f0dd2e6 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Android (Google) Code Review
Browse files

Merge "Implement missing mute call." into oc-mr1-dev

parents 4562eceb b1a6fea5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@ class Tuner extends ITuner.Stub {
            @NonNull RadioManager.BandConfig config);
    private native RadioManager.BandConfig nativeGetConfiguration(long nativeContext, int region);

    private native void nativeSetMuted(long nativeContext, boolean mute);

    private native void nativeStep(long nativeContext, boolean directionDown, boolean skipSubChannel);
    private native void nativeScan(long nativeContext, boolean directionDown, boolean skipSubChannel);
    private native void nativeTune(long nativeContext, @NonNull ProgramSelector selector);
@@ -148,8 +150,7 @@ class Tuner extends ITuner.Stub {
            if (mIsMuted == mute) return;
            mIsMuted = mute;

            // TODO(b/62713378): notifify audio policy manager of media activity on radio audio
            // device. This task is pulled directly from previous implementation of native service.
            nativeSetMuted(mNativeContext, mute);
        }
    }

+12 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ struct TunerContext {
    bool mIsClosed = false;
    HalRevision mHalRev;
    bool mWithAudio;
    bool mIsAudioConnected = false;
    Band mBand;
    wp<V1_0::IBroadcastRadio> mHalModule;
    wp<V1_1::IBroadcastRadio> mHalModule11;
@@ -142,6 +143,8 @@ void HalDeathRecipient::serviceDied(uint64_t cookie __unused,
// TODO(b/62713378): implement support for multiple tuners open at the same time
static void notifyAudioService(TunerContext& ctx, bool connected) {
    if (!ctx.mWithAudio) return;
    if (ctx.mIsAudioConnected == connected) return;
    ctx.mIsAudioConnected = connected;

    ALOGD("Notifying AudioService about new state: %d", connected);
    auto token = IPCThreadState::self()->clearCallingIdentity();
@@ -265,6 +268,14 @@ static jobject nativeGetConfiguration(JNIEnv *env, jobject obj, jlong nativeCont
    return convert::BandConfigFromHal(env, halConfig, region).release();
}

static void nativeSetMuted(JNIEnv *env, jobject obj, jlong nativeContext, bool mute) {
    ALOGV("%s(%d)", __func__, mute);
    lock_guard<mutex> lk(gContextMutex);
    auto& ctx = getNativeContext(nativeContext);

    notifyAudioService(ctx, !mute);
}

static void nativeStep(JNIEnv *env, jobject obj, jlong nativeContext,
        bool directionDown, bool skipSubChannel) {
    ALOGV("%s", __func__);
@@ -497,6 +508,7 @@ static const JNINativeMethod gTunerMethods[] = {
            (void*)nativeSetConfiguration },
    { "nativeGetConfiguration", "(JI)Landroid/hardware/radio/RadioManager$BandConfig;",
            (void*)nativeGetConfiguration },
    { "nativeSetMuted", "(JZ)V", (void*)nativeSetMuted },
    { "nativeStep", "(JZZ)V", (void*)nativeStep },
    { "nativeScan", "(JZZ)V", (void*)nativeScan },
    { "nativeTune", "(JLandroid/hardware/radio/ProgramSelector;)V", (void*)nativeTune },