Loading media/java/android/media/quality/MediaQualityManager.java +26 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,32 @@ public final class MediaQualityManager { } } /** * Gets current picture profile instance for TV input. * @hide */ public PictureProfile getCurrentPictureProfileForTvInput(String inputId) { try { return mService.getCurrentPictureProfileForTvInput( inputId, mUserHandle.getIdentifier()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets all picture profiles instance for TV input. * @hide */ public List<PictureProfile> getAllPictureProfilesForTvInput(String inputId) { try { return mService.getAllPictureProfilesForTvInput( inputId, mUserHandle.getIdentifier()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets sound profile handle by profile ID. * @hide Loading media/java/android/media/quality/aidl/android/media/quality/IMediaQualityManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ interface IMediaQualityManager { void notifyPictureProfileHandleSelection(in long handle, int userId); long getPictureProfileForTvInput(in String inputId, int userId); PictureProfile getCurrentPictureProfileForTvInput(in String inputId, int userId); List<PictureProfile> getAllPictureProfilesForTvInput(in String inputId, int userId); void createSoundProfile(in SoundProfile pp, int userId); void updateSoundProfile(in String id, in SoundProfile pp, int userId); Loading services/core/java/com/android/server/media/quality/MediaQualityService.java +42 −0 Original line number Diff line number Diff line Loading @@ -666,6 +666,48 @@ public class MediaQualityService extends SystemService { } } public PictureProfile getCurrentPictureProfileForTvInput(String inputId, int userId) { long profileHandle = getPictureProfileForTvInput(inputId, userId); if (profileHandle == -1) { return null; } return mMqDatabaseUtils.getPictureProfile(profileHandle); } public List<PictureProfile> getAllPictureProfilesForTvInput(String inputId, int userId) { // TODO: cache profiles int callingUid = Binder.getCallingUid(); int callingPid = Binder.getCallingPid(); if (!hasGlobalPictureQualityServicePermission(callingUid, callingPid)) { mMqManagerNotifier.notifyOnPictureProfileError( null, PictureProfile.ERROR_NO_PERMISSION, callingUid, callingPid); } String[] columns = {BaseParameters.PARAMETER_ID}; String selection = BaseParameters.PARAMETER_TYPE + " = ? AND " + BaseParameters.PARAMETER_INPUT_ID + " = ?"; String[] selectionArguments = { Integer.toString(PictureProfile.TYPE_SYSTEM), inputId }; List<PictureProfile> profiles = new ArrayList<>(); synchronized (mPictureProfileLock) { try (Cursor cursor = mMqDatabaseUtils.getCursorAfterQuerying( mMediaQualityDbHelper.PICTURE_QUALITY_TABLE_NAME, columns, selection, selectionArguments)) { int count = cursor.getCount(); if (count == 0) { return profiles; } cursor.moveToFirst(); while (cursor.moveToNext()) { profiles.add(MediaQualityUtils.convertCursorToPictureProfileWithTempId( cursor, mPictureProfileTempIdMap)); } return profiles; } } } @GuardedBy("mSoundProfileLock") @Override public List<SoundProfileHandle> getSoundProfileHandle(String[] ids, int userId) { Loading Loading
media/java/android/media/quality/MediaQualityManager.java +26 −0 Original line number Diff line number Diff line Loading @@ -429,6 +429,32 @@ public final class MediaQualityManager { } } /** * Gets current picture profile instance for TV input. * @hide */ public PictureProfile getCurrentPictureProfileForTvInput(String inputId) { try { return mService.getCurrentPictureProfileForTvInput( inputId, mUserHandle.getIdentifier()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets all picture profiles instance for TV input. * @hide */ public List<PictureProfile> getAllPictureProfilesForTvInput(String inputId) { try { return mService.getAllPictureProfilesForTvInput( inputId, mUserHandle.getIdentifier()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Gets sound profile handle by profile ID. * @hide Loading
media/java/android/media/quality/aidl/android/media/quality/IMediaQualityManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ interface IMediaQualityManager { void notifyPictureProfileHandleSelection(in long handle, int userId); long getPictureProfileForTvInput(in String inputId, int userId); PictureProfile getCurrentPictureProfileForTvInput(in String inputId, int userId); List<PictureProfile> getAllPictureProfilesForTvInput(in String inputId, int userId); void createSoundProfile(in SoundProfile pp, int userId); void updateSoundProfile(in String id, in SoundProfile pp, int userId); Loading
services/core/java/com/android/server/media/quality/MediaQualityService.java +42 −0 Original line number Diff line number Diff line Loading @@ -666,6 +666,48 @@ public class MediaQualityService extends SystemService { } } public PictureProfile getCurrentPictureProfileForTvInput(String inputId, int userId) { long profileHandle = getPictureProfileForTvInput(inputId, userId); if (profileHandle == -1) { return null; } return mMqDatabaseUtils.getPictureProfile(profileHandle); } public List<PictureProfile> getAllPictureProfilesForTvInput(String inputId, int userId) { // TODO: cache profiles int callingUid = Binder.getCallingUid(); int callingPid = Binder.getCallingPid(); if (!hasGlobalPictureQualityServicePermission(callingUid, callingPid)) { mMqManagerNotifier.notifyOnPictureProfileError( null, PictureProfile.ERROR_NO_PERMISSION, callingUid, callingPid); } String[] columns = {BaseParameters.PARAMETER_ID}; String selection = BaseParameters.PARAMETER_TYPE + " = ? AND " + BaseParameters.PARAMETER_INPUT_ID + " = ?"; String[] selectionArguments = { Integer.toString(PictureProfile.TYPE_SYSTEM), inputId }; List<PictureProfile> profiles = new ArrayList<>(); synchronized (mPictureProfileLock) { try (Cursor cursor = mMqDatabaseUtils.getCursorAfterQuerying( mMediaQualityDbHelper.PICTURE_QUALITY_TABLE_NAME, columns, selection, selectionArguments)) { int count = cursor.getCount(); if (count == 0) { return profiles; } cursor.moveToFirst(); while (cursor.moveToNext()) { profiles.add(MediaQualityUtils.convertCursorToPictureProfileWithTempId( cursor, mPictureProfileTempIdMap)); } return profiles; } } } @GuardedBy("mSoundProfileLock") @Override public List<SoundProfileHandle> getSoundProfileHandle(String[] ids, int userId) { Loading