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

Commit 9ae3fe48 authored by Jungshik Jang's avatar Jungshik Jang Committed by Android Git Automerger
Browse files

am 09035486: Merge "Add recorder address to all recording listerner apis." into lmp-mr1-dev

* commit '09035486':
  Add recorder address to all recording listerner apis.
parents 6a98dde8 09035486
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -39,6 +39,8 @@ public abstract class HdmiRecordListener {
    /**
    /**
     * Called when one touch record is started or failed during initialization.
     * Called when one touch record is started or failed during initialization.
     *
     *
     * @param recorderAddress An address of recorder that reports result of one touch record
     *            request
     * @param result result code. For more details, please look at all constants starting with
     * @param result result code. For more details, please look at all constants starting with
     *            "ONE_TOUCH_RECORD_". Only
     *            "ONE_TOUCH_RECORD_". Only
     *            {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_CURRENTLY_SELECTED_SOURCE},
     *            {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_CURRENTLY_SELECTED_SOURCE},
@@ -47,15 +49,17 @@ public abstract class HdmiRecordListener {
     *            {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_EXTERNAL_INPUT} mean normal
     *            {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_EXTERNAL_INPUT} mean normal
     *            start of recording; otherwise, describes failure.
     *            start of recording; otherwise, describes failure.
     */
     */
    public void onOneTouchRecordResult(int result) {
    public void onOneTouchRecordResult(int recorderAddress, int result) {
    }
    }


    /**
    /**
     * Called when timer recording is started or failed during initialization.
     * Called when timer recording is started or failed during initialization.
     *
     *
     * @param recorderAddress An address of recorder that reports result of timer recording
     *            request
     * @param data timer status data. For more details, look at {@link TimerStatusData}.
     * @param data timer status data. For more details, look at {@link TimerStatusData}.
     */
     */
    public void onTimerRecordingResult(TimerStatusData data) {
    public void onTimerRecordingResult(int recorderAddress, TimerStatusData data) {
    }
    }


    /**
    /**
@@ -230,6 +234,8 @@ public abstract class HdmiRecordListener {
    /**
    /**
     * Called when receiving result for clear timer recording request.
     * Called when receiving result for clear timer recording request.
     *
     *
     * @param recorderAddress An address of recorder that reports result of clear timer recording
     *            request
     * @param result result of clear timer. It should be one of
     * @param result result of clear timer. It should be one of
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_RECORDING}
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_RECORDING}
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_NO_MATCHING},
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_NO_MATCHING},
@@ -239,6 +245,6 @@ public abstract class HdmiRecordListener {
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE},
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE},
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_CEC_DISABLE}.
     *            {@link HdmiControlManager#CLEAR_TIMER_STATUS_CEC_DISABLE}.
     */
     */
    public void onClearTimerRecordingResult(int result) {
    public void onClearTimerRecordingResult(int recorderAddress, int result) {
    }
    }
}
}
+6 −6
Original line number Original line Diff line number Diff line
@@ -226,19 +226,19 @@ public final class HdmiTvClient extends HdmiClient {
            }
            }


            @Override
            @Override
            public void onOneTouchRecordResult(int result) {
            public void onOneTouchRecordResult(int recorderAddress, int result) {
                callback.onOneTouchRecordResult(result);
                callback.onOneTouchRecordResult(recorderAddress, result);
            }
            }


            @Override
            @Override
            public void onTimerRecordingResult(int result) {
            public void onTimerRecordingResult(int recorderAddress, int result) {
                callback.onTimerRecordingResult(
                callback.onTimerRecordingResult(recorderAddress,
                        HdmiRecordListener.TimerStatusData.parseFrom(result));
                        HdmiRecordListener.TimerStatusData.parseFrom(result));
            }
            }


            @Override
            @Override
            public void onClearTimerRecordingResult(int result) {
            public void onClearTimerRecordingResult(int recorderAddress, int result) {
                callback.onClearTimerRecordingResult(result);
                callback.onClearTimerRecordingResult(recorderAddress, result);
            }
            }
        };
        };
    }
    }
