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

Commit a99624cb authored by Vlad Popa's avatar Vlad Popa Committed by Android (Google) Code Review
Browse files

Merge "Synchronizing the loudness codec dispatcher" into main

parents f1d48b54 3044debe
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -133,6 +133,9 @@ public class LoudnessCodecHelper {
    private static final EventLogger sLogger = new EventLogger(
            AudioService.LOG_NB_EVENTS_LOUDNESS_CODEC, "Loudness updates");

    private final Object mDispatcherLock = new Object();

    @GuardedBy("mDispatcherLock")
    private final LoudnessRemoteCallbackList mLoudnessUpdateDispatchers =
            new LoudnessRemoteCallbackList(this);

@@ -339,13 +342,17 @@ public class LoudnessCodecHelper {
    }

    void registerLoudnessCodecUpdatesDispatcher(ILoudnessCodecUpdatesDispatcher dispatcher) {
        synchronized (mDispatcherLock) {
            mLoudnessUpdateDispatchers.register(dispatcher, Binder.getCallingPid());
        }
    }

    void unregisterLoudnessCodecUpdatesDispatcher(
            ILoudnessCodecUpdatesDispatcher dispatcher) {
        synchronized (mDispatcherLock) {
            mLoudnessUpdateDispatchers.unregister(dispatcher);
        }
    }

    void startLoudnessCodecUpdates(int sessionId) {
        int pid = Binder.getCallingPid();
@@ -640,18 +647,21 @@ public class LoudnessCodecHelper {
            Log.d(TAG,
                    "dispatchNewLoudnessParameters: sessionId " + sessionId + " bundle: " + bundle);
        }
        synchronized (mDispatcherLock) {
            final int nbDispatchers = mLoudnessUpdateDispatchers.beginBroadcast();
            for (int i = 0; i < nbDispatchers; ++i) {
                try {
                    mLoudnessUpdateDispatchers.getBroadcastItem(i)
                            .dispatchLoudnessCodecParameterChange(sessionId, bundle);
                } catch (RemoteException e) {
                Log.e(TAG, "Error dispatching for sessionId " + sessionId + " bundle: " + bundle,
                    Log.e(TAG,
                            "Error dispatching for sessionId " + sessionId + " bundle: " + bundle,
                            e);
                }
            }
            mLoudnessUpdateDispatchers.finishBroadcast();
        }
    }

    @GuardedBy("mLock")
    private PersistableBundle getCodecBundle_l(int internalDeviceType,