FORUMS
Remove All Ads from XDA

[APP] ThereTV . Streaming player compatible with the LocationFree protocol

59 posts
Thanks Meter: 17
 
By mgschwan, Member on 2nd February 2012, 11:42 PM
Post Reply Email Thread
4th November 2012, 06:35 PM |#91  
Junior Member
Flag TN
Thanks Meter: 0
 
More
Remote Control?
Is there any chance we are going to see the remote updated for ICS or Jellybean support?

---------- Post added at 01:35 PM ---------- Previous post was at 01:27 PM ----------

Are the remotes the same on the paid and the free version?
 
 
14th November 2012, 07:01 PM |#92  
Junior Member
Thanks Meter: 13
 
More
Hi,
I want to thank the author for this amazing app.
I've bought the donated version and it worked OK for me. But I wanted to use my remote (for Globo Opticum 4060cx SAT decoder). So I've done some research based on author's hints and managed to get the codes This has encouraged me to dig deeper I've reworked some classes in such way that:
  1. I've now got 16-button remote
  2. buttons are showing on my son's Asus TF300T running JB (with original version there was only black rectangle)
Here is a screenshot form the TF:



I've dropped voulume buttons because volume control is already on android device. I've added digits (to avoid using up/down buttons many times), EPG, EXIT and P/N buttons. P/N button is rather less universal - it switches my decoder from PAL to NTSC (in Poland we have PAL system but I've got NTSC LF version)

Here is the actual buttons png image:



and the coresponding LFXGLPlayer class code change (onTouchEvent method):

Code:
        float xf = motionevent.getX() / (float)getWidth();
        float yf = motionevent.getY() / (float)getHeight();
        if(motionevent.getAction() == 1)
            if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.22D && (double)yf > 0.02D)
                lfclient.sendButton("d1");
            else
            if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.22D && (double)yf > 0.02D)
                lfclient.sendButton("d2");
            else
            if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.22D && (double)yf > 0.02D)
                lfclient.sendButton("d3");
            else
            if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.22D && (double)yf > 0.02D)
                lfclient.sendButton("power");
            else
            if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.48D && (double)yf > 0.26D)
                lfclient.sendButton("d4");
            else
            if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.48D && (double)yf > 0.26D)
                lfclient.sendButton("d5");
            else
            if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.48D && (double)yf > 0.26D)
                lfclient.sendButton("d6");
            else
            if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.48D && (double)yf > 0.26D)
                lfclient.sendButton("pn");
            else
            if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.72D && (double)yf > 0.52D)
                lfclient.sendButton("d7");
            else
            if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.72D && (double)yf > 0.52D)
                lfclient.sendButton("d8");
            else
            if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.72D && (double)yf > 0.52D)
                lfclient.sendButton("d9");
            else
            if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.72D && (double)yf > 0.25D)
                lfclient.sendButton("epg");
            else
            if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.98D && (double)yf > 0.77D)
                lfclient.sendButton("channeldown");
            else
            if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.98D && (double)yf > 0.77D)
                lfclient.sendButton("d0");
            else
            if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.98D && (double)yf > 0.77D)
                lfclient.sendButton("channelup");
            else
            if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.98D && (double)yf > 0.77D)
                lfclient.sendButton("exit");
            else
            {
                renderer.showUI(false);
                requestRender();
            }
and the arrays.xml change:

Code:
    <string-array name="remotes">
                 ...
        <item>SV 360 elite</item>
        <item>Globo Opticum 4060cx</item>
    </string-array>
    <string-array name="remotenames">
                 ...
        <item>SV 360 elite</item>
        <item>4060cx</item>
    </string-array>
and finally remotecodes.xml changes:

Code:
	<set name="4060cx">
		<power>
			<on>AQAJCgEBBQAIQEAKAJk=</on>
			<off>AQABAgIC</off>
		</power>
		<channelup>
			<on>AQAJCgEBBQAIQEALAJo=</on>
			<off>AQABAgIC</off>
		</channelup>	
		<channeldown>
			<on>AQAJCgEBBQAIQEAOAJ0=</on>
			<off>AQABAgIC</off>
		</channeldown>	
		<volumedown>
			<on>AQAJCgEBBQAIQEAQAJ8=</on>
			<off>AQABAgIC</off>
		</volumedown>	
		<volumeup>
			<on>AQAJCgEBBQAIQEARAKA=</on>
			<off>AQABAgIC</off>
		</volumeup>	
		<d1>
			<on>AQAJCgEBBQAIQEABAJA=</on>
			<off>AQABAgIC</off>
		</d1>	
		<d2>
			<on>AQAJCgEBBQAIQEACAJE=</on>
			<off>AQABAgIC</off>
		</d2>	
		<d3>
			<on>AQAJCgEBBQAIQEADAJI=</on>
			<off>AQABAgIC</off>
		</d3>	
		<d4>
			<on>AQAJCgEBBQAIQEAEAJM=</on>
			<off>AQABAgIC</off>
		</d4>	
		<d5>
			<on>AQAJCgEBBQAIQEAFAJQ=</on>
			<off>AQABAgIC</off>
		</d5>	
		<d6>
			<on>AQAJCgEBBQAIQEAGAJU=</on>
			<off>AQABAgIC</off>
		</d6>	
		<d7>
			<on>AQAJCgEBBQAIQEAHAJY=</on>
			<off>AQABAgIC</off>
		</d7>	
		<d8>
			<on>AQAJCgEBBQAIQEAIAJc=</on>
			<off>AQABAgIC</off>
		</d8>	
		<d9>
			<on>AQAJCgEBBQAIQEAJAJg=</on>
			<off>AQABAgIC</off>
		</d9>	
		<d0>
			<on>AQAJCgEBBQAIQEAAAI8=</on>
			<off>AQABAgIC</off>
		</d0>	
		<pn>
			<on>AQAJCgEBBQAIQEAYAKc=</on>
			<off>AQABAgIC</off>
		</pn>	
		<epg>
			<on>AQAJCgEBBQAIQEBCANE=</on>
			<off>AQABAgIC</off>
		</epg>	
		<exit>
			<on>AQAJCgEBBQAIQEBBANA=</on>
			<off>AQABAgIC</off>
		</exit>	
	</set>
