DOE sounds extenshion

FWIW: I just dropped the quick hack at https://github.com/darklajid/SyrinscapeTrigger - this is a working solution for us right now. Maybe you can incorporate something similar (potentially 
 adding some logging/better error handling ¯\_(ツ)_/¯) in the default online player installation?

Using this hack and turning sounds off for all players (they don’t have this thing registered, would otherwise get a “How do you want to open Syrinscape:elements/20/play/” questions) all DOE features seem to work as expected for us - we merely had to change the sound links to replace ‘https://www.syrinscape.com/online/frontend-api/’ with ‘Syrinscape:’ (and configure the personal auth_token in the .exe.config).

3 Likes

I grabbed the sln and compiled. The code looks pretty straight forward and simple. It would be awesome if this could be included with the online player install perhaps? Just tossing the idea out for Benjamin to marinate over.

That being said, Ill give it test run sometime today. Thanks again for sharing.

Sure. It’s a (minimal) hack, there’s nothing weird/special in there I hope.

For a “distributable hack” on this board I could maybe offer a .reg file (easier to verify, doesn’t require to run the binary as admin) and the thing itself.

But obviously it would be best if Syrinscape would provide this. Maybe syrinscape-player: for one (exists) and syrinscape-online: for the other?

2 Likes

Wanna post some good info here that I can show to the dev team?

Also: yay!

1 Like

I think all the info is there already. The dev team seemingly (see Dulux_Oz posts above) already knows how to use/implement a protocol handler, because it is used in the old (“non cloud”) player.

We need the same. This thread has the discussion of everything involved, the Github link above has the full source for the C# solution we’re using. Even if your dev team uses a different stack (?), the code is very short and basically just

  • register protocol handler (Windows registry stuff)
  • when called with a protocol “url”, call Syrinscape Online player api via web request and discard the response

That’s all it seems to take

2 Likes

Love it! :cake::pancakes::beers:

1 Like

Just for the record:

I’m NOT part of the Syrinscape Dev Team.

I’m also NOT part of the Fantasy Grounds Dev Team.

I am, however, one of the Fantasy Grounds Community Devs (& a professional ICT Consultant, for what ts worth) :smile:

1 Like

Blame it on English not being my first language - but what I wanted to say above is: The Syrinscape Devs should already know how to implement a protocol handler like the one I did, because you mentioned that their other player - (never installed it, dk anything about it, I’m clueless) the older one, not the Syrinscape Online one - uses exactly this mechanism to allow integration. Into DOE amongst other things.

Basically I just quoted you for the information you gave above:

hence Syrinscape Devs do know how to do that. Sorry for the confusion.

1 Like

So is this just a little applet to catch the URL call to the syrinscape server and:

  1. instead of opening the default browser
  2. do the page request to our server
  3. throw away the returned info

Correct?

Can we filter out requests that we DO want to go through to the browser, like clicking on the username at the top of the Online Player, or clicking the PIN connect thingy?

1 Like

Kinda. Not quite. This is an applicationÂč that registers a new protocol (in my code that’s syrinscape: but that’s my own choice).

It doesn’t change anything about the behavior of normal links at all. If you want to go to a user’s profile or anything, you’re talking to https://www.syrinscape.com/online/
 and that happens in the browser.

But the DOE links are changed by the GM to point at, say syrinscape:elements/20/play/ for a fireball effect. DOE tells the OS to ‘open’ that, the OS calls the application, the application builds a request to the Syrinscape API and throws the result away, terminating afterwards (no windows pop up). If you keep https links in FG/DOE nothing changes and you get browser popups.

So if you bundle a small tool like this / register a protocol handler during installation, you’d support DOE (and potentially other stuff that works similarly) without changing your current behavior/player at all, for all I can tell.

①: Nitpicking, but applets remind me of a dead Java thing that’s unrelated :slight_smile:

2 Likes

Just want to follow up and say I hope this is something which can be integrated into the player installer. It would be HUGE for Fantasy Grounds folks like myself!

1 Like

Yeah. We are looking at this. :slight_smile:

Something you could turn on or off to catch the calls as required.

Do you know if anything changes in regards to getting the online player integrated with Fantasy Grounds Unity? I guess the real question there is did Smiteworks provide you with Alpha access to be able to look at this ahead of the upcoming public release?

No, SW did not give me alpha access (even though I asked), so I’m waiting for beta access.

But I have serious doubts that Syrinscape Online will work with FGU - the issue isn’t with how FG and/or (suppossedly) FGU work, its how Syrinscape Online works, which is different from how Syrinscape Desktop Works.

Still, we’ll see once I can get access to FGU.

I have been in good commications with the guys at Smiteworks. Making sure integration works well for FGU is something important for both teams. Syrinscape Online works well with FG, and there’s no reason that will change. :slight_smile:

I’m sorry @benjamin, but can you explain to me exactly how “Syrinscape Online works well with FG” - because as far as I am aware, it does not work with the DOE:Sound, which is how the majority of people who use FG and Syrinscape (in an automated way) use the two products - FG=>DOE:Sound=>Syrinscape Desktop (not Syrinscape Online).

I thiiiiiink we can look up above on this thread @Dulux_Oz at the comments by @ben?

No?

We just need to impliment a way of catching the calls rather than opening a browser every time AND change over to the new links.

I thought we had this discussion already?!? :smiley:

Yes, we had - but the Thread is on the DOE:Sound Extension, and the question from @mike1 yesterday was if I had gotten the DOE:Sound working with FGU and with Syrinscape Online - the answer to which, in short, was no, and I added I had doubts because of the issues getting Syrinscape Online working with FG because of the differences oin how Syrinscape Online works compared to how Syrinscape Desktop works.

I also said we’ll have to wait and see.

Your comment - “Syrinscape Online works well with FG” - is, as I pointed out, (to the best of my knowledge) not correct: Syrinscape Online does not work well with FG (and the DOE:Sound) - it doesn’t work at all - this is (as unpalatable as it is for me and, I’m sure, you) an objective fact - unless something has changed in the last couple of months that I’m not aware of - and if something has changed then I’ll be happy to confirm it does now work and promote it heavily both here and on the FG Forums.

Not, if you have proof that Syrinscape works with FG Unity (know as FGU) because you’ve been able to test it out with the Alpha release of FGU, than that’s absolutely fantastic - and I’ll confirm as such as soon as I can get my hands on a copy of FGU myself, but even if that is th case, accidetly misleading your customers in saying that “Syrinscape Online works well with FG” in a DOE:Sound thread is something I have to correct and/or clarify.

I’m neither an expert on DOE:Sound nor Syrinscape, but I firmly believe that we’re using both and it works for us


 but we’re also using the small tool I described above to work around the ‘open a browser’ limitation.

So, while it does seem to work for us (potentially we’re not using the full feature set of either DOE:Sound nor Syrinscape, I wouldn’t know) it only works because we fixed it locally. Syrinscape should make this possible out of the box though?

1 Like

You had to change all the links you actually want to use, correct? @ben

i reckon it’d be great to make the TOKEN interchangeable or settable somehow, so that they don’t have to be a part of the copied in link (since the token is unique to the person running the game).

A little bit of work to do on both sides, but do-able.

I suppose we should all wait for FGU to come out and then work with that OR even better work directly with Smite Works to integrate properly straight out of the box (talking has been happening).