+11 −5
Original line number Original line Diff line number Diff line
@@ -31,19 +31,25 @@ package android.hardware.hdmi;
     /**
     /**
      * Called when one touch record is started or failed during initialization.
      * Called when one touch record is started or failed during initialization.
      *
      *
      * @param recorderAddress An address of recorder that reports result of one touch record
      *            request
      * @param result result code for one touch record
      * @param result result code for one touch record
      */
      */
     void onOneTouchRecordResult(int result);
     void onOneTouchRecordResult(int recorderAddress, int result);
     /**
     /**
      * Called when timer recording is started or failed during initialization.
      * Called when timer recording is started or failed during initialization.

      *
      * @param recorderAddress An address of recorder that reports result of timer recording
      *            request
      * @param result result code for timer recording
      * @param result result code for timer recording
      */
      */
     void onTimerRecordingResult(int result);
     void onTimerRecordingResult(int recorderAddress, int result);
     /**
     /**
      * Called when receiving result for clear timer recording request.
      * Called when receiving result for clear timer recording request.
      *
      *
      * @param result result of clear timer.
      * @param recorderAddress An address of recorder that reports result of clear timer recording
      *            request
      * @param result result of clear timer
      */
      */
     void onClearTimerRecordingResult(int result);
     void onClearTimerRecordingResult(int recorderAddress, int result);
 }
 }
 No newline at end of file
+30 −20
Original line number Original line Diff line number Diff line
@@ -1029,6 +1029,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
            OneTouchRecordAction action = actions.get(0);
            OneTouchRecordAction action = actions.get(0);
            if (action.getRecorderAddress() != message.getSource()) {
            if (action.getRecorderAddress() != message.getSource()) {
                announceOneTouchRecordResult(
                announceOneTouchRecordResult(
                        message.getSource(),
                        HdmiControlManager.ONE_TOUCH_RECORD_PREVIOUS_RECORDING_IN_PROGRESS);
                        HdmiControlManager.ONE_TOUCH_RECORD_PREVIOUS_RECORDING_IN_PROGRESS);
            }
            }
            return super.handleRecordTvScreen(message);
            return super.handleRecordTvScreen(message);