These changes allow us to have 16 buttons instead of 5.

The last change fixes (at least on the Asus tablet) black rectangle problem. It's done in OverlayImage class (loadTexture method):

Code:
//    Bitmap localBitmap = BitmapFactory.decodeResource(paramContext.getResources(), this.resourceID);
      Bitmap localBitmap = null;
      InputStream is = paramContext.getResources().openRawResource(this.resourceID);
      try {
    	  localBitmap = BitmapFactory.decodeStream(is);
      } finally {
          try {
              is.close();
              is = null;
          } catch(IOException e) {

          }
      }
I hope that the author won't blame me for this post and maybe will be so kind to use my findings in next versions

Sorry for my poor english

Regards
Kuba
The Following 2 Users Say Thank You to KF2007 For This Useful Post: [ View ] Gift KF2007 Ad-Free
11th December 2012, 12:28 PM |#93  
OP Member
Thanks Meter: 17
 
Donate to Me
More
@KF2007: I am impressed, and maybe I can integrate your bitmap changes in a generic way

As for the remote. I know I have been promising this for quite some time now so I won't give a timeline, but the code for additional buttons is almost finished. The new version will allow for more buttons and different layouts.

Michael
11th December 2012, 12:36 PM |#94  
Junior Member
Thanks Meter: 13
 
More
Cool. Thanks for the info and excelent application
11th December 2012, 08:33 PM |#95  
Junior Member
Thanks Meter: 1
 
More
Wow! I've been waiting for this for a long time. Thanks so much. The DirecTV remote works on my Galaxy Note 2, but I'd like to suggest that you add a few more essential buttons, or change the existing five to a more useful command set. Power is not really an essential, and if you need to keep it to 5 commands, I think up, down, menu, execute, and exit would be good choices. This would allow access to all of the DVR functions as well as allow those without DVRs to navigate the guide. Any plans to do this? I'd definitely donate if the remote had better functionality. Everything else is flawless, but until I can access my recorded programs list with the remote, Remote Media Center is a bit of a better solution for me. Let me know if you plan to tweak this, I'll fire off a donation. Thanks again!
11th December 2012, 09:10 PM |#96  
OP Member
Thanks Meter: 17
 
Donate to Me
More
@KF2007: I've just uploaded a new version that includes your remote. And also uses the new layout code, which allows me to add additional buttons aside from Vol+,Vol-,Ch+,Ch-,Power

Could you verify that it works?

Regards
Michael
11th December 2012, 09:12 PM |#97  
OP Member
Thanks Meter: 17
 
Donate to Me
More
@Turbo_987: Since extracting the remote commands is a bit tedious I would need to know which buttons are the most important (You can give me more than five buttons)

Regards
Michael
11th December 2012, 10:20 PM |#98  
Junior Member
Thanks Meter: 13
 
More
Quote:
Originally Posted by mgschwan

@KF2007: I've just uploaded a new version that includes your remote. And also uses the new layout code, which allows me to add additional buttons aside from Vol+,Vol-,Ch+,Ch-,Power

Could you verify that it works?

Works like a charm on my HTC Desire (haven't tested on my son's Asus TF300F as he has different google acount)
Thanks
11th December 2012, 10:32 PM |#99  
OP Member
Thanks Meter: 17
 
Donate to Me
More
Well today was quite an update marathon. The last and final version for today is 1.0.16 which has one big advantage. I've finally found time to compile the ffmpeg library with the arm v7a extensions. This should bring quite severe speed improvements and allow the highest quality settings on most tablets.

It would be great if someone could confirm this.

regads
Michael
11th December 2012, 10:41 PM |#100  
Junior Member
Thanks Meter: 13
 
More
I will as soon as the new version reaches Google Play (now it stays at version 1.0.13)
Version 1.0.13 works ok on Asus tablet too - I was able to test it because you updated the free version too
Edit:
The new version made MPEG playback slightly worse (regular pauses every few seconds) but enabled smooth H.264 playback ! At least on my son's Asus TF300F with all settings set to max quality.
12th December 2012, 10:36 AM |#101  
OP Member
Thanks Meter: 17
 
Donate to Me
More
Quote:
Originally Posted by KF2007

The new version made MPEG playback slightly worse (regular pauses every few seconds) but enabled smooth H.264 playback ! At least on my son's Asus TF300F with all settings set to max quality.

Hmm, that's strange, because the MPEG4 Playback on my XOOM improved considerably. But at least the H.264 improvement is a plus. Unfortunately I can't do a mixed version, it's either the old one or the new one.

I guess I have to wait for a few more performance reports and decide from that what to do.

Regards
Michael
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes