Hi everyone, life has kept me busy and I haven't posted an update here in a bit but I've been reading replies and progress has been being made. I'm testing a number of new features, and hope to have a new release out soon!
PlayfulGuy wrote:
By an option to put global buttons at the beginning or end do you mean like in the <Settings> section of the guide so it affects all global buttons, or as an attribute like <GlobalButton placement="top"> so the placement of each button could be specified.
As an attribute like that would probably give the most flexibility, since you could define one global button that appears before any local buttons, and another that appears after the local buttons.
Yes, that's exactly what I mean. The GlobalButton XML tag is feature-complete and I'm just testing things out now. It will support a "placement" attribute to put global buttons before or after all of the others. Additionally, the existing sort order attribute will be supported to sort multiple global buttons if they exist. It will have an overRide JS hook as well to add/remove Global Buttons.
PlayfulGuy wrote:For me the hotkey question comes down to playability. When you're doing a tease one hand is usually busy

and It's much easier to tap a key on the keyboard than it is to move the mouse around and click a button.
I always try to code my teases so the most likely button is the first one and you can just hit the space bar (Guideme's default) and then others have a letter or number assigned. But I'm totally okay with leaving that as a future enhancement too. And you're the one doing the work so...
Something that I expected to be problematic turned out to be a non-issue, so hotkeys will be fully supported.
tr0gd0r wrote:I have a (hopefully) small feature request: at present, clicking a button forces a jump to the target page, even if one is not specified (thus resulting in an error). Would it be possible to execute the given javascript function and not jump to a target page. This way I hope I can somewhat decouple the user inputs from the page update.
Seems reasonable, this is a really minor change and will be available in the next release as well. It's also complete, and just needs some testing. The only change is a check to see if the target is set, so buttons without a target will no longer navigate to a non-existent page. Other than that, all other standard button features will continue to work as they do now. This combined with the GlobalButton tag could have some interesting possibilities.
philo wrote:tr0gd0r wrote:Oh one other thing! Is the second audio player available to javascript? I tried overRide.setAudio2() but that didn't seem to work.
Thanks again!
Over ride for audio2 hasn't been implemented, but it would be easy to do.
It was fairly straightforward, and is also already complete. Like the other items, I'd like to test them a bit more, but this will be available in the next release. It will be identical to the setAudio functions except named setAudio2 as you already tried.
Mixed in with all of this, I've been trying to get proper cross-platform builds working. I believe I have a Linux build functional but MacOS is being difficult. I expect to release a Beta version for Linux in this upcoming release, but Mac still needs some work. There's a weird bug in the UI layer that has proven difficult to track down. The Linux build will require Java (JRE) and VLC to be installed on your system. This will likely be a permanent requirement due to a number of issues trying to package binaries for Linux machines. If you've installed VLC from source manually, you may need to tweak the start.sh script to include your lib path but that should be trivial if you're compiling software yourself.
Finally, this next release will have a new "Audio" menu in the top bar. From there, you'll be able to choose a specific audio output device for Audio, Audio2, and Video elements. This means you can have Video and/or Audio come out of one device while having Audio2 come out of a different device or anything in-between. Currently the Metronome will continue to use the system default device, but if there is demand I can look at changing that as well. This opens the door for a lot of possibilities in the e-stim realm as well as a number of other things. Audio/Video synchronization wasn't ever guaranteed that I know of, but from my testing a Page with both an Audio and Video element are synchronized to within a few milliseconds of each other. I didn't get a lot of responses on the use of e-stim teases here, but in the Webteases they're frequently nominated for TOTM so I know there's a user base here. I've also personally wanted to be able to split audio to multiple devices and it's been annoying to try to work this out in Windows's settings alone.
Last but certainly not least, Documentation! I'm working on a GitHub Pages website that will document all of the XML and JS syntax for the teases building off from an older Wiki of Philo's. Additionally, this will contain indicators of minimum version requirements to use a specific XML tag and/or attribute. As we start to add new features, XML tags, and attributes, it will be important to know what items work with what software versions. As a part of this I've added an optional new "minimumVersion" attribute to the root <Tease> XML tag, so you can specify the minimum version required to run your file if it contains any of these new features. If it is opened in an older version (starting with v0.4.2 because older versions won't check for this attribute), a message will be displayed indicating this tease requires a newer version and you should update. However, to not make this a roadblock, you can still click a button to ignore this warning and continue anyway.