summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJungshik Jang <jayjang@google.com>2014-07-16 18:04:49 +0900
committerJungshik Jang <jayjang@google.com>2014-07-21 16:54:53 +0900
commita6b2a7a59ab79b2d91412c1095d1c49b8dc9d507 (patch)
tree661d44cbdc1e215ae00cf5ef194e7adc75a4a2be /services
parentf29511043e1c3bf750e28427410192c793363bf7 (diff)
downloadframeworks_base-a6b2a7a59ab79b2d91412c1095d1c49b8dc9d507.zip
frameworks_base-a6b2a7a59ab79b2d91412c1095d1c49b8dc9d507.tar.gz
frameworks_base-a6b2a7a59ab79b2d91412c1095d1c49b8dc9d507.tar.bz2
Add two apis for one touch record.
This change introduces new two apis for one touch record. 1. setRecordRequestListener It's used to get notified when a recorder device initiates "one touch record". As return of callback, client should generate "record source" and return it. 2. startRecord It's used to initiate "one touch record" from Tv. Along with this, add HdmiRecordSources which is a helper class assisting buidling byte array form from the given record source information. Bug: 16160962 Change-Id: I403d37b752c9b7f799c6d8188a071ef420fe8ac2
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/hdmi/Constants.java5
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiControlService.java11
-rw-r--r--services/core/java/com/android/server/hdmi/OneTouchRecordAction.java27
3 files changed, 40 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/hdmi/Constants.java b/services/core/java/com/android/server/hdmi/Constants.java
index 384cd4a..85c7747 100644
--- a/services/core/java/com/android/server/hdmi/Constants.java
+++ b/services/core/java/com/android/server/hdmi/Constants.java
@@ -206,5 +206,10 @@ final class Constants {
static final String PROPERTY_PREFERRED_ADDRESS_PLAYBACK = "hdmi_cec.prefaddr.playback";
static final String PROPERTY_PREFERRED_ADDRESS_TV = "hdmi_cec.prefaddr.tv";
+ static final int RECORDING_TYPE_DIGITAL_RF = 1;
+ static final int RECORDING_TYPE_ANALOGUE_RF = 2;
+ static final int RECORDING_TYPE_EXTERNAL_PHYSICAL_ADDRESS = 3;
+ static final int RECORDING_TYPE_OWN_SOURCE = 4;
+
private Constants() { /* cannot be instantiated */ }
}
diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 0239c83..560ee84 100644
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -32,6 +32,7 @@ import android.hardware.hdmi.IHdmiControlService;
import android.hardware.hdmi.IHdmiDeviceEventListener;
import android.hardware.hdmi.IHdmiHotplugEventListener;
import android.hardware.hdmi.IHdmiInputChangeListener;
+import android.hardware.hdmi.IHdmiRecordRequestListener;
import android.hardware.hdmi.IHdmiSystemAudioModeChangeListener;
import android.hardware.hdmi.IHdmiVendorCommandListener;
import android.media.AudioManager;
@@ -1010,6 +1011,16 @@ public final class HdmiControlService extends SystemService {
}
});
}
+
+ @Override
+ public void setRecordRequestListener(IHdmiRecordRequestListener listener) {
+ // TODO: implement this.
+ }
+
+ @Override
+ public void startRecord(int recorderAddress, byte[] recordSource) {
+ // TODO: implement this.
+ }
}
@ServiceThreadOnly
diff --git a/services/core/java/com/android/server/hdmi/OneTouchRecordAction.java b/services/core/java/com/android/server/hdmi/OneTouchRecordAction.java
index 7646027..51aa984 100644
--- a/services/core/java/com/android/server/hdmi/OneTouchRecordAction.java
+++ b/services/core/java/com/android/server/hdmi/OneTouchRecordAction.java
@@ -16,16 +16,23 @@
package com.android.server.hdmi;
+import static com.android.server.hdmi.Constants.RECORDING_TYPE_ANALOGUE_RF;
+import static com.android.server.hdmi.Constants.RECORDING_TYPE_DIGITAL_RF;
+import static com.android.server.hdmi.Constants.RECORDING_TYPE_EXTERNAL_PHYSICAL_ADDRESS;
+import static com.android.server.hdmi.Constants.RECORDING_TYPE_OWN_SOURCE;
+
/**
- * Feature action that performs one touch record.
- * This class only provides a skeleton of one touch play and has no detail implementaion.
+ * Feature action that performs one touch record. This class only provides a skeleton of one touch
+ * play and has no detail implementation.
*/
public class OneTouchRecordAction extends FeatureAction {
private final int mRecorderAddress;
+ private final int mRecordingType;
- OneTouchRecordAction(HdmiCecLocalDevice source, int recorderAddress) {
+ OneTouchRecordAction(HdmiCecLocalDevice source, int recorderAddress, int recordingType) {
super(source);
mRecorderAddress = recorderAddress;
+ mRecordingType = recordingType;
}
@Override
@@ -33,6 +40,20 @@ public class OneTouchRecordAction extends FeatureAction {
return false;
}
+ private void sendRecordOn(int recordingType) {
+ switch (recordingType) {
+ case RECORDING_TYPE_DIGITAL_RF:
+ break;
+ case RECORDING_TYPE_ANALOGUE_RF:
+ break;
+ case RECORDING_TYPE_EXTERNAL_PHYSICAL_ADDRESS:
+ break;
+ case RECORDING_TYPE_OWN_SOURCE:
+ break;
+ // TODO: implement this.
+ }
+ }
+
@Override
boolean processCommand(HdmiCecMessage cmd) {
return false;