-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathWhatIsWhat.txt
30 lines (24 loc) · 2.86 KB
/
WhatIsWhat.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
The three main projects:
- B2SBackglassDesigner: The Backglass Designer to generate directB2S-Backglasses (moved to https://github.com/vpinball/b2s-designer)
- B2SBackglassServer: The COM-Server for the communication between VP and Backglass and the display of the Backglasses in the same process
- B2SBackglassServerEXE: Backglass display as separate EXE (for performance reasons). Contains copied code of the server. Communication via the COM-Server and to large parts via the Registry
In addition:
- LEDs: Two projects on the topic of "LED-Display"
Tools:
- B2SBackglassServerRegisterApp: Register Backglass-COM-Server in the .NET-Environment.
- B2S_ScreenResIdentifier: Tool to organize and to set B2S-Settings
- B2SWindowPunch: Cut holes in forms overlapped by other smaller windows.
- B2SInit.cmd: This bat file is called from B2SBackglassServer and then it calls B2SWindowPunch.
- B2STools\directb2sReelSoundsONOFF.cmd: Small command to deactivate all built-in REEL sounds in directb2s files.
- ScreenResTemplate.txt is an exemplary file how the .txt (res files) has to look like. From release 1.3.1.1 it supports comment lines starting with a "#".
If you use tools not supporting comments, you need to remove these lines. PinballX has now been updated as well!
Will be removed when unchecking the checkbox in ScreenResIdentifier.
Additional info:
- The code is all VB.net (The plugin code was my first VB.net code, since I'm more into C#).
- The proxy implementation uses some tricks to ensure that all Pinmame data is available for the backglass and the plugins. There are 2 ways how data is fetched:
For tables which call the Pinmame commands the get the latestest changes on the table elements, the B2S.Server simply intercepts those commands and passes the data which is returned by PinMame not only to VP, but also the backglass and to the plugins.
For tables which dont call those PinMame commands, the B2S.Server calls those commands on its own at regular intervals. To detect if the B2S.Server has to do its own calls, there is some logic which will switch to this mode if the "changes" command is called within 50ms (not sure about that anymore) after the table has started.
- Another bit of special logic in B2S.Server detects if the table is still active, so the B2S.Server can shut down on table exit. This is necessary since VP resp. VBA does not always properly release the B2S.Server com object.
- I have only seen the preliminary code of the proxy implementation, so things might have changed since then, but I'm pretty sure that some cleanup to the code would make things much easier for future development.
- The plugin code uses Microsoft MEF (https://msdn.microsoft.com/en-us/library/dd460648(v=vs.110).aspx) to detect and load plugins.
- The B2S.Server to backglass communication uses the registry to transfer data. IMHO this should be changed.