aboutsummaryrefslogtreecommitdiff
path: root/tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java
diff options
context:
space:
mode:
Diffstat (limited to 'tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java')
-rw-r--r--tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java101
1 files changed, 101 insertions, 0 deletions
diff --git a/tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java b/tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java
new file mode 100644
index 00000000..6ac95353
--- /dev/null
+++ b/tuner/sampletunertvinput/src/com/android/tv/samples/sampletunertvinput/SampleTunerTvInputService.java
@@ -0,0 +1,101 @@
+package com.android.tv.samples.sampletunertvinput;
+
+import android.content.Context;
+import android.media.tv.tuner.frontend.AtscFrontendSettings;
+import android.media.tv.tuner.frontend.FrontendSettings;
+import android.media.tv.tuner.Tuner;
+import android.media.tv.TvInputService;
+import android.net.Uri;
+import android.util.Log;
+import android.view.Surface;
+
+
+/** SampleTunerTvInputService */
+public class SampleTunerTvInputService extends TvInputService {
+ private static final String TAG = "SampleTunerTvInput";
+ private static final boolean DEBUG = true;
+
+ public static final String INPUT_ID =
+ "com.android.tv.samples.sampletunertvinput/.SampleTunerTvInputService";
+ private String mSessionId;
+
+ @Override
+ public TvInputSessionImpl onCreateSession(String inputId, String sessionId) {
+ TvInputSessionImpl session = new TvInputSessionImpl(this);
+ if (DEBUG) {
+ Log.d(TAG, "onCreateSession(inputId=" + inputId + ", sessionId=" + sessionId + ")");
+ }
+ mSessionId = sessionId;
+ return session;
+ }
+
+ @Override
+ public TvInputSessionImpl onCreateSession(String inputId) {
+ return new TvInputSessionImpl(this);
+ }
+
+ class TvInputSessionImpl extends Session {
+
+ private Surface surface;
+ private final Context mContext;
+ Tuner tuner;
+
+
+ public TvInputSessionImpl(Context context) {
+ super(context);
+ mContext = context;
+ }
+
+ @Override
+ public void onRelease() {
+ if (DEBUG) {
+ Log.d(TAG, "onRelease");
+ }
+ }
+
+ @Override
+ public boolean onSetSurface(Surface surface) {
+ if (DEBUG) {
+ Log.d(TAG, "onSetSurface");
+ }
+ this.surface = surface;
+ return true;
+ }
+
+ @Override
+ public void onSetStreamVolume(float v) {
+ if (DEBUG) {
+ Log.d(TAG, "onSetStreamVolume " + v);
+ }
+ }
+
+ @Override
+ public boolean onTune(Uri uri) {
+ if (DEBUG) {
+ Log.d(TAG, "onTune " + uri);
+ }
+ tuner = new Tuner(mContext, mSessionId,
+ TvInputService.PRIORITY_HINT_USE_CASE_TYPE_LIVE);
+
+ int feCount = tuner.getFrontendIds().size();
+ if (feCount <= 0) return false;
+
+ AtscFrontendSettings settings =
+ AtscFrontendSettings
+ .builder()
+ .setFrequency(2000)
+ .setModulation(AtscFrontendSettings.MODULATION_AUTO)
+ .build();
+ tuner.tune(settings);
+
+ return true;
+ }
+
+ @Override
+ public void onSetCaptionEnabled(boolean b) {
+ if (DEBUG) {
+ Log.d(TAG, "onSetCaptionEnabled " + b);
+ }
+ }
+ }
+} \ No newline at end of file