package com.iwedia.service.teletext; import android.os.RemoteException; import android.util.Log; import com.iwedia.comm.ITeletextControl; import com.iwedia.dtv.dtvmanager.DTVManager; import com.iwedia.comm.teletext.TeletextMode; import com.iwedia.dtv.teletext.TeletextTrack; import com.iwedia.dtv.types.InternalException; import com.iwedia.dtv.types.UserControl; import com.iwedia.service.IWEDIAService; import com.iwedia.service.proxyservice.IDTVInterface; import com.iwedia.service.system.SystemControl; import com.iwedia.service.system.language_and_keyboard.LanguageManager; public class TeletextControl extends ITeletextControl.Stub implements IDTVInterface { private static final boolean DEBUG = true; private static final String LOG_TAG = "TeletextControl"; private final int TELETEXT_TRANSPARENCY_OFF = 0; private final int TELETEXT_TRANSPARENCY = 255; private TeletextMode teletextMode = TeletextMode.OFF; public boolean sendInputControl(int key, UserControl ctrl) throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "sendInputControl(" + ctrl + ", " + key + ")"); } IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .sendInputControl( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute(), ctrl, key); return true; } public boolean getTeletextState() throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "getTeletextState()"); } return false; } public boolean setCurrentTeletextTrack(int index) throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "setCurrentTeletextTrack(" + index + ")"); } try { IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .setCurrentTeletextTrack( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute(), index); return true; } catch (InternalException e) { return false; } } public boolean deselectCurrentTeletextTrack() throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "deselectCurrentTeletextTrack"); } try { IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .deselectCurrentTeletextTrack( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute()); return true; } catch (InternalException e) { return false; } } public int getCurrentTeletextTrackIndex() throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "getCurrentTeletextTrackIndex()"); } return IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .getCurrentTeletextTrackIndex( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute()); } public TeletextMode getTeletextMode() throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "getTeletextMode()"); } return teletextMode; } public boolean setTeletextMode(TeletextMode mode) throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "setTeletextMode(" + mode + ")"); } this.teletextMode = mode; return true; } public TeletextTrack getTeletextTrack(int index) throws RemoteException { TeletextTrack track = IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .getTeletextTrack( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute(), index); String languageToDisplay = LanguageManager.getInstance() .convertTrigramsToLanguage(track.getLanguage(), true); return new TeletextTrack(track, languageToDisplay); } public int getTeletextTrackCount() throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "getTeletextTrackCount()"); } return IWEDIAService .getInstance() .getDTVManager() .getTeletextControl() .getTeletextTrackCount( IWEDIAService.getInstance().getDtvManagerProxy() .getCurrentLiveRoute()); } @Override public void channelZapping(boolean status) { // TODO Auto-generated method stub } @Override public int getFirstTeletextLanguage() throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getTeletextControl() .getFirstTeletextLanguage(); } @Override public int getSecondTeletextLanguage() throws RemoteException { return IWEDIAService.getInstance().getDTVManager().getTeletextControl() .getSecondTeletextLanguage(); } @Override public boolean setFirstTeletextLanguage(int arg0) throws RemoteException { IWEDIAService.getInstance().getDTVManager().getTeletextControl() .setFirstTeletextLanguage(arg0); return true; } @Override public boolean setSecondTeletextLanguage(int arg0) throws RemoteException { IWEDIAService.getInstance().getDTVManager().getTeletextControl() .setSecondTeletextLanguage(arg0); return true; } @Override public boolean setTeletextBgAlpha(int alpha) throws RemoteException { if (DEBUG) { Log.e(LOG_TAG, "setTeletextBgAlpha (" + alpha + ")"); } IWEDIAService.getInstance().getDTVManager().getTeletextControl() .setTeletextBgAlpha(alpha); return true; } }