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

Commit 31a7d03e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Synchronizing the loudness codec dispatcher" into main am: 0a6265b3

parents 5ea4fb77 0a6265b3
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,