Galleon 2.3.0 just released

Discussion in 'TiVo Home Media Features & TiVoToGo' started by MMG, Apr 16, 2006.

  1. diamondsw

    diamondsw Member

    76
    0
    Sep 16, 2004
    Chicago

    Advertisements

    I've started playing with Galleon 2.3, as I've been trying anything to get movies streamed from my MacBook Pro over to my Tivo.

    I've tried:
    • tivoserver-0.4.3 - doesn't work; not enough processing power when run through Rosetta
    • tivoserver-0.4.4a3 - can't compile, no support from the DDB folks
    • Tivo Desktop / mencoder (from FFMpegX) - mencoder fails with illegal instructions
    • Galleon - same thing (dependent on mencoder)

    Now, as to Galleon, there are a LOT of problems I've seen crop up in version 2.3. First and foremost, PJAToolkit does not work with Mac OS X properly. If this code is used with the java command (such as when using the included run.sh script), then the Galleon server will not quit unless "Force Quit" is used. This is why I won't be releasing updated Galleon bundles, since I can't make them work properly.

    Even besides that, I ran into problems with Galleon hard coding pathnames into its configure.xml file for the various "skins". Store relative paths! Otherwise, I install a new version (with the version number on the folder), and it breaks for no reason. Don't we have enough examples of why storing absolute pathnames is bad from the last 30 years of programming?

    Then when I went into the configure.xml file, I was greeted with a horror. Instead of using dictionaries, key-value pairs, and well, XML to structure the file, it's essentially long strings of "foo=bar foo2=bar2 anotherfoo=hard-coded-path". What is the point of using an XML file and then completely missing the point? Just store it as a bunch of strings if you're going to butcher it like that.

    [EDIT: Oh, hell - might as well release an unofficial update to the bundles here, even if it won't quit properly.]
     
  2. diamondsw

    diamondsw Member

    76
    0
    Sep 16, 2004
    Chicago
    For certain values of "native". I seem to recall the whole point was it would run on multiple platforms... So much for that.
     
  3. jesstifer

    jesstifer New Member

    7
    0
    May 23, 2005
    Too bad that Galleon seems to have veered off-track. It was never especially mac friendly, but I fear it never will be again with the "native" version. Thanks, diamondsw, for all the work you've done to make using Galleon on the mac effortless.

    I'm now using Desktop 1.9.3. I figure they need to see people using it so they'll continue upgrading. I do miss music + slideshows and web art from Galleon, though...
     
  4. javahmo

    javahmo New Member

    1,538
    0
    Aug 11, 2003
    Unfortunately, the Mac support from Galleon has always lagged the other platforms since it has been difficult finding somebody reliable from the Mac community to help with the testing required. I would suspect that you would run into issues with these new Mac's.

    This use of this toolkit hasnt been changed for many versions. You can file a bug on the project web site with any logs that you might have. As I have indicated on the project blog, I dont plan on adding any new features to Galleon, but if I find the time I might still do some bug fix releases.

    To handle various OS dependent issues in a platform indepent way, complete paths have proven to be the best solution for the project. I suspect you are installing or using the software in a way that is not typical. Also not all the paths that are stored in the configuration can be relative since they can refer to resources anywhere on the local computer or local network.

    There isnt much in the configuration file just after a new install. Once you configure some of the apps, you will see how the power of XML is used. The project uses a library that requires a certain design pattern for the XML tags such that they are modelled along the lines of fields in a record in a database. Lists and references are implemented as hierarchies of tags. This is a design pattern that is commonly used in many open source and commercial apps and is valid XML.
     
  5. javahmo

    javahmo New Member

    1,538
    0
    Aug 11, 2003

    Advertisements

    Galleon is developed in Java and is still platform independent. Galleon is still distributed in Java form for each platform. The native version is simply an additional compiled version of the same code such that a JRE isnt required for Windows.
    Platform independence refers mostly to the development effort required to code the project. Each OS has its own quirks and user interface standards and so will always require the code to be packaged and installed in a platform dependent way.
     
  6. diamondsw

    diamondsw Member

    76
    0
    Sep 16, 2004
    Chicago
    I've always been quite willing to work on this in the past, and have offered such support. I'm perfectly willing to test new versions and give feedback.

    I just noticed that. It's strange that versions 2.1 and 2.2 worked fine without including the "-Dawt.toolkit" option, whereas version 2.3 will not function without it. Including that option is the critical one that prevents Galleon Server from stopping properly.

    The paths I'm referring to are the skin paths. These are located within the Galleon directory, and thus should be relative. The only "non-standard" thing I do is I include the version number on my Galleon folder, as I tend to keep multiple versions after being burned on other upgrades. As a result, any path to an item in the Galleon folder stored as an absolute path will fail. If the resource is in the Galleon folder (and especially for things like skins) then it should be relative to the Galleon "root".

    Exactly - hierarchies of tags. That's not how the bulk of the data is stored in the Galleon config file. Here's a snippet:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration version="2.2.0">
        <server title="Galleon" reload="60" port="7288" httpPort="8081" ipaddress="10.0.1.111" pin="xxx" password="xxx" shuffleItems="true" generateThumbnails="true" recordingsPath="" mediaAccessKey="xxx" skin="" debug="false" disableTimeout="true" menu="false"/>
    </configuration>
    The way any other XML file I've seen would handle it is structure like this:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <key>version</key>
        <string>2.2.0</string>
        <server>
            <key>title</key>
            <string>Galleon</string>
            <key>reload</key>
            <integer>60</integer>
            <key>port</key>
            <integer>7288</integer>
            <key>httpPort</key>
            <integer>8081</integer>
            <key>ipaddress</key>
            <string>10.0.1.111</string>
            <key>pin</key>
            <string>xxxx</string>
            <key>password</key>
            <string>xxxx</string>
            <key>shuffleItems</key>
            <true/>
            <key>generateThumbnails</key>
            <true/>
            <key> mediaAccessKey </key>
            <string>xxxx</string>
            <key>debug</key>
            <false/>
            <key>disableTimeout</key>
            <true/>
            <key>menu</key>
            <false/>
        </server>
    </configuration>
     
  7. gonzotek

    gonzotek tivo_xml developer

    2,538
    59
    Sep 24, 2004
    Outside...
    How much XML have you dealt with? I've seen key/string pairs before in iTunes libraries, perhaps it's an Apple standard. Key/String pairs are perfectly acceptable, but not the only way of doing things, and in fact I think your example is not a good way to structure the specific data we have here. If we just reformat the original with more human friendly whitespace (something an editor should handle on the fly), it's quite readable and with understandable structure.
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration version="2.2.0">
         <server
              title="Galleon"
              reload="60"
              port="7288"
              httpPort="8081"
              ipaddress="10.0.1.111"
              pin="xxx"
              password="xxx"
              shuffleItems="true"
              generateThumbnails="true"
              recordingsPath=""
              mediaAccessKey="xxx"
              skin=""
              debug="false"
              disableTimeout="true"
              menu="false"
         />
         <app
              class="org.lnicholls.galleon.apps.togo.ToGoConfiguration"
              name="ToGo"
              shared="false"
              showStats="true"
              sort="dateLatest"
         />
         <tivo
              address="192.168.0.103"
              capacity="40"
              class="org.lnicholls.galleon.server.TiVo"
              lastChangedDate="Sat May 06 09:02:55 EDT 2006"
              name="Living Room"
              numShows="18"
              path="/index.html"
              platform="tcd/Series2"
              port="80"
              server="DVR-7055.local."
              serviceNumber="240000080xxxxxx"
              softwareVersion="7.2.2b-oth-01-2-140"
         />
         <tivo
              address="192.168.0.106"
              capacity="40"
              class="org.lnicholls.galleon.server.TiVo"
              lastChangedDate="Sat May 06 02:09:37 EDT 2006"
              name="Bedroom"
              numShows="17"
              path="/index.html"
              platform="tcd/Series2"
              port="80"
              server="DVR-6444.local."
              serviceNumber="5400001D0xxxxxx"
              softwareVersion="7.2.2b-oth-01-2-540"
         />
         <musicPlayerConfiguration
              class="org.lnicholls.galleon.server.MusicPlayerConfiguration"
              player="classic"
              randomPlayFolders="true"
              screensaver="true"
              showImages="true"
              skin=""
              useAmazon="true"
              useFile="true"
         />
         <dataConfiguration
              class="org.lnicholls.galleon.server.DataConfiguration"
              password=""
              username=""
         />
         <goBackConfiguration
              class="org.lnicholls.galleon.server.GoBackConfiguration"
              conversionTool=""
              convertVideo="false"
              enabled="true"
              groupByShow="false"
              publishTiVoRecordings="true"
              >
              <paths>
                   <path
                        class="org.lnicholls.galleon.util.NameValue"
                        name="Downloads"
                        value="C:\Documents and Settings\njelite\My Documents\My TiVo Recordings"
                   />
              </paths>
         </goBackConfiguration>
         <downloadConfiguration
              CPU="1"
              bandwidth="1"
              class="org.lnicholls.galleon.server.DownloadConfiguration"
         />
    </configuration>
    Obviously I'd have music and photos apps with more nested paths in each.

    This data is only a configuration file for a very unique server, it's not like an iTunes library, whose data could potentially be read and used by other apps on the machine or user-created scripts to do something iTunes can't do by itself. All our file has to do is hold an infrequently changing set of configuration information and be machine readable by the config GUI and server process. Could it have been plain-text, yes. Or in Windows '.ini' format. Or a binary format(yechh). But my educated guess is Leon already had a config reading/writing library he had experience with, that happened to use xml as its storage format, and he used it so he could focus on implementing the ideas he had for Galleon rather than mundane things like having to code his own config reading/writing routines.

    I do agree with a lot of your other points regarding relative vs. absolute paths and the difficulty in managing multiple versions.
     
  8. EwanG

    EwanG New Member

    228
    0
    Oct 14, 2002
    San Antonio, TX
    As a Linux user (who is QUITE pleased with Galleon), is there anything in 2.3 that should make me want to upgrade from 2.2.1? It looks like the main changes listed seem to be for Windows, and I'm somewhat concerned with breaking something that generally works, I so far haven't upgraded to 2.3.

    The only issue I've had with 2.2.1 has been that sometimes I have to reboot to get the program list for To Go updated.

    TIA,
    Ewan
     
  9. drosoph

    drosoph Distinguished Member

    493
    0
    Mar 21, 2000
    Allen, TX, USA
    Is there any way to update Show Descriptions (and other info) for .mpg files in the new Native Galleon 2.3.0???
     
  10. markandjenn

    markandjenn Member

    480
    0
    Sep 21, 2003
    South Florida
    I don't think you can do show descriptions, but you can update show title, recorded date (for Now Showing screen), episode name, recorded time and date and channel if you use this format:

    {The Backyardigans}{2006-01-14}{Castaways}{12.00 AM Mon Jan 14,2006}{NICK}.mpg

    Files transferred back will still not group into folders though, unless someone else has figured out a way.
     
  11. drosoph

    drosoph Distinguished Member

    493
    0
    Mar 21, 2000
    Allen, TX, USA
    I've heard mention of editing the database in Galleon, but the non-JRE version (aka Native) does not have the same database structure apparently, and I cannot figure out a way to modify it. Thanks for the trick though, that at least HELPS!
     
  12. Malibyte

    Malibyte Took the red pill

    128
    0
    Jun 12, 2005
    Simi Valley, CA
    Just installed 2.3.0 on a Linux (Ubuntu Dapper) box in my internal network that will eventually become a media server for the whole house (and will also eventually run MythTV for the HDTV downstairs).

    I had been having all kinds of problems before when I had tried to run Galleon on the internal interface of my firewall/main server...the TiVos just couldn't see Galleon at all, despite having ipv6 shut off and the ports all open.

    However, on the new machine, it seems to work just fine!! Only one minor problem. I have two TiVos (a Humax DVD TiVo and a regular Series 2). The Humax is on my wired network at 192.168.1.21, and the Series 2 is wireless (uses WEP), at 192.168.1.11. The Galleon box is on 192.168.1.9.

    Galleon sees the Humax just fine (and vice-versa). However, it doesn't see the Series 2 at all, and the Series 2 doesn't see Galleon, but it does see the machine it's running on, because there's an entry in the Now Playing list for it, with the monitor icon and its hostname.

    Vader (the Galleon box) can see the Series 2 via HTTP, and can ping it.

    However, when I bring up the Galleon "Properties" box and run the network test, it only sees the Humax.

    HME is enabled on both TiVos.

    Any idea what I need to fix?

    Thanks - Bob
     
  13. SirJethro

    SirJethro New Member

    9
    0
    Sep 13, 2004
    I'm using the latest Galleon on the latest version of Tivo, and I'm having problems with Music and Music Organizer and iTunes (essentially, anything that streams music). Whether I play an album, entire artist collection, or playlist, it will always play between 2-4 songs and then just quit (it exits directly to live TV).

    I've tried everything I know....reinstallation, etc. Any suggestions (prior to having me turn on logging?)
     
  14. juanian

    juanian Member

    486
    0
    Oct 1, 2002
    Chandler, AZ
    I seem to remember something a long time ago about a 15 minute timeout. I'm not sure, but try going into Galleon Preferences and checking Disable Timeout.
     
  15. Towerboss

    Towerboss New Member

    5
    0
    Jan 3, 2007
    Tx

    I have questions on how this works would you mind e-mailing me or PM'ing me. E-mail addy is Fighter727 [at] gmail [dot] com. I'd like to be able to play movies I download from the net on my TiVo.

    Thanks,
    TB
     
  16. dizman

    dizman New Member

    4
    0
    Jan 31, 2002
    Does anyone have a fix for the movies app in 2.3?

    Theaters always comes back blank
     

Share This Page

spam firewall

Advertisements