FORUMS
Remove All Ads from XDA

HTC TouchFLO Cube Ctrl - !BETA V1.1.0 AVAILABLE! - *Full* cube control with gestures

217 posts
Thanks Meter: 0
 
By Kona_Mtbkr, Senior Member on 10th November 2007, 11:17 AM
Post Reply Email Thread
Summary:
I'm starting this thread as a dedicated effort to enhancing the integration of the HTC TouchFLO Cube onto non-"HTC Touch" devices, without requiring a different version of touch.dll to be installed on the device via a new ROM.

Current Status:

WHAT'S DONE
  • Much research in learning how the cube works
  • Development of some theories
  • Development of a testing app to test theories
  • Proof of concept app built to prove the theories
  • Using FTouchFlo, I have all 4 motions assigned to the correct cube task ... and it's all working!
    Slide up - open
    Slide down - close
    Slide right - spin right
    Slide left - spin left
  • Added new feature, where LR, RL, and UD finger swipes can execute other tasks if you perform them when you're not on one of the cube faces. Read Project Status 11-12 entry for details
  • Added an option to allow LR, RL gestures to open & spin the cube even when biotouch is not running. Not sure if this is actually the way the Elf works, but some people want it
  • Conversations have been started with efrost about integrating our work here directly into FTouchFlo. Talk about a speed enhancement!
  • Raven_coda has cracked the final piece of the puzzle!
  • I have implemented Raven_coda's changes, and my C# version works great ... StartUp items are sorted out now!
  • C++ version created ... speed is definitely improved
  • A few bugs fixed, a few issues addressed, and a few new features added
  • Beta release v1.1.0 available here:
    http://rapidshare.com/files/72589345...l_-_v1.1.0.zip -or-
    Use the attachment at the bottom of this post


    NOTE: This file is a zip archive, suitable for situations where you already have the HTC TouchFLO cube installed. If you have never installed TFloCubeCtrl before, then follow the TFloCubeCtrl - Installation instructions. If you're upgrading from v1.0.4, then use the TFloCubeCtrl - Upgrade instructions. You do *not* need to uninstall TFloCubeCtrl or the HTC TouchFLO cube in order to upgrade. For a complete cube installation, please check with duttythroy on his thread here: http://forum.xda-developers.com/showthread.php?t=336482.

  • Newer cab built by xplode available here:
    http://rapidshare.com/files/75947199...fig-xplode.cab

    Includes HTCCube + FTouchFlo v1.4.1 + TFloCubeCtrl v1.1.0 + TouchSettings v1.22 + FTouchFloConfig. This should also include all of the patches and fixes from the attachment list. However, if you installed the previous version of xplode's cab and are experiencing issues, try the following:
    • If you experience 2 apps launching from the MediaHubMini using Xplode's latest cab ... then replace the MediaHubMini.exe with the "patched" version below in the attachments. Either terminate the MediaHubMini process first then overwrite, or delete the MediaHubMini (preload) link from Windows\Startup, soft reset, then overwrite the file.
    • If you are having issues with QuickDial not functioning properly ... then replace the QD_Bar_NoBar_HL.png image file with the replacement version in the attachments. Also you can try replacing the version of QuickDial with the patched version in attachments below. Either terminate the QuickDial process first then overwrite, or delete the QuickDial (preload) link from Windows\Startup, soft reset, then overwrite the file.

WHAT'S LEFT
  • The black screen issues seemed to have all but disappeared. I believe we have determined the reason they were occurring, and have solved at least a vast majority of them.
  • Solve any remaining beta release bugs/issues
  • Once the beta seems good to people, get the code to efrost for him to integrate into FTouchFlo!

Rules:
  • For now, this thread is intended for people who already have a working version of the TouchFLO Cube on their system.
  • I'd prefer to keep this thread research & development oriented. I don't want this to turn into another thread of a million posts by people who are getting cube black screens and want help.
  • The cube still has a few unknown nuances/dependencies ... so this thread will be most suited for people familiar with alpha version software.
  • This thread is about integrating the original HTC TouchFLO Cube. I don't think we need a bunch of posts about how some 3rd party app is better, or how a Flash cube turns faster. There are other alternatives, yes ... this thread is about just one of those alternatives.
  • More as I think of them
