Hello There, Guest! Register
Enjoy our site and services? You may donate to help fund server and domain costs. Donate Here for special benefits. You have donated $

Someone has taken over the domain, so the site will continue!


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[App] JavaInnotabCustomiser Released!
#11
Arse. Late night code changes never a good idea.... Looking into it.

If anyone is going to be online later (around 9pm GMT) who fancies helping me debug/test on a windows machine drop me a PM.

However new version up there. The condition only applies when no folder has been selected for the local media (i.e. stuff on your hard disk). For windows it was trying to be clever, so I've stopped trying to be clever and it will just do nothing until you select a folder... which is actually how it works for Linux/Mac so why I tried to be different for Windows I have no idea...

Fingers crossed.
Reply
#12
Code:
C:\Users\jrloper\Desktop>java -Xdiag -jar JavaInnotabCustomiser-0.6.1-winbug-2.j
ar
Logging to C:\Users\jrloper\Desktop\InnotabCustomiser.log
java.lang.NullPointerException
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.refresh(LocalMediaSelector.java:230)
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.<init>(LocalMediaSelector.java:179)
        at com.acephir.innotab.ui.selector.LocalMediaSelector.<init>(LocalMediaS
elector.java:94)
        at com.acephir.innotab.ui.tabs.BaseTabPanel.<init>(BaseTabPanel.java:75)

        at com.acephir.innotab.ui.tabs.books.BooksPanel.<init>(BooksPanel.java:1
4)
        at com.acephir.innotab.ui.InnotabCustomiser.initialize(InnotabCustomiser
.java:176)
        at com.acephir.innotab.ui.InnotabCustomiser.<init>(InnotabCustomiser.jav
a:107)
        at com.acephir.innotab.ui.InnotabCustomiser$1.run(InnotabCustomiser.java
:80)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Nearly unchanged result.
Reply
#13
Christ I'm being stupid. I pretty much guaranteed that result.

New version (again) up there.

Maybe it's worth me digging up the old Windows PC, but that will not happen before tomorrow night Sad

Here's hoping.
Reply
#14
Code:
C:\Users\jrloper\Desktop>java -Xdiag -jar JavaInnotabCustomiser-0.6.1-winbug-3.j
ar
Logging to C:\Users\jrloper\Desktop\InnotabCustomiser.log
java.lang.NullPointerException
        at com.acephir.innotab.ui.selector.FolderSelector.setFolder(FolderSelect
or.java:106)
        at com.acephir.innotab.ui.selector.LocalMediaSelector.setFolder(LocalMed
iaSelector.java:145)
        at com.acephir.innotab.ui.tabs.BaseTabPanel.setLocalFolder(BaseTabPanel.
java:220)
        at com.acephir.innotab.ui.tabs.books.BooksPanel.<init>(BooksPanel.java:1
8)
        at com.acephir.innotab.ui.InnotabCustomiser.initialize(InnotabCustomiser
.java:176)
        at com.acephir.innotab.ui.InnotabCustomiser.<init>(InnotabCustomiser.jav
a:107)
        at com.acephir.innotab.ui.InnotabCustomiser$1.run(InnotabCustomiser.java
:80)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

If you would like to provide me with the source code (SVN/GIT/CVS). I can trace the problem in netbeans.
My Username @gmail.com
Reply
#15
Ok. I have debugged and run it on Windows (old XP box admittedly), Ubuntu, and Mac.

Latest version is on the download site. I've removed the others as they didn't work on Windows.

