diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 6564d52..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4c60d6d..1354098 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + package="eu.danman.zidostreamer.zidostreamer" + android:sharedUserId="android.uid.system"> diff --git a/app/src/main/java/eu/danman/zidostreamer/zidostreamer/MainActivity.java b/app/src/main/java/eu/danman/zidostreamer/zidostreamer/MainActivity.java index c42e161..4009e0b 100644 --- a/app/src/main/java/eu/danman/zidostreamer/zidostreamer/MainActivity.java +++ b/app/src/main/java/eu/danman/zidostreamer/zidostreamer/MainActivity.java @@ -1,29 +1,45 @@ package eu.danman.zidostreamer.zidostreamer; +import android.app.Activity; import android.content.Intent; import android.os.StrictMode; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; +import android.view.SurfaceHolder; +import android.view.SurfaceView; + +import com.mstar.android.tv.TvCommonManager; +import com.mstar.android.tvapi.common.TvManager; +import com.mstar.android.tvapi.common.exception.TvCommonException; +import com.mstar.android.tvapi.common.vo.TvOsType; public class MainActivity extends ActionBarActivity { + SurfaceView surfaceView = null; + SurfaceHolder mSurfaceHolder = null; + SurfaceHolder.Callback callback = null; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -// setContentView(R.layout.activity_main); + setContentView(R.layout.activity_main); // StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); // StrictMode.setThreadPolicy(policy); + surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView); +// showHdmiOnSurfaceView(); + Intent service = new Intent(this, StreamService.class); startService(service); @@ -35,6 +51,7 @@ protected void onCreate(Bundle savedInstanceState) { } + @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. @@ -56,4 +73,84 @@ public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } + + + public static void changeInputSource(TvOsType.EnumInputSource eis) + { + + TvCommonManager commonService = TvCommonManager.getInstance(); + if (commonService != null) + { + TvOsType.EnumInputSource currentSource = commonService.getCurrentInputSource(); + if (currentSource != null) + { + if (currentSource.equals(eis)) + { + return; + } + + commonService.setInputSource(eis); + } + + } + + } + + + public static boolean isHDMIinput() + { + boolean bRet = false; + try + { + changeInputSource(TvOsType.EnumInputSource.E_INPUT_SOURCE_HDMI); + bRet = TvManager.getInstance().getPlayerManager().isSignalStable(); + } catch (TvCommonException e) + { + e.printStackTrace(); + } + return bRet; + } + + private void showHdmiOnSurfaceView() + { + mSurfaceHolder = surfaceView.getHolder(); + callback = new android.view.SurfaceHolder.Callback() + { + + @Override + public void surfaceDestroyed(SurfaceHolder holder) + { + } + + @Override + public void surfaceCreated(SurfaceHolder holder) + { + + try + { + if (holder == null || holder.getSurface() == null || holder.getSurface().isValid() == false) + { + return; + } + if (TvManager.getInstance() != null) + { + TvManager.getInstance().getPlayerManager().setDisplay(mSurfaceHolder); + } + } catch (TvCommonException e) + { + e.printStackTrace(); + } + } + + @Override + public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) + { + } + }; + mSurfaceHolder.addCallback((android.view.SurfaceHolder.Callback) callback); + mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); + + + } + } diff --git a/app/src/main/java/eu/danman/zidostreamer/zidostreamer/StreamService.java b/app/src/main/java/eu/danman/zidostreamer/zidostreamer/StreamService.java index 443aa40..11a7079 100644 --- a/app/src/main/java/eu/danman/zidostreamer/zidostreamer/StreamService.java +++ b/app/src/main/java/eu/danman/zidostreamer/zidostreamer/StreamService.java @@ -5,9 +5,17 @@ import android.content.ContextWrapper; import android.content.Intent; import android.os.IBinder; +import android.os.SystemClock; import android.system.ErrnoException; import android.util.Log; +import com.mstar.android.tv.TvCommonManager; +import com.mstar.android.tvapi.common.PictureManager; +import com.mstar.android.tvapi.common.TvManager; +import com.mstar.android.tvapi.common.exception.TvCommonException; +import com.mstar.android.tvapi.common.vo.EnumScalerWindow; +import com.mstar.android.tvapi.common.vo.TvOsType; +import com.mstar.android.tvapi.common.vo.VideoWindowType; import com.mstar.hdmirecorder.HdmiRecorder; import java.io.File; @@ -57,10 +65,48 @@ public StreamService() { } + public static void changeInputSource(TvOsType.EnumInputSource eis) + { + + TvCommonManager commonService = TvCommonManager.getInstance(); + if (commonService != null) + { + TvOsType.EnumInputSource currentSource = commonService.getCurrentInputSource(); + if (currentSource != null) + { + if (currentSource.equals(eis)) + { + return; + } + + commonService.setInputSource(eis); + } + + } + + } + + public static boolean enableHDMI() + { + boolean bRet = false; + try + { + changeInputSource(TvOsType.EnumInputSource.E_INPUT_SOURCE_HDMI); + bRet = TvManager.getInstance().getPlayerManager().isSignalStable(); + } catch (TvCommonException e) + { + e.printStackTrace(); + } + return bRet; + } + @Override public int onStartCommand(Intent intent, int flags, int startId) { - //TODO do something useful + //TODO do something + + + enableHDMI(); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f7158b8..404770a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,11 +1,19 @@ + android:layout_height="match_parent" + tools:context=".MainActivity"> + + + android:layout_height="wrap_content" + android:id="@+id/textView" /> diff --git a/signed.apk b/signed.apk index bddff65..69d41da 100644 Binary files a/signed.apk and b/signed.apk differ