Structure:
Post #1 is for general info
Post #2 will be project updates
Post #3 will be announcements / additional updates
Post #4 is some project background info
Post #5 we'll reserve for a hint/tips section
The rest is up to you guys
Donations
Thank you to all who have donated! Every donation makes me realize that other people are also interested in this project, and helps keep me motivated to continue expanding the functionality, and answering questions!
Props
  • JasonStern for his tireless research as to why QuickDial was failing on certain devices (see QD replacement image an new version attachments)
  • Musicman247 for providing me with files and sharing the work he has done with a true 6-sided cube
  • Zyphlin for pointing me to the work that Musicman247 was doing
  • Raven_coda, who despite being my mortal enemy at first , ended up discovering the key to breaking our dependency on the original biolauncher app!
  • duttythroy for creating his cab installer that started me down this path
  • efrost for creating FTouchFlo which makes the cube work with finger control
  • xplode for creating cab installers for me (even though he "hates" the cube )
  • techmonkie for responding to my RFI, and straightening me out re: launching/exiting
  • funman and Biffert for also helping me out with reference information from an actual HTC Touch users
  • jasjamming & Bepe for the original work on Touchflo Alpha
  • others ... I'm sure
 
 
10th November 2007, 11:18 AM |#2  
OP Senior Member
Thanks Meter: 0
 
More
Project Status
11-10-2007: Proof of concept app in C# is completed, and the four finger control functions are working! One major issue, is how to get back into the cube when biotouch is still running, but no cube app is in the foreground (like after you launch and close an app). So far, I can only get the startup animation when I start biotouch from scratch ... so the downswipe action runs the close animation, and then closes biotouch. It really seems like I should be able to call something to get a running instance of biotouch to re-execute the startup animation ... but I'll be darned if I can find it as of yet.

I'd like to get some input from users of an actual Elf or Touch Dual device. Ideally, someone who can run a process viewer app to see the processes behind the screen ... and even better if they have a tool like Remote Spy that comes with Visual Studio 2005. I think it would help me ... because right now I'm just guessing at what should be happening.

I need to figure out what pieces need to be in startup for my app to work. Basically, I've written my own version of BioLauncher ... which doesn't require biotouch to be running at all (it starts it on an upswipe). But so far, removing the ns script call from startup (bio.lnk) didn't seem to allow the biotouch animations to run. Need to do more research in this area. Everything works fine if I use my normal Touchflo Alpha install ... use the hardware button to loop through things (pre-loads all the cube apps probably), and then use my new app mapped to FTouchFlo. If none of this makes any sense to you ... read "How the TouchFLO Cube works" in Post #4.

11-10-2007 (after some sleep): I posted a message over on the Elf forum asking for some information about the behavior of the cube in certain situations. We'll see if I get any help. If anyone reading this knows of anyone with an Elf or Touch Dual (are they out?) ... then send them over to that forum, or check it out yourself and borrow their device for a bit

11-11-2007: I actually got an answer from the Elf forum techmonkie is indicating that biotouch doesn't really terminate on cube close, thereby indicating that there *has* to be a way to trigger the startup animation from a running biotouch instance. I was really starting to suspect that this was the case ... but this was the evidence I needed. Figuring this out will solve my startup woes ... and that should complete the interactivity with the cube. At that point ... I may consider a controlled alpha release, just to confirm that things are working as design on other devices. We'll have to see how things go. I'm going to refocus my investigation on triggering the open animation from a running biotouch ... but I may need some detailed analysis from an Elf ... we'll see.