Only issue I've spotted is that the transfer buttons (to device, from device, delete) are showing "..." on Windows and Linux instead of "<<" ">>" etc. Not a biggy - the tooltips are still there and the buttons work as expected. Other than that seems to work now.
Reply
#16
Code:
C:\Users\jrloper\Desktop>java -jar JavaInnotabCustomiser-0.6.3.jar
Logging to C:\Users\jrloper\Desktop\InnotabCustomiser.log
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at com.acephir.innotab.io.image.ImageUtil.createThumbnailFromFile(ImageU
til.java:109)
        at com.acephir.innotab.io.image.ImageUtil.createThumbnailFromFile(ImageU
til.java:103)
        at com.acephir.innotab.model.DeviceFileMetadata.<init>(DeviceFileMetadat
a.java:41)
        at com.acephir.innotab.util.InnotabUtil.readMetadata(InnotabUtil.java:27
1)
        at com.acephir.innotab.util.InnotabUtil.retrieveMetadata(InnotabUtil.jav
a:183)
        at com.acephir.innotab.util.InnotabUtil.createDeviceFile(InnotabUtil.jav
a:173)
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.refresh(LocalMediaSelector.java:234)
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.setFolder(LocalMediaSelector.java:184)
        at com.acephir.innotab.ui.selector.LocalMediaSelector.selectFolder(Local
MediaSelector.java:106)
        at com.acephir.innotab.ui.selector.LocalMediaSelector$1.fileSelected(Loc
alMediaSelector.java:66)
        at com.acephir.innotab.ui.selector.FolderSelector.setFolder(FolderSelect
or.java:113)
        at com.acephir.innotab.ui.selector.FolderSelector$2.actionPerformed(Fold
erSelector.java:76)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Code:
16/02/2014 01:06:44.763 INFO Reading configuration from C:\Users\jrloper\Desktop\InnotabCustomiser.properties
16/02/2014 01:06:44.764 INFO Detected operating system WINDOWS [Windows 7]
16/02/2014 01:07:23.058 DEBUG GAMES: Trying to create local device metadata file for media item: L:\LLN\APPS\Games\AngryBirds
16/02/2014 01:07:23.060 DEBUG Creating device file for GAMES file L:\LLN\APPS\Games\AngryBirds
16/02/2014 01:07:23.067 DEBUG Metadata file resolved to L:\LLN\APPS\Games\AngryBirds\AngryBirds.txt
16/02/2014 01:07:23.079 DEBUG Creating thumbail from image file: L:\LLN\APPS\Games\AngryBirds\AngryBirds.ico
16/02/2014 01:08:03.799 INFO Configuration saved to C:\Users\jrloper\Desktop\InnotabCustomiser.properties

Code:
-- listing properties --
--=listing properties --
folder.games=L:\LLN\APPS
window.left=100
window.width=640
window.top=100
window.height=480
folder.books=L:\

List box never populates when I select the games folder.
Reply
#17
Ok. Looks like some progress is being made. The NPE you get is a curious one as I did not think that a null could have been returned at that point, but the JavaDoc does say it is possible (reading an image returns null) - however it does not say under what conditions this will happen - I was expected an IOException if a problem occurred reading an image; something which was handled. In this case it appears that it is trying to read the ICO file on the device, but does not recognise the format so returns a NULL instead, causing the error. I will add some high level exception handling to catch these types of exception and redirect to the log file instead of the console - thanks for picking up the console errors by the way; extremely helpful. However, this all relates back to this next point - i.e. avoidable!

Right. The panel on the Left is meant to show your local library of stuff (i.e. things on your local hard drive that you want to transfer TO the device, or things you have transferred FROM your device to your local hard drive). So; assume you have created a set of local folders containing all of your Innotab media;

C:\Documents and Settings\{you}\My Documents\Innotab\Games
C:\Documents and Settings\{you}\My Documents\Innotab\Music
C:\Documents and Settings\{you}\My Documents\Innotab\Books
C:\Documents and Settings\{you}\My Documents\Innotab\Videos

So, on the left hand side panel; in the Games tab you would navigate to "C:\Documents and Settings\{you}\My Documents\Innotab\Games", and similar for the Music/Books/Videos tabs. These are your "local" repositories.

In your case you have navigated onto the device itself. This caused it to try and read the ICO files, which it can't as they're a custom format (ok it can read them but only directly from the databases). Moreover, to update stuff on the device it needs to be doing it in the databases themselves... and that's what the Right hand side panel is for.

