# Java HME SDK fixes



## davidblackledge

I finally posted on hmedev . wikidot . com the latest complete set of "V49 Classes" that fix known problems with the SDK and make it easier to work with it.

They make it easy to set up an app in V49 TiVo environment using either the 1.4 or 1.4.1e SDK and Bananas classes.

All you have to do is use those three "V49"-prefixed classes in place of the three original classes: BApplication, BApplicationFactory, and IHmeProtocol.

They set up V49, fix known bugs, present missing constants (including keyboard constants), and make some things easier such as:

 presenting safe regions as Rectangle objects
 presenting regions that match the heading/logo/content areas of the standard loopset: backgrounds
 support a text-creation shortcut like the animation, color, image creation shortcuts in setResource (setResource("[0x000000]default-10.font:my text") )
 stores the DeviceInfo map and other useful data for later use.
 multipliers for the current resolution vs. SD.

http://hmedev.wikidot.com/v49-classes

If anybody out there wants to create Java Apps anymore... use this. Your life will be easier.

I'll keep adding to it as I learn other fixes.


----------



## moyekj

Thanks for posting these! Problem is I don't think I can really use them with streambaby since it is using HME bananas and bananas-plus libraries which extend the non-prefixed versions of the above. I guess to be able to use them I'd have to recompile all the base HME libraries and substitute the original non-prefixed class names with your version above. There probably is an easier way...


----------



## davidblackledge

moyekj said:


> Thanks for posting these! Problem is I don't think I can really use them with streambaby since it is using HME bananas and bananas-plus libraries which extend the non-prefixed versions of the above. I guess to be able to use them I'd have to recompile all the base HME libraries and substitute the original non-prefixed class names with your version above. There probably is an easier way...


Well, you could just merge the contents of these all into your streambaby Application and Factory classes... literally copy and paste the contents of the class, tweaking a few references, and merging some methods that you've already implemented.
V49IHmeProtocol is just an interface, so you can "implements" it to get easy access to the constants, still.

Not sure if there will be any problems with Bananas Plus, though.

It was really meant as a "whatever I can fix without touching the HME libraries" idea. If anything needs to change, maybe it would be getting this stuff merged into Bananas Plus.


----------



## dalabera

Help me understand something about the Java HME SDK, why in the first place it was developed to use java? 

I see so many programs using different programing languages (Pytivo - Python, KTTMG - Java, Another wrote a Ruby one, another wrote Vb.NET) and of course it all revolves around the developer preferences.

What would it take to convert this to a Native C code or a Windows DLL that could be use to create a C# or Vb.NET ?


----------



## davidblackledge

dalabera said:


> Help me understand something about the Java HME SDK, why in the first place it was developed to use java?


 You'd have to ask TiVo ;] Works for me, though! And it was probably the most widely available free programming environment at the time, I'm guessing.



> I see so many programs using different programing languages (Pytivo - Python, KTTMG - Java, Another wrote a Ruby one, another wrote Vb.NET) and of course it all revolves around the developer preferences.
> 
> What would it take to convert this to a Native C code or a Windows DLL that could be use to create a C# or Vb.NET ?


it would take reading this thread:
http://www.tivocommunity.com/tivo-vb/showthread.php?t=382139&highlight=dotnet+hme


----------



## davidblackledge

dalabera said:


> What would it take to convert this to a Native C code or a Windows DLL that could be use to create a C# or Vb.NET ?


Or did I misunderstand you, and you're talking about converting the "fixes" I posted? Most of it is fixes for issues in the Java SDK that aren't necessarily problems for others. It would just require understanding the SDKs and reading the docs in my fixes to see what might need to transfer. ... and somebody other than me writing the fixes for the other SDKs.


----------



## dalabera

davidblackledge said:


> You'd have to ask TiVo ;] Works for me, though! ]


ooh so it was TIVO that designed this HME SDK and released it 
under Java?


----------



## davidblackledge

dalabera said:


> ooh so it was TIVO that designed this HME SDK and released it
> under Java?


Yep. The sourceforge site even has "Copyright TiVo Inc" at the bottom. 
http://tivohme.sourceforge.net/
It's just apps.tv that they said they didn't own or operate.


----------



## jbcooley

dalabera said:


> What would it take to convert this to a Native C code or a Windows DLL that could be use to create a C# or Vb.NET ?


It's possible to write one from scratch following the spec. That's what I did. I recently started working on my project again due to the old google code site being shut down.

https://github.com/jbcooley/tivo-sdks


----------

