aboutsummaryrefslogtreecommitdiff
path: root/usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java
diff options
context:
space:
mode:
Diffstat (limited to 'usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java')
-rw-r--r--usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java60
1 files changed, 24 insertions, 36 deletions
diff --git a/usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java b/usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java
index cb25cfec..a24b6146 100644
--- a/usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java
+++ b/usbtuner/src/com/android/usbtuner/tvinput/BaseTunerTvInputService.java
@@ -16,44 +16,40 @@
package com.android.usbtuner.tvinput;
-import android.os.Handler;
+import android.media.tv.TvInputService;
import android.util.Log;
import com.google.android.exoplayer.audio.AudioCapabilities;
import com.google.android.exoplayer.audio.AudioCapabilitiesReceiver;
-import com.android.tv.common.recording.RecordingTvInputService;
-import com.android.tv.common.recording.TvRecording;
-import com.android.usbtuner.exoplayer.CacheManager;
+import com.android.usbtuner.exoplayer.cache.CacheManager;
import java.util.Collections;
import java.util.Set;
import java.util.WeakHashMap;
/**
- * {@link BaseTunerTvInputService} serves TV channels coming from a usb tuner device.
+ * {@link BaseTunerTvInputService} serves TV channels coming from a tuner device.
*/
-public abstract class BaseTunerTvInputService extends RecordingTvInputService
+public abstract class BaseTunerTvInputService extends TvInputService
implements AudioCapabilitiesReceiver.Listener {
private static final String TAG = "BaseTunerTvInputService";
private static final boolean DEBUG = false;
// WeakContainer for {@link TvInputSessionImpl}
- private final Set<TvInputSessionImpl> mTvInputSessions = Collections.newSetFromMap(
- new WeakHashMap<TvInputSessionImpl, Boolean>());
+ private final Set<TunerSession> mTunerSessions = Collections.newSetFromMap(
+ new WeakHashMap<TunerSession, Boolean>());
private ChannelDataManager mChannelDataManager;
private AudioCapabilitiesReceiver mAudioCapabilitiesReceiver;
private AudioCapabilities mAudioCapabilities;
- protected CacheManager mCacheManager;
+ private CacheManager mCacheManager;
@Override
public void onCreate() {
super.onCreate();
- if (DEBUG) {
- Log.d(TAG, "onCreate");
- }
+ if (DEBUG) Log.d(TAG, "onCreate");
mChannelDataManager = new ChannelDataManager(getApplicationContext());
mAudioCapabilitiesReceiver = new AudioCapabilitiesReceiver(getApplicationContext(), this);
mAudioCapabilitiesReceiver.register();
- maybeInitCacheManager();
+ mCacheManager = createCacheManager();
if (mCacheManager == null) {
Log.i(TAG, "Trickplay is disabled");
} else {
@@ -61,13 +57,14 @@ public abstract class BaseTunerTvInputService extends RecordingTvInputService
}
}
- protected abstract void maybeInitCacheManager();
+ /**
+ * Creates {@CacheManager}. It returns null, if storage in not enough.
+ */
+ protected abstract CacheManager createCacheManager();
@Override
public void onDestroy() {
- if (DEBUG) {
- Log.d(TAG, "onDestroy");
- }
+ if (DEBUG) Log.d(TAG, "onDestroy");
super.onDestroy();
mChannelDataManager.release();
mAudioCapabilitiesReceiver.unregister();
@@ -77,36 +74,27 @@ public abstract class BaseTunerTvInputService extends RecordingTvInputService
}
@Override
- public TvRecording.RecordingSession onCreateDvrSession(String inputId) {
- return new RecordingSessionImpl(this, inputId, mChannelDataManager);
+ public RecordingSession onCreateRecordingSession(String inputId) {
+ return new TunerRecordingSession(this, inputId, mChannelDataManager);
}
@Override
- public RecordingTvInputService.PlaybackSession onCreatePlaybackSession(String inputId) {
- if (DEBUG) {
- Log.d(TAG, "onCreateSession");
- }
- final TvInputSessionImpl session = new TvInputSessionImpl(
+ public Session onCreateSession(String inputId) {
+ if (DEBUG) Log.d(TAG, "onCreateSession");
+ final TunerSession session = new TunerSession(
this, mChannelDataManager, mCacheManager);
- mTvInputSessions.add(session);
- session.notifyAudioCapabilitiesChanged(mAudioCapabilities);
- new Handler().post(new Runnable() {
- @Override
- public void run() {
- // STOPSHIP(DVR): Session methods cannot be called inside onCreatePlaybackSession.
- // If DvrSession is added in API. we can call them inside onCreatePlaybackSession.
- session.setOverlayViewEnabled(true);
- }
- });
+ mTunerSessions.add(session);
+ session.setAudioCapabilities(mAudioCapabilities);
+ session.setOverlayViewEnabled(true);
return session;
}
@Override
public void onAudioCapabilitiesChanged(AudioCapabilities audioCapabilities) {
mAudioCapabilities = audioCapabilities;
- for (TvInputSessionImpl session : mTvInputSessions) {
+ for (TunerSession session : mTunerSessions) {
if (!session.isReleased()) {
- session.notifyAudioCapabilitiesChanged(audioCapabilities);
+ session.setAudioCapabilities(audioCapabilities);
}
}
}