package com.iwedia.service.subtitle;
import android.os.RemoteException;
import android.util.Log;
import com.iwedia.comm.ISubtitleControl;
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;
import com.iwedia.dtv.subtitle.SubtitleType;
import com.iwedia.dtv.subtitle.SubtitleMode;
import com.iwedia.dtv.types.InternalException;
public class SubtitleControl extends ISubtitleControl.Stub implements
IDTVInterface {
public SubtitleControl() {
}
private final String LOG_TAG = "SubtitleControl";
@Override
public int getSubtitleLanguage() throws RemoteException {
return IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.getSubtitleTrackCount(
IWEDIAService.getInstance().getDtvManagerProxy()
.getCurrentLiveRoute());
}
@Override
public SubtitleType getSubtitleType() throws RemoteException {
return IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.getSubtitleType();
}
@Override
public boolean hide() throws RemoteException {
boolean state = true;
try {
IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.deselectCurrentSubtitleTrack(
IWEDIAService.getInstance().getDtvManagerProxy()
.getCurrentLiveRoute());
} catch (InternalException e) {
state = false;
e.printStackTrace();
}
SystemControl.broadcastSubtitleHide();
return state;
}
@Override
public boolean setSubtitleType(SubtitleType type) throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.setSubtitleType(type);
return true;
}
@Override
public boolean show() throws RemoteException {
if (IWEDIAService.DEBUG) {
Log.e(LOG_TAG, "show");
}
boolean state = false;
SystemControl.broadcastSubtitleShow();
return state;
}
@Override
public boolean setCurrentSubtitleTrack(int index) throws RemoteException {
try {
IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.setCurrentSubtitleTrack(
IWEDIAService.getInstance().getDtvManagerProxy()
.getCurrentLiveRoute(), index);
return true;
} catch (InternalException e) {
return false;
}
}
@Override
public int getCurrentSubtitleTrackIndex() throws RemoteException {
return IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.getCurrentSubtitleTrackIndex(
IWEDIAService.getInstance().getDtvManagerProxy()
.getCurrentLiveRoute());
}
@Override
public int getSubtitleTrackCount() throws RemoteException {
return IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.getSubtitleTrackCount(
IWEDIAService.getInstance().getDtvManagerProxy()
.getCurrentLiveRoute());
}
@Override
public String getSubtitleTrack(int index) throws RemoteException {
String languageToDisplay = LanguageManager.getInstance()
.convertTrigramsToLanguage(
IWEDIAService
.getInstance()
.getDTVManager()
.getSubtitleControl()
.getSubtitleTrack(
IWEDIAService.getInstance()
.getDtvManagerProxy()
.getCurrentLiveRoute(), index)
.getLanguage(), true);
return languageToDisplay;
}
/**
* Returns subtitle enabled.
*/
@Override
public boolean getSubtitleEnabled() throws RemoteException {
return IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.isAutomaticSubtitleDisplayEnabled();
}
/**
* Sets subtitle enabled state.
*/
@Override
public void setSubtitleEnabled(boolean state) throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.enableAutomaticSubtitleDisplay(state);
}
@Override
public void channelZapping(boolean status) {
}
@Override
public int getFirstSubtitleLanguage() throws RemoteException {
return IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.getFirstSubtitleLanguage();
}
@Override
public int getSecondSubtitleLanguage() throws RemoteException {
return IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.getSecondSubtitleLanguage();
}
@Override
public boolean setFirstSubtitleLanguage(int arg0) throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.setFirstSubtitleLanguage(arg0);
return true;
}
@Override
public boolean setSecondSubtitleLanguage(int arg0) throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.setSecondSubtitleLanguage(arg0);
return true;
}
@Override
public SubtitleMode getSubtitleMode() throws RemoteException {
return IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.getSubtitleMode();
}
@Override
public boolean setSubtitleMode(SubtitleMode mode) throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.setSubtitleMode(mode);
return true;
}
@Override
public boolean resetSubtitleSettings() throws RemoteException {
IWEDIAService.getInstance().getDTVManager().getSubtitleControl()
.resetSubtitleSettings();
return true;
}
}