@@ -1047,20 +1048,20 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
    protected boolean handleTimerClearedStatus(HdmiCecMessage message) {
    protected boolean handleTimerClearedStatus(HdmiCecMessage message) {
        byte[] params = message.getParams();
        byte[] params = message.getParams();
        int timerClearedStatusData = params[0] & 0xFF;
        int timerClearedStatusData = params[0] & 0xFF;
        announceTimerRecordingResult(timerClearedStatusData);
        announceTimerRecordingResult(message.getSource(), timerClearedStatusData);
        return true;
        return true;
    }
    }


    void announceOneTouchRecordResult(int result) {
    void announceOneTouchRecordResult(int recorderAddress, int result) {
        mService.invokeOneTouchRecordResult(result);
        mService.invokeOneTouchRecordResult(recorderAddress, result);
    }
    }


    void announceTimerRecordingResult(int result) {
    void announceTimerRecordingResult(int recorderAddress, int result) {
        mService.invokeTimerRecordingResult(result);
        mService.invokeTimerRecordingResult(recorderAddress, result);
    }
    }


    void announceClearTimerRecordingResult(int result) {
    void announceClearTimerRecordingResult(int recorderAddress, int result) {
        mService.invokeClearTimerRecordingResult(result);
        mService.invokeClearTimerRecordingResult(recorderAddress, result);
    }
    }


    private boolean isMessageForSystemAudio(HdmiCecMessage message) {
    private boolean isMessageForSystemAudio(HdmiCecMessage message) {
@@ -1528,19 +1529,21 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        assertRunOnServiceThread();
        assertRunOnServiceThread();
        if (!mService.isControlEnabled()) {
        if (!mService.isControlEnabled()) {
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            announceOneTouchRecordResult(ONE_TOUCH_RECORD_CEC_DISABLED);
            announceOneTouchRecordResult(recorderAddress, ONE_TOUCH_RECORD_CEC_DISABLED);
            return Constants.ABORT_NOT_IN_CORRECT_MODE;
            return Constants.ABORT_NOT_IN_CORRECT_MODE;
        }
        }


        if (!checkRecorder(recorderAddress)) {
        if (!checkRecorder(recorderAddress)) {
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            announceOneTouchRecordResult(ONE_TOUCH_RECORD_CHECK_RECORDER_CONNECTION);
            announceOneTouchRecordResult(recorderAddress,
                    ONE_TOUCH_RECORD_CHECK_RECORDER_CONNECTION);
            return Constants.ABORT_NOT_IN_CORRECT_MODE;
            return Constants.ABORT_NOT_IN_CORRECT_MODE;
        }
        }


        if (!checkRecordSource(recordSource)) {
        if (!checkRecordSource(recordSource)) {
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            announceOneTouchRecordResult(ONE_TOUCH_RECORD_FAIL_TO_RECORD_DISPLAYED_SCREEN);
            announceOneTouchRecordResult(recorderAddress,
                    ONE_TOUCH_RECORD_FAIL_TO_RECORD_DISPLAYED_SCREEN);
            return Constants.ABORT_UNABLE_TO_DETERMINE;
            return Constants.ABORT_UNABLE_TO_DETERMINE;
        }
        }


@@ -1555,13 +1558,14 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        assertRunOnServiceThread();
        assertRunOnServiceThread();
        if (!mService.isControlEnabled()) {
        if (!mService.isControlEnabled()) {
            Slog.w(TAG, "Can not stop one touch record. CEC control is disabled.");
            Slog.w(TAG, "Can not stop one touch record. CEC control is disabled.");
            announceOneTouchRecordResult(ONE_TOUCH_RECORD_CEC_DISABLED);
            announceOneTouchRecordResult(recorderAddress, ONE_TOUCH_RECORD_CEC_DISABLED);
            return;
            return;
        }
        }


        if (!checkRecorder(recorderAddress)) {
        if (!checkRecorder(recorderAddress)) {
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            announceOneTouchRecordResult(ONE_TOUCH_RECORD_CHECK_RECORDER_CONNECTION);
            announceOneTouchRecordResult(recorderAddress,
                    ONE_TOUCH_RECORD_CHECK_RECORDER_CONNECTION);
            return;
            return;
        }
        }


@@ -1587,13 +1591,14 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        assertRunOnServiceThread();
        assertRunOnServiceThread();
        if (!mService.isControlEnabled()) {
        if (!mService.isControlEnabled()) {
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            announceTimerRecordingResult(TIMER_RECORDING_RESULT_EXTRA_CEC_DISABLED);
            announceTimerRecordingResult(recorderAddress,
                    TIMER_RECORDING_RESULT_EXTRA_CEC_DISABLED);
            return;
            return;
        }
        }


        if (!checkRecorder(recorderAddress)) {
        if (!checkRecorder(recorderAddress)) {
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            announceTimerRecordingResult(
            announceTimerRecordingResult(recorderAddress,
                    TIMER_RECORDING_RESULT_EXTRA_CHECK_RECORDER_CONNECTION);
                    TIMER_RECORDING_RESULT_EXTRA_CHECK_RECORDER_CONNECTION);
            return;
            return;
        }
        }
@@ -1601,6 +1606,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        if (!checkTimerRecordingSource(sourceType, recordSource)) {
        if (!checkTimerRecordingSource(sourceType, recordSource)) {
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            announceTimerRecordingResult(
            announceTimerRecordingResult(
                    recorderAddress,
                    TIMER_RECORDING_RESULT_EXTRA_FAIL_TO_RECORD_SELECTED_SOURCE);
                    TIMER_RECORDING_RESULT_EXTRA_FAIL_TO_RECORD_SELECTED_SOURCE);
            return;
            return;
        }
        }
@@ -1621,26 +1627,29 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        assertRunOnServiceThread();
        assertRunOnServiceThread();
        if (!mService.isControlEnabled()) {
        if (!mService.isControlEnabled()) {
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            Slog.w(TAG, "Can not start one touch record. CEC control is disabled.");
            announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_CEC_DISABLE);
            announceClearTimerRecordingResult(recorderAddress, CLEAR_TIMER_STATUS_CEC_DISABLE);
            return;
            return;
        }
        }


        if (!checkRecorder(recorderAddress)) {
        if (!checkRecorder(recorderAddress)) {
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            Slog.w(TAG, "Invalid recorder address:" + recorderAddress);
            announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION);
            announceClearTimerRecordingResult(recorderAddress,
                    CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION);
            return;
            return;
        }
        }


        if (!checkTimerRecordingSource(sourceType, recordSource)) {
        if (!checkTimerRecordingSource(sourceType, recordSource)) {
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            Slog.w(TAG, "Invalid record source." + Arrays.toString(recordSource));
            announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
            announceClearTimerRecordingResult(recorderAddress,
                    CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
            return;
            return;
        }
        }


        sendClearTimerMessage(recorderAddress, sourceType, recordSource);
        sendClearTimerMessage(recorderAddress, sourceType, recordSource);
    }
    }


    private void sendClearTimerMessage(int recorderAddress, int sourceType, byte[] recordSource) {
    private void sendClearTimerMessage(final int recorderAddress, int sourceType,
            byte[] recordSource) {
        HdmiCecMessage message = null;
        HdmiCecMessage message = null;
        switch (sourceType) {
        switch (sourceType) {
            case TIMER_RECORDING_TYPE_DIGITAL:
            case TIMER_RECORDING_TYPE_DIGITAL:
@@ -1657,7 +1666,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
                break;
                break;
            default:
            default:
                Slog.w(TAG, "Invalid source type:" + recorderAddress);
                Slog.w(TAG, "Invalid source type:" + recorderAddress);
                announceClearTimerRecordingResult(CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
                announceClearTimerRecordingResult(recorderAddress,
                        CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
                return;
                return;


        }
        }
@@ -1665,7 +1675,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
            @Override
            @Override
            public void onSendCompleted(int error) {
            public void onSendCompleted(int error) {
                if (error != Constants.SEND_RESULT_SUCCESS) {
                if (error != Constants.SEND_RESULT_SUCCESS) {
                    announceClearTimerRecordingResult(
                    announceClearTimerRecordingResult(recorderAddress,
                            CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
                            CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE);
                }
                }
            }
            }
+7 −6
Original line number Original line Diff line number Diff line
@@ -1661,11 +1661,11 @@ public final class HdmiControlService extends SystemService {
        }
        }
    }
    }


    void invokeOneTouchRecordResult(int result) {
    void invokeOneTouchRecordResult(int recorderAddress, int result) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mRecordListenerRecord != null) {
            if (mRecordListenerRecord != null) {
                try {
                try {
                    mRecordListenerRecord.mListener.onOneTouchRecordResult(result);
                    mRecordListenerRecord.mListener.onOneTouchRecordResult(recorderAddress, result);
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.w(TAG, "Failed to call onOneTouchRecordResult.", e);
                    Slog.w(TAG, "Failed to call onOneTouchRecordResult.", e);
                }
                }
@@ -1673,11 +1673,11 @@ public final class HdmiControlService extends SystemService {
        }
        }
    }
    }


    void invokeTimerRecordingResult(int result) {
    void invokeTimerRecordingResult(int recorderAddress, int result) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mRecordListenerRecord != null) {
            if (mRecordListenerRecord != null) {
                try {
                try {
                    mRecordListenerRecord.mListener.onTimerRecordingResult(result);
                    mRecordListenerRecord.mListener.onTimerRecordingResult(recorderAddress, result);
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.w(TAG, "Failed to call onTimerRecordingResult.", e);
                    Slog.w(TAG, "Failed to call onTimerRecordingResult.", e);
                }
                }
@@ -1685,11 +1685,12 @@ public final class HdmiControlService extends SystemService {
        }
        }
    }
    }


    void invokeClearTimerRecordingResult(int result) {
    void invokeClearTimerRecordingResult(int recorderAddress, int result) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mRecordListenerRecord != null) {
            if (mRecordListenerRecord != null) {
                try {
                try {
                    mRecordListenerRecord.mListener.onClearTimerRecordingResult(result);
                    mRecordListenerRecord.mListener.onClearTimerRecordingResult(recorderAddress,
                            result);
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.w(TAG, "Failed to call onClearTimerRecordingResult.", e);
                    Slog.w(TAG, "Failed to call onClearTimerRecordingResult.", e);
                }
                }
Loading