So, in the TOP panel, click the "Select Device" button. The list here will only show devices that look to be Innotabs. So, if the innotab is plugged in, it should show up here (L: from your logs). If not, plug it in and wait for it to be recognised, then click the Refresh button and it should appear. Once you've selected it you will need to create a "Profile" (right hand side), which simply means telling it what the device is (model etc) and if required giving it a UnitEID or allowing it to scan the databases to try and find one for you. You can create multiple profiles if you use the card in different Innotabs. Once done click the "Select This Innotab" button and you will return to the main screen with the contents of the device in the right hand side panel.

Now you can transfer between local hard drive and Innotab and vice versa, edit the metadata/icons on either side and so on. I would recommend copying everything to local. Fixing icons/metadata and then transferring back, but you can do it directly on the device as well. Entirely up to you.

I never did get around to writing any documentation for it! My bad. Hopefully this will get it working for you though!
Reply
#18
Hi,

I found some time to test the (updated) App some more intense. It now starts on my XP PC and looks nice. The use is intuitional and I got along with it quickly.

Unfortunately it only seems to do what it should at the (for me) important points. What did I do:

1. Tested to move games and music from my Storio 2 device to the PC.

-> Worked and I got the files on my PC. I did not try to put them back on the device (yet). I could imagine that games will make troubles/ will not work or maybe even appear in the menu anymore after putting back to the device as the Storio may have changed the DB in the meantime.

2. Tested to add thumbnails to listening books via an USB SD Card reader plugged to the PC.

-> On the screen I was able to change the images and it looked well. Unfortunately the Storio does not show them after putting the SD Card back to the Storio.

3. Tested to add thumbnails to listening books with the Storio directly connected with the PC.

-> Same thing. On the screen every thing looked good but after I disconnected the Storio and went back to the music menu the just edited files were disappeared. After a re-start of the Storio 2 they were back again on the list (as the Storio seems to rebuild/ update the DB at every start) but again there are no thumbnails on them.

4. Some side notes and wishes for future versions:

-> When I added thumbnails to the listening books I found that the default folder is "my data". There it looks like that I'm able to access different and sub folders to look for the thumbs. But when the pictures are e.g. on an USB disc in a subfolder "listening books" I can not access any subfolders there. They are not even displayed. If I put the thumbnails to the root of my USB disc I can use them. Would it be possible to make subfolders accessable on other drives, too?

-> The Storio sorts all files in the music folder alpha numeric. The app shows them the same way. For me it is and looks ugly if e.g. there 3 different books with each having 3 chapters on the Storio (01 x, 02 x, 03 x, 01 y, 02 y, ...). They are displayed like 01 x, 01 y, 01 z, 02 x, 02 y, ... bahhh .. :-( I know that I could help myself with renaming the files like x 01, x 02, y 01, y 02 and so on but I don't like to have all my files renamed.

I would find it cool if you could add the possibilty to arrange the files "free" by just drag and drop them to another position. Well I think this would mean that the DB entries would have to be changed automatically, too. E.g. if I take file #5 (from the Top of the list) and move it to top as #1 the postion index at the DB should be switched automatically. I would say like with a channel editor for TV's.

At the end I want to say that this is a great App and will be very very usefull if you can make it work 100%. The things like sorting and accessing subfolders would be nice to have but are not priority #1 if the Storio would display the thumbnails.

Thank you very much for your efforts so far! Keep on going/ compiling!

Best Regards

Forever1972
Reply
#19
Hi, I just found your tool and tried it on a Storio 2 (French version of Innotab). All looks good and appears to work fine but once the device is disconnected, the thumbnails I had added to music files do not appear. Is there any chance there is a newer version of the tool available?

Using Windows 8, but could try on Windows 7 if it works on that? Last reply seems to indicate there was still a problem with Windows?

Would be great to get this working. Makes so much more sense for kids who cannot yet read! I previously used Innotab Thumbnail Editor to put thumbnails on videos, but it does not do music.

Thanks.
Reply


Forum Jump: