Coder Social home page Coder Social logo

krestenlaust / mathcadrichpresence Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 6.52 MB

A plugin for Mathcad Prime 4.0, that enables Discord's rich presence, by using Mathcads Custom Functions plugin-system.

C++ 69.60% C 27.83% C# 2.57%
discord-api mathcad

mathcadrichpresence's Introduction

MathcadRichPresence

A plugin for PTC Mathcad Prime 4.0, that enables Discord's rich presence, by using Mathcads Custom Functions plugin-system.

What does it do

Not much currently. It just shows the same text 'Editing document' and 'In file'. I haven't figured out, how to retrieve the document title, or whether it's even possible using the plugin API.

How to use it

Since the project relies on the built-in plugin system, simply moving the plugin file (DLL) into the plugins folder, enables the plugin.

  • Simply download the latest release files (Note to self: insert link)
  • Drag them into the Custom Functions-folder, most likely located here: C:\Program Files\PTC\Mathcad Prime 4.0\Custom Functions (It does require administrator to drag it into the folder, if you installed using administrator.)

APIs used

The main focus of the project was learning to use Discords new Game Sdk, which is used in many games to communicate (using RPC) with the local Discord client.

As for the implementation method used, I looked into the different APIs offered by Mathcad (and considering hooking), but ultimately went with Mathcad Prime Custom Functions

Project structure

The project was just a fun side-project, so I didn't plan on releasing it, which resulted in relaxed naming of the projects. None of the projects depend on each other, they are just all related to the overall topic of Mathcad / Rich Presence.

Folders / projects

Following is a short explanation of the projects and folders.

MathcadRichPresencePlugin (main project)

This is the project which compiles the plugin file. It combines the efforts of the other projects, to enable Mathcad Rich Presence.

State: Should compile fine.

discord-files (folder)

The discord C/C++ API used by intellisense.

Legacy projects not in use

These are demo projects, only left in to show how each API works.

DiscordBasicApplication

This project is simply demonstrating, how the Game Sdk works. It being a console project enabled faster development, instead of waiting for Mathcad to open.

State: Doesn't seem to compile.

MathcadDemoPlugin

This project is demonstrating use of the Mathcad plugin API. I used it to better understand, how the API works and what it allows.

State: Doesn't seem to compile.

MathcadDiscordCombinedPlugin

This project combined the Mathcad Plugin (a multiply function specifically) with the Discord rich presence.

State: Should compile fine.

MathcadRichPresencePluginOld

This project was the original attempt at implementing rich presence.

State: Doesn't seem to compile.

mathcadrichpresence's People

Contributors

krestenlaust avatar

Watchers

 avatar

mathcadrichpresence's Issues

Show currently edited file in rich presence

Right now, it's just a generic rich presence showing for how long you've had the program open.

Ideas for how to implement:

  • Find a way to pull out the information from the Custom function API provided by Mathcad
    I have a hard time believing this is actually possible, since the custom function API is provided as a means to implement computational functions, not practical functions.

  • Use Windows API to read the title of the window
    This should be fairly straightforward if one has knowledge of Windows API. Might need a little string manipulation before it's ready to be provided to the API.

Why this is a good-first-issue?
The project is very simple so-far, if you have any knowledge about Windows API it should be possible.
Just ignore all projects, apart from MathcadRichPresencePlugin, which is the one containing the plugin. (The other folders contain test projects)

Any contribution is welcome!

Clean-up project

The project is a bit messy right now,

  • Refactor the project
  • Add documentation describing what each subproject does.
  • Make a release

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.