11-11-2007 (update): Did I mention how much sleep this thing is causing me to lose?! Anyways, OK ... must have been the inspiration of knowing how it was actually working on an HTC Touch device, because with the info in techmonkie's response, and a little more digging into the assembly code of touch.dll to confirm, I've got the startup issues sorted out. In fact, biotouch.exe does indeed remain memory resident. There is a way to get the startup anim to run ... although I swear I tried this before, and it didn't work. The open and close animations even do a little screen fade-in. It's working quite well for me in fact! This is so sweet ... I went and downloaded a few other animations from the Elf Cube customization thread ... just to see then animate in my new fully-functional cube!

There's a few cleanup things to do for tomorrow ... and then it's on to sorting out the correct startup sequence. I'm still considering the controlled alpha release. Right now, you need to add it on top of a working cube ... which may not be bad for those that have working cubes!

11-12-2007: I had this thought earlier today ... I never really want a RL or LR swipe to bring up the cube and spin it, if the cube wasn't open before. You don't really know what page you'll land on ... unless you know where you left off last. I'm not exactly sure of the Elf's behavior on this point ... but I decided to add the ability for my cube interface to execute cube functions when the cube is open, or execute other apps if the cube is not open. For instance, I can have a RL swipe spin the cube when the cube is open, but the same gesture will launch Total Commander when I'm on the home screen I think it's pretty cool ... retains the cube interaction abilities, and still retains the "quick launch" nature of FTouchFlo gestures! Doesn't appear to slow it down much ... I'm hoping the C++ version is better anyways.

11-16-2007 (Announcement): New Announcements ... see Post #3 below.

11-20-2007: Hints, Bugs, & Issues section updated to include at least a start (prompted after yet another post about missing contacts tab in HTC Home . Development work on fixing the screen lock bug continues.

11-21-2007: Version 1.1 is under way with a few new commands available. Detect for screen lock and rotation seems to be working, and I'm hoping to fix a few of the other bugs. Also, use of link files for <App_2> parameter now work!

11-24-2007: Version 1.1 development continues. I removed the error message when using the openSpin<Direction> command and running in landscape mode. Also, I think I've fixed the "rainbow effect". Finally, I've adding another new command option: lock, which will execute the standard device lock. So some of the new commands are: minimizeAll, lock, lock-home, and somehow I'm going to work in a command to lock and suspend. Tossing around the idea of allowing screen rotation through gestures as well. So I think bugs 1 & 2, & possibly 3 are fixed, and issues 1 & 2 are adressed. A release is probably due, maybe by the end of this weekend.

11-25-2007: Version 1.1 seems complete. I've added screen rotation as well ... so the final list of new options is: lock (sub options of "home" and "suspend"), rotateDisplay (left and right), minimizeAll. I'll try to package it up in a new archive by tomorrow, after a bit more testing.


12-05-2007: Remaining issues still seem mostly centered around some devices having issues with QuickDial. I've gotten my hands on some new versions of the required apps, and am currently evaluating them. For the most part ... it looks promising that these will extend our cube functionality!
10th November 2007, 11:18 AM |#3  
OP Senior Member
Thanks Meter: 0
 
More
Announcements
11-12-2007: Limited Alpha Release

With this latest feature added ... and everything seeming to work perfectly on my device, I've decided to go ahead with a limited release alpha. It's just so cool ... and I know there are "Cube People" out there that wanted this just as much as me Basically, here's how it works.
  • You are not eligible for the alpha unless you already have the TouchFLO cube software installed and spinning to the right via FTouchFlo. Reason is that I was focused on rewriting the biotouch interface app first ... as that's the key component. There are lingering nuances to getting the TouchFLO cube apps themselves working ... but I'll be addressing that once I get past this phase. Don't worry ... I have plans on making this a simple cab installation for the whole enchilada ...
  • If you're interested in trying out the alpha version ... PM me, because I'd rather not have a bunch of one-line posts for people asking to test.
  • I'll give you the location of the zip file to download. This is alpha-ware ... so not fancy installers yet, but I guess I'll throw in a readme.txt file or something. It's pretty simple really ... assuming that you have a working cube.
  • Once you get things installed ... try it out. If you're having problems that seem like they might be installation/configuration issues ... then PM me about them first. I'd rather keep the posts as relevant to "general design/development" as possible.
  • Along the sames lines ... no need to post messages saying it works and whatnot, just PM me. Since it's not publicly available ... we don't really need pages of posts from people saying it works.

11-14-2007: Limited Alpha Release - ON HOLD
Alpha is on hold until I work through some issues ... and clear out some PM's Thank you all for your interest and feedback.

11-15-2007: Startup items are sorted out ... first beta version is on its way ... although apparently no luck in finishing that night

11-16-2007: First revision ported to C++. Need to do some testing and tweaking ... hopefully will finish tonight!

11-16-2007 (Update): Beta release v1.0.4 available here: http://rapidshare.com/files/70299288...l_-_v1.0.4.zip. Currently just a zip archive, I may build a cab installer over the weekend, just for my app (for you that already have the cube installed). For a complete cube installation, please check with duttythroy on his thread here: http://forum.xda-developers.com/showthread.php?t=336482

11-27-2007: Beta release v1.1.0 available here: http://rapidshare.com/files/72589345...l_-_v1.1.0.zip. This file is a zip archive, suitable for situations where you already have the HTC TouchFLO cube installed. If you have never installed TFloCubeCtrl before, then follow the TFloCubeCtrl - Installation instructions. If you're upgrading from v1.0.4, then use the TFloCubeCtrl - Upgrade instructions. You do *not* need to uninstall TFloCubeCtrl or the HTC TouchFLO cube in order to upgrade.
10th November 2007, 11:19 AM |#4  
OP Senior Member
Thanks Meter: 0
 
More
Background
Background:
A few weeks back, I was inspired by the work of a couple of fellows who were working on a project to get the HTC TouchFLO Cube working on other HTC devices. You've probably seen the installation cab floating around in a couple of different threads. Like many of you, I quickly became enamored with the cube ... and jumped through all of the hoops to get it working (and I was one of the lucky ones who got it working).

The original work by jasjamming and bepe provided a cube that could spin to the right via a hardware button. Then, with the release of efrost's FTouchFlo ... you could get the cube to spin right with a finger motion. It was all great, but I wanted more! Two things bothered me greatly ... you could not spin the cube left, and once you launched a program ... the only way to return to the cube would be to spin it again.

So began a intensive week-long, late-night effort to learn as much as I could about the TouchFLO Cube, and if/how we could get it do more. I am very happy to report that much progress has been made ... and it is definitely feasible that we can have finger controlled spin left, right, open, and close.

How the HTC TouchFLO Cube works
The HTC TouchFLO Cube is really the collaboration of four separate executables, and an "interface". The four executables consist of one app per each each face of the cube (ApLauncher.exe = App Launcher; MediaHubMini.exe = Music, Photos, Video; QuickDial.exe = Contacts), and an application that facilitates the animation sequences for the cube (Biotouch.exe). Now, at this point I guess I'll point out that "cube" is really a bit of a misnomer. Since there are only 3 faces to this object + top and bottom, it's really more of a pentahedron, or a triangular prism if you like the sound of that better. The "interface" part is where things get interesting. On an HTC Touch (Elf) or Touch Dual ... the "interface" that detects finger swipes and translates them into calls to the biotouch application is the main touchscreen library: touch.dll. This is where we start running into problems trying to run the cube on other devices. Without modifying the touch.dll on a given device ... there will be nothing to interpret finger swipes and communicate to biotouch. This is the point the original work by jasjamming and bepe went down the path of attempting to map a hardware button to be used to spin the cube. An executable needed to be created that would interact with biotouch in the same manner that the touch.dll file would, and trigger it to run the spin right animation. I'm not exactly sure what process these guys went through to figure this out ... but they did. From there ... it was efrosts creation of FTouchFlo that brought the next revolution. FTouchFlo is an app that allows you to map a file to be called when it detects one of the four finger swipe motions (up-down, down-up, left-right, right-left). With this, you could now map that same executable that was assigned to the hardware button to the left-right swipe action in FTouchFlo ... and now your cube spins with a finger swipe.

That's pretty much where the development stopped. I did a lot of research on this ... but pretty much all I could find from that point on was various people's input about it not working on this device, sort of working on another, etc. I simply couldn't believe that no one was pushing to enable the other cube interactions! It frustrated me to no end to know that I had a cube that was capable of spinning left, but no way to tell it to do so. So I rolled up my sleeves, read through countless pages of posts about what had been done so far, downloaded a disassembler, performed a lot analysis and theorizing ... and here we are today.
10th November 2007, 11:20 AM |#5  
OP Senior Member
Thanks Meter: 0
 
More
Hints, Bugs, and Issues
Hints
  • Problem: I installed the cube, and now my Contacts tab in HTC Home is gone!
    Resolution: Delete the registry key: HKLM\Software\OEM\MASD\QuickDial

  • Problem: I installed the latest cab, and now I have trouble completing a gesture
    Resolution: Try changing the GestureWaitingDelay in FTouchFloConfig.txt to a higher value (i.e. 50000)

  • Problem: I can't figure out what/how to map the cube to my hardware buttons
    Resolution: Download my zip archive from post #1, and read the TFloCubeCtrl - Readme.txt file

  • Problem: I don't know/understand the TFloCubeCtrl options in the FTouchFloConfig.txt file
    Resolution: Download the TFloCubeCtrl - Readme.txt file from the attachments in this post

  • Problem: I'm not very technical, and I don't know what to do
    Resolution: Be patient and wait for there to be a final release. This is a beta, and is therefore not polished to the point of a one-click install

  • Problem: I end up activating the cube when I try to unlock in Slide2Unlock
    Resolution: Add s2u2.exe to the exclude list in FTouchFloConfig.txt

  • Problem: My Touch Settings application has no icons for the APLauncher
    Resolution: Be sure to add the AL_xxx.png icons to your Windows directory

  • Problem: Editing the FTouchFloConfig.txt file is confusing/difficult
    Resolution: Check out the FTouchFlo Configuration Tool by schaps here: http://forum.xda-developers.com/showthread.php?t=345568

  • Problem: I installed the latest Xplode cab, and MediaHubMini is launching multiple apps
    Resolution: It's a known issue ... try replacing your MediaHubMini.exe file with the one from the attachments in Post #1. Be sure to terminate the MediaHubMini process first, or remove the MediaHubMini (preload) link from Windows\Startup and soft-reset

  • Problem: I installed the latest Xplode cab, and QuickDial is not working
    Resolution: It's a known issue ... try replacing your QuickDial.exe file with the "DeviceCheckPatched" one from the attachments in Post #1. Be sure to terminate the QuickDial process first, or remove the QuickDial (preload) link from Windows\Startup and soft-reset

  • More to follow ...


Bugs (for TFloCubeCtrl only)
  • When the device is locked, but the screen is still "active", an up-down gesture in FTouchFlo will still bring up the cube ... although you then can't do anything with it. (Fixed in v1.1.0)
  • Link files (.lnk) do not appear to work when specified as the <Command_2> parameter. (Fixed in v1.1.0)
  • In some non-HTC devices (Eten M600), TFloCubeCtrl is unable to detect that the QuickDial cube app is running (related to QuickDial issue listed below)
  • A DeviceLock issue detailed here: http://forum.xda-developers.com/show...&postcount=453
  • ICE (Infinite Cube Effect) issue as detailed here: http://forum.xda-developers.com/show...&postcount=460
  • PM me to report other items you think are bugs

Other Issues
  • When launching the cube using a RL or LR gesture, and the cube isn't already in the foreground (aka using the openSpin<Direction> command), exiting the cube using the close command causes some interesting "rainbow" effects on the today screen as the cube app closes. The rainbow colors then disappear ... but it's very strange for a split second. (Seems better to some in v1.1.0, but not solved completely)
  • When you have openSpin<Direction> set up in FTouchFlo and you perform a RL/LR gesture when in Landscape mode, you receive an error message indicating that Biotouch is not running. (Fixed in v1.1.0)
  • QuickDial app is running slow on some devices, sometimes taking 3-4 seconds to display the actual contact name/photos. Although it was never that slow for me, v2.0 of QuickDial loads even faster. Xplode's cab installer linked to on Post #1 has QuickDial v2.0
  • On non-HTC devices, the QuickDial app does not seem to load. For QuickDial v2.0, this is due in part to validation that the program is running on an HTC device (I'm not sure if QD v1.0 does this). JasonStern has made some progress on the QuickDial issues ... see Problem/Resolution above
Attached Files
File Type: txt TFloCubeCtrl - Readme.txt - [Click for QR Code] (4.2 KB, 3353 views)
10th November 2007, 11:48 AM |#6  
Junior Member
Thanks Meter: 0
 
More
Great job!
10th November 2007, 01:45 PM |#7  
joshuawittstock's Avatar
Senior Member
Flag Durban
Thanks Meter: 0
 
More
Thumbs up
this looks great, cant wait to see the results.
10th November 2007, 03:28 PM |#8  
Junior Member
Flag Baton Rouge
Thanks Meter: 0
 
More
Hope this helps...
Hey Kona...that darn cube is addicting!! Im one of the few also that has the cube running flawlessly on my 8525..buttonflow that is! After alot of trial and error and lots of hard resets...i got it working. First thing to do is get the cube running after a hard reset. Second I installed gullum activate cube cab..activate_cube.CAB. Not sure what it did but the only time I have to launch biotouch is after opening keyboard....not even after a SR!!! I guess it keeps biotouch running or somehow launches it automatically. Just my 2cents...
11th November 2007, 06:46 AM |#9  
OP Senior Member
Thanks Meter: 0
 
More
Quote:
Originally Posted by niterdr

Second I installed gullum activate cube cab..Attachment 57648. Not sure what it did but the only time I have to launch biotouch is after opening keyboard....not even after a SR!!! I guess it keeps biotouch running or somehow launches it automatically. Just my 2cents...

Just so you know ... typically a Windows Mobile cab file contains a _setup.xml file. This file is what tells the OS what steps to perform in order to install the cab file. This particular cab file puts four shortcuts into the Windows/StartUp folder. It also inputs the typical TFLOSettings into the registry ... most of which don't really apply to us, because it's touch.dll that's looking at these registry entries, and unless you've got an HTC Touch version of touch.dll, nothing is looking at those. The exception would be the Kaiser, where it does use some of those entries for the integrated TouchFlo scrolling.

I can't say specifically why this works for you ... it's a little counter to my experience, where I was finding that links to pre-load the cube apps in the startup folder were actually contributing to my black screens.

Regardless ... I can say a couple of things about this: 1) this also seems to support the fact that biotouch normally remains in memory. I wasn't sure that was the case, because the only way I could see the startup animation was running biotouch from scratch. I got response from my RFI in the Elf forums that confirms this. 2) I suspected also that the Elf pre-loads all of the cube apps, so they don't lag on the first cube rotation. I'm not really sure why this didn't seem to work on my device ... and I'll definitely be revisiting this concept when I do the analysis to determine the correct configuration for loading the cube with my new software.

Thanks for the input!
11th November 2007, 10:51 AM |#10  
cAnArdtichAud's Avatar
Senior Member
Thanks Meter: 1
 
More
hey, i dont understand, AJE has ported the whole Biotouch on the HTC P3300..

Then what do you want to reinvent ?

Can't you see with him directly ?
11th November 2007, 03:08 PM |#11  
Junior Member
Thanks Meter: 0
 
More
Kona, you're not the only one who wants this working on a Kaiser.
My girlfriend got herself a touch and now I'm all jealous about her cube
I'm a programmer myself and I've been looking at the touch.dll from the kaiser. But I can't find the dll from the HTC Touch. Could you maybe attach it here so I can have a look at that one too. (Or link to it) I don't have the biotouch cube installed yet.
Do you have any idea if the cube should run in windows mobile emulator in visual studio ? I think i'm going to try that... less messing with my kaiser.
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