Jump to content
LaunchBox Community Forums

pdavis

Members
  • Posts

    28
  • Joined

  • Last visited

Posts posted by pdavis

  1. Marquesas HTTP Server

    View File

    Small Footprint HTTP Server Plugin for LaunchBox. 

    Example Uses

       * Display the current game marque full screen on a seperate system such as a tablet or smart phone.
       * View the current game manual on a seperate system such as a tablet, laptop, smart phone.
       * Retrieve LaunchBox and game information through a standard HTTP JSON API.

    Installation

       To install unzip and copy the MarquesasServer folder into your LaunchBox/Plugins folder.
       The server will begin running whenever LaunchBox is started. The first time you run 
       it with the plugin a Windows security dialog will pop up asking if you want to allow 
       it to connect to the network. You will need to select one of the two options presented, 
       the option "Private networks, such as my home or work network will suffice". Once in
       LaunchBox you will see a new "Marquesas Server Admin" option under the Tools menu to
       manage the server. The server can then be accessed from any computer, phone, or tablet
       located on (or with access to) the same network as the machine running LaunchBox/BigBox.

       Requires .NET Framework Version 4.8 from https://dotnet.microsoft.com/download/dotnet-framework/net48

       See the default index (LaunchBox->Tools->Marquesas Server Admin->Ellipses Button)
       for a comprehensive list of dynamically generated direct links and detailed information.

    Auto Refreshing Web Pages

       These pages (specifically the Marque page) were designed to be brought up on a separate
       computer such as an old tablet to display the marque of the game currently being played
       in BigBox. It is recommended that the page be loaded and then the browser set to full
       screen (kiosk) mode. In most browser on Windows you can toggle kiosk mode by hitting F11
       when in your browser. Each page will refresh automatically every few seconds to insure
       that the game being played will be reflected in the browser.
       
       Works via a standard HTTP interface allowing the retrieval of HTML pages for the current
       game. Any *ImagePath property can be retrieved from the IGame object
       (Unbroken.LaunchBox.Plugins.Data.IGame.*) by specifying /Image/ followed by the Image
       descriptor (the part preceeding ImagePath)

       * /Image/Back
       * /Image/Background
       * /Image/Box3D
       * /Image/Cart3D
       * /Image/CartBack
       * /Image/CartFront
       * /Image/ClearLogo
       * /Image/Front
       * /Image/Marque
       * /Image/PlatformClearLogo
       * /Image/Screenshot

       * /Manual

    JSON API for retrieving

       * /StateManager (Unbroken.LaunchBox.Plugins.PluginHelper.StateManager)
       * /StateManager/IsInGame
       * /StateManager/* (Unbroken.LaunchBox.Plugins.PluginHelper.StateManager.*)

       * /SelectedGames (Unbroken.LaunchBox.Plugins.Data.IGame)
       * /SelectedGames/* (Unbroken.LaunchBox.Plugins.Data.IGame.*)
          
    JSON API for retrieving raw binaries

       * /Binary/ScreenshotImage
       * /Binary/FrontImage
       * /Binary/MarqueeImage
       * /Binary/BackImage
       * /Binary/Box3DImage
       * /Binary/BackgroundImage
       * /Binary/Cart3DImage
       * /Binary/CartFrontImage
       * /Binary/CartBackImage
       * /Binary/ClearLogoImage
       * /Binary/PlatformClearLogoImage
       * /Binary/Application
       * /Binary/Configuration
       * /Binary/DosBoxConfiguration
       * /Binary/Manual
       * /Binary/Music
       * /Binary/ScummVmGameDataFolder
       * /Binary/Video
       * /Binary/ThemeVideo

    See the default index (LaunchBox->Tools->Marquesas Server Admin->Ellipses) for direct links and detailed information.

    Source: https://github.com/fpdavis/MarquesasServer
     


     

  2. On 6/7/2017 at 1:38 PM, Echoshard1 said:

    @pdavis It's working well with Unity's WWW can you add

    State Manager/GameTitle

    State Manager/PlatformTitle

    I am currently trying to figure out how to refresh my images. Knowing if the game Title changed would be most helpful

    Sorry I missed your post. This information is actually available in:

       /selectedgame/title

       /selectedgame/platform

    Currently you will have to poll to see when the title changes. I actually use /selectedgame/id to detect a game change since it is guaranteed to be unique. I have not had a chance to roll in the Websocket code, that should be coming within the next couple of weeks.

    You can see all available information on the index page "/" The list of available properties are automatically updated based on what the LaunchBox API returns for the given objects (SelecteGames and StateManager). I just pass these properties straight through. I have not added any theme information. I believe this is available and shouldn't be hard to add.

    BTW, a new update is available with the following changes

       * Bug fixes
       * Added port use detection on startup
       * Reworked help to use Tool Tips
       * Added first time run dialog
       * Changed background color on autoloading pages to black
       * Enhanced the default index page with tabs and minor documentation, links now open in a new browser tab/window

     

  3. I just checked in a new version with the following changes:

    • Added Manual Support
    • Added HTML Error pages
    • Split up game heiarchy into SelectedGame (game being played?) vs SelectedGames (not being played, with possible multiple selections)
    • Renamed SelectedGames to SelectedGame (without the S)
    • Changed SelectedGame (previously SelectedGames) so the root /SelectedGame only returns information if one and only one game is selected
    • Added SelectedGames (with the S) JSON responses to return information on multiple games
    • Gracefully handles empty properties
    • Added Binary support for selected game (you can now pull back images, manuals, music, video directly)
    • Continued to refine default HTML page

    Main features yet to add:

    • Add port use detection on startup
    • Finalize naming convention for Auto Refreshing HTML pages (images/manual) - I still may change this to make it clearer
    • Evaluate integration of Web Sockets code
    • Need to continue to refine default html page and add documentation to it
    • Complete Etag support for default html page (cache Page/MD5Sum)
    • Add support for /Game/ID to pull back game information for games not selected but in XML files
    • Memory/CPU profile

    I think an initial release (at least without web sockets) should be ready by next week. I want to get the Web APIs sorted out before tackling web socket support.

    Source: https://github.com/fpdavis/MarquesasServer

     

    • Like 2
  4. 51 minutes ago, Echoshard1 said:

    @pdavis everything seems to be working fine. The big problem was finding the right port for localhost I had a few things running. Now to get it to call the JSON correctly

    Were you already running a web server on the default ports? I had not taken that into account. I more or less assumed this would be running on a dedicated or desktop PC without a web server. And for those that are running a web server they probably know what they are doing and can manually change the ports on the settings screen. I need to add code to check to see if the default ports are being used and inform the user if that is the case.

    Currently I am finishing up the manual/pdf support and adding binary retrieval for assets such as the manual and images. Currently images are only returned via a web page that refreshes whenever the game/image changes.

  5. Today when I went to run LaunchBox 7.10 nothing happened. I'm on Windows 10 (Version 1607, Build 14393.1198) The spinning hourglass symbol shows for a second and then disappears. There is no LaunchBox task in the TaskManager. The same thing happens when I try to run BigBox. I went into the updates folder and tried to reinstall into a new folder, the install gets to "Installing/Updating DirectX" and then the installation dialog disappears and nothing else happens. The new folder only contains a Metadata folder, BigBox.exe, BigBox.exe.config, LaunchBox.exe, and LanunchBox.exe.config (see screenshot). I then tried to install LaunchBox-7.10-beta-10-Setup.exe from my updates folder but the same thing happened.

    I went back to the version I had before that, LaunchBox-7.10-beta-7-Setup.exe, and it installed without any issue. I then let it automatically download the latest 7.10 update (thinking maybe my version was corrupt) but the same installation issue reoccurred.

    • Rebooting didn't help
    • I'm installing to the default user directory (C:\Users\USERNAME\LaunchBox)
    • I didn't see any errors, no errors were reported in the Event Viewer
    • 7.10-beta-7 installs and works fine
    • Windows is up to date
    • Running DirectX 12

    Any suggestions on what I should look for or try next?

    LBInstall.PNG

  6. 15 hours ago, Echoshard1 said:

    @pdavis Thank you! this is exactly what I needed for InfinityBox.

    @Echoshard1 Just let me know if there is anything specific you need and I will see about adding it. I changed the interface a bit in the last version and I still need to add proper header response codes for errors and null/empty responses. I believe all available information should be there and working though through the JSON WebAPI interface. I'm looking at the websocket code provided by @Nielk1 and will try to include a websocket interface as well.

  7. I just checked in a new version of the server, it now offers a default page with links to make it easier to see what is available. A link to the default page is available in the plugin's admin menu as an ellipses button beside the port. Be warned that 404 pages are still returned when data isn't available (such as when no game is selected, but game information is requested or an image page is requested with no associated image). I originally envisioned this for use in displaying a Marquee image on a separate device such as an old tablet or PC dedicated to the task. This is what the /image pages are for. This will probably be the last update for about a week as I will be going on holiday.

    @Nielk1, I would love to take a look at the code, will shoot you a PM. I think there is plenty of room for a good set of web services, web sockets, and other much faster/tightly coupled options

  8. It is rough around the edges but is working none the less!

    This is a small footprint HTTP Server Plugin for LaunchBox. It contains image and web service APIs for accessing LaunchBox/BigBox properties.

    Provides the following:

    Standard HTTP interface for retrieving HTML pages for the current game. Any ImagePath property can be retrieved from the IGame object (Unbroken.LaunchBox.Plugins.Data.IGame.) by specifying /Image/ followed by the Image descriptor (the part preceding ImagePath). The page returned will refreshed every few seconds to keep the image current. 

      * /Image/Back
      * /Image/Background
      * /Image/Box3D
      * /Image/Cart3D
      * /Image/CartBack
      * /Image/CartFront
      * /Image/ClearLogo
      * /Image/Front
      * /Image/Marque
      * /Image/PlatformClearLogo
      * /Image/Screenshot

      * /Manual - Not yet implemented 


    JSON API for retrieving:

      * /StateManager (Unbroken.LaunchBox.Plugins.PluginHelper.StateManager)
      * /StateManager/* (Unbroken.LaunchBox.Plugins.PluginHelper.StateManager.*)
      * /StateManager/SelectedGames (Unbroken.LaunchBox.Plugins.Data.IGame)
      * /StateManager/SelectedGames/* (Unbroken.LaunchBox.Plugins.Data.IGame.*)
      * /StateManager/IsInGame


    The JSON being returned doesn't use envelopes and is subject to change until release. I'm open to suggestions on the formatting, structure, and interface in general.

    I just got this working for my test cases and it may hit a null reference and 404 pages when elements are empty or missing.

    Source: https://github.com/fpdavis/MarquesasServer

    To install copy the folder MarquesasServer that is located under the bin folder into your LaunchBox/Plugins folder. The server will begin running whenever LaunchBox is started. The first time you run it with the plugin a Windows security dialog will pop up asking if you want to allow it to connect to the network. You will need to select one of the two options presented, the option "Private networks, such as my home or work network will suffice". Once in LaunchBox you will see a new "Marquesas Server Admin" option under the Tools menu to manage the server.

    MarquesasServerAdmin.PNG

    • Like 2
  9. Quote Of The Day

    View File

    LaunchBox plugin to display a Quote or Bible Verse on application start

    To install from zip file, just unzip into your LaunchoBox\Plugins folder. Once installed you should have a LaunchBox\Plugins\QuoteOfTheDay folder.

    Once installed when you launch LaunchBox or BigBox you will be presented with a quote as soon as the application starts. The quote will stay on the screen for several seconds before disappearing. Clicking on the quote or hitting a key will dismiss it immediatly. Under the LaunchBox Tools you will find a "Quote Of The Day Settings" option. This will allow you to configure and test several options including colors, how long the quote is shown, and what type of quote to show.


     

  10. 8 hours ago, tSRDazz said:

    I run the site with my good friend Pete. I may be able to wrangle something together for it if you'd like to use it :)

    If you could let me know what specifications you need we can put it together for you. 

    Ok, that is a different story. I didn’t want to scrape content without permission. I could rework the plugin fairly easily to display the latest fact you post to the site, just as it appears on the site with links and attributions. PM me and we can work out any details.

  11. I have updated the Github project for this plugin. Still needs some additional work but is close to fully functional. The configuration file has changed and I have added a settings dialog under the tools menu. This means no more having to configure it through the XML file!

    Just a few more tweaks to go.

    You can download the latest dll and config file from Github

    https://github.com/fpdavis/QuoteOfTheDay/tree/master/QuoteOfTheDay/bin/Release

    • Like 1
  12. On 5/15/2017 at 7:15 AM, tSRDazz said:

    It would be cool if we could somehow make this work with the site we built as a side to DidYouKnowGaming, VGFacts, and have it pull a piece of trivia for each game, console, etc.

    Though we have no API for you to grab from, so could prove to be a problem.

    The VGFacts site looks great and has a lot of good content that the plugin could pull from. However, without an API or XML feed I wouldn't want to pursue it. First it would be more difficult and prone to breakage, but secondly, the API is basically the sites way of giving permission to consume the content in other ways than just through the web browser. Many CMS based websites have the ability to offer their content through an XML feed, if this can be configured on VGFacts by the admistrator then I would hapily add support for the site.

  13. 3 hours ago, kerszr said:

    ...would it be possible for me to supplement your quotes with various trivia...

    Yes, you can edit the quotes.xml file and put in any text you want. It currently expects a quote and an author, so for anything that didn’t have an author you would just leave that empty or use something else like a date or citation. Right now it would display a trailing dash (-) if the author was blank but I could have it omit the dash if author is empty.

    If you know of a site that provides an xml feed or api for trivia then I could add that as well.

    • Like 1
  14. On ‎5‎/‎10‎/‎2017 at 0:02 PM, Jason Carr said:

    That is so awesome @pdavis! Thank you so much. I can't wait to try it out here. We should work together to figure out exactly what you need to make this ideal. I'm on the live stream right now but I'll check it out later this afternoon. If you can tell me exactly what hooks you need, I'll get on that. I know you need something for when the user logs in, so I can certainly add that. :)

    Sorry I missed you @Jason Carr looking at this on the live stream. I'm usually on for about half of it but have to go to lunch usually right as you start! The new ISystemEventsPlugin->LaunchBoxStartupCompleted is exactly what I needed. I will probably use ISystemMenuItemPlugin to add a configuration screen for the plugin. I've uploaded new code and started a proper thread for it in the Third-Party Applications and Plugins (Development and Beta Testing) section...

    For another plugin I've been working on I could really use an event to let me know when and what game is launched and then some way to know when the user leaves a game and returns to Launchbox. I started working on this a couple of months ago as a stand alone exe but put the project on hold when I saw plugin support was coming soon. Basically it is a mini http server that allows clients to connect to it and it serves a webpage with the marque of the game being played. Currently it is watching the Windows processes that Launchbox spawns and then parses the Launchbox XML files to find out what marque should be served. I got the idea for this from a support ticket.

    • Like 1
  15. This plugin is still in development and still has some quirks to work out but it is now fully functional.

    To install place the contents of the zip file into your LaunchBox\Plugins folder.

    Once installed when you launch LaunchBox or BigBox you will be presented with a quote as soon as the application starts. The quote will stay on the screen for several seconds before disappearing.

    Source code is available on GitHub: https://github.com/fpdavis/QuoteOfTheDay

    The full Readme file is available here: https://github.com/fpdavis/QuoteOfTheDay/blob/master/README.md

    There are several options in the QuoteOfTheDay.dll.config that you may want to change. The two most important are outlined below.

    QOTD_Type: Valid values are "Verse", "Quote", "Local", or "Random". Local is the default value.

       Verse: Loads https://www.biblegateway.com/usage/votd/rss/votd.rdf from Bible Gateway and
              displays the Bible Verse of the Day. This was the original inspiration for the plugin
              and was inspired by Dubbloseven from a Live Developer Session who sugested we add a
              "Bible Wheel" to LaunchBox (Let's Build Some Plugins! - 2017-05-08 -
              LaunchBox Development Live Streams @ 11:30).
       Quote: Loads https://feeds.feedburner.com/brainyquote/QUOTEBR from BrainyQuote.com and
              displays the Quote of the Day
       Local: Loads a local file named Quotes.xml and randomly displays a quote from this file.
              This file contains many Video Game related quotes. This is a standard XML file and
              you can add your own quotes and remove quotes from this file as desired.
      Random: Randomly displays one of the types listed above (Verse, Quote, or Local).

    SecondsToDisplayQuote: How long to leave the quote on the screen. Too long and you will be waiting, too short and you won't be able to read the quote. This value is specified in seconds. 8.5 is the default value.

     

     

    • Like 6
  16. Playing around with the new plugin feature. I wanted to write a simple Quote/Bible Verse of the day that would show up when you logged in but not sure that is possible yet. So this simple plugin just adds a right click menu item on games called "Quote of the Day" or "Verse of the Day" based on a configuration setting in the "QuoteOfTheDay.dll.config" file. Similar to the first example plugin Jason wrote based on IGameMenuItemPlugin with support for a custom plugin configuration file. Source and DLL is included.

     

    • Like 1
  17. Are you wanting to keep both Launchbox installs completely in sync, including general configuration settings, themes, game meta data, etc? If the answers is yes, and this is probably the easier of the answers then you can just copy any changes made on one system to another (assuming file paths are relatively the same). You might look at applications such as SmartSync Pro or Toucan that are designed to keep file systems in sync across computers. If the answer is no, then you can still use these applications for syncing but you will need to fine tune their configuration to include only specific files or directories or exclude specific files or directories. They both support this type of configuration. You will just need to determine what files you want/need to sync.

  18. I recently decided to build an arcade pedastal in my office/bonus room. Since my computer was already in the same room I decided to use a piece of software called Aster (ibik.ru) to create a second workplace/Windows login for the arcade machine. This allows me to run full screen applications on both my desktop and the arcade machine at the same time without having to purchase and maintain a second dedicated machine. The placement of the machine is only limited by the length of your video cable, which can be very long if needed.

    Needless to say my desktop is pretty beefy and it doubles as my home theater server and web server and is always on...

    • Asus X99 Motherboard
    • I7-5820K 6-Core 3.3Ghz Cpu
    • 16Gb DDR DRAM 3000MHz
    • AMD Radeon RX 480 Video Card
    • Antec 1000W Power Supply 
    • Samsung 256GB M.2 Boot Drive

     

×
×
  • Create New...