{"id":78,"date":"2007-07-17T03:03:46","date_gmt":"2007-07-17T07:03:46","guid":{"rendered":"http:\/\/www.phildev.net\/phil\/newblog\/?p=78"},"modified":"2007-07-17T03:03:46","modified_gmt":"2007-07-17T07:03:46","slug":"","status":"publish","type":"post","link":"https:\/\/www.phildev.net\/phil\/blog\/?p=78","title":{"rendered":"Harmony software for Linux is here!"},"content":{"rendered":"<p>That&#8217;s right, as promised, there is now (rough) code to program your harmony in Linux! I can&#8217;t take credit for making it work. Kevin Timmerman did all the reverse-engineering to make it work, so much of the code is his. My contributions have been cleanup, de-windows-ifications (the code works in Windows and Linux, but was originally written for Windows), and various readability improvements. So the hard stuff like &#8220;oh, we need to send 0xA3 0x04&#8221; is Kevin. Like any of us, Kevin was hurrying to make it work, so clean-ups like &#8220;hmm, lets move those to defines&#8221; is me.<\/p>\n<p>In the next few days, all this code will be checked into source-code control on SourceForge (or similar).<\/p>\n<p>In the meantime, there isn&#8217;t a help message, or a whole lot of documentation. Compiling it (there are instructions for this!), and running &#8220;harmony &lt;file&gt;&#8221; where &lt;file&gt; is what you downloaded from the harmony site, should do the trick though.<\/p>\n<p>Currently it can do a Connectivity Test, update the remote&#8217;s program, and even learn IR codes from other remotes! A lot of UI and documentation work will come in the next few weeks &#8211; this just gets the code out there!<\/p>\n<p>The code can be found <a href=\"\/harmony\/harmony-0.6.tar.bz2\">here<\/a>! This version is the latest I received from Kevin plus a cleanups and documentation from me.<\/p>\n<p>By the time you read this, Kevin and I will both have plenty of changes pending. We are definitely looking for help and contributors, but I encourage you all to wait a week or so until we get this into public source-code control, and get some of our pending changes in. That should make it easier for us to apply patches and easier for you to not write patches we&#8217;ve already checked in.<\/p>\n<p>Still no word from Logitech.<\/p>\n<p><strong>Update 1<\/strong>: I&#8217;ve applied for a sourceforge project. Hopefully that will get approved tomorrow. I&#8217;ve also released <a href=\"\/harmony\/harmony-0.7.tar.bz2\">version 0.7<\/a> as well. This starts to factor out the very large main loop, adds a &#8211;help option, converts the code to use getopt, and adds some more documentation. Enjoy!<\/p>\n<p><strong>Update 2<\/strong>: <a href=\"\/harmony\/harmony-0.8.tar.bz2\">Version 0.8<\/a>! Finished factoring out harmony.cpp. Now we can do some neat things to make the UI better. Added a TODO file with some thoughts on the two possibilities for the new UI. Fixed up the help output. Added a few error messages. SF project not approved yet, but I&#8217;ll probably wait to make UI changes until I have that so I can use source-code control. Also, I&#8217;m not clear how cross-platform getopt is. We may need to include it in the distribution. Don&#8217;t think anything good is included with Windows for this.<\/p>\n<p><strong>Update 3<\/strong>: <a href=\"\/harmony\/harmony-0.9.tar.bz2\">Version 0.9<\/a>! Wow, we&#8217;re trucking along! This contains a bug fix (one of my changes caused filenames on the command line to get lost) and Windows getopt compatibility from Kevin. I did the UI re-write (finally), more re-factoring, and a much more verbose &#8211;help message. Finally, Kevin added a small program called &#8216;snoop&#8217; which takes SnoopyPro XML output and converts it to a text file with interpreted Harmony commands! Hopefully SourceForge will approve our project tomorrow.<\/p>\n<p><strong>Update 4<\/strong>: Our SF project was approved! See my <a href=\"http:\/\/www.phildev.net\/phil\/blog\/index.php?title=working_harmony_code_on_sourceforge&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1\"> recent post<\/a> for details!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>That&#8217;s right, as promised, there is now (rough) code to program your harmony in Linux! I can&#8217;t take credit for making it work. Kevin Timmerman did all the reverse-engineering to make it work, so much of the code is his. My contributions have been cleanup, de-windows-ifications (the code works in Windows and Linux, but was [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=\/wp\/v2\/posts\/78"}],"collection":[{"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=78"}],"version-history":[{"count":0,"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=\/wp\/v2\/posts\/78\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.phildev.net\/phil\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}