Supporting your own Pedals with a Pedal Driver DLL

If you are a manufacturer or distributor of pedals and want your pedals to work directly you can write a driver dll. Just install the dll in the Windows/System32 folder and Express Scribe will automatically detect them when it next runs.

Note: The information which follows is intended for professional programmers only. If you are not a professional programmer, please retain one to build the dll for you.


The DLL must be named "pedaldrv.dll".

The DLL must export the following functions...

typedef void* HPEDALS;
// typedef unsigned short uint16_t;

#define ESPEDALS_RIGHT uint16_t(0x0001)
#define ESPEDALS_LEFT uint16_t(0x0002)
#define ESPEDALS_MID uint16_t(0x0004)
// Note: If supporting 2 pedals only use ESPEDALS_RIGHT and ESPEDALS_LEFT
// Note: If support 1 pedal only use ESPEDALS_LEFT

extern "C" HPEDALS ExpressScribePedalsOpen();
// This is used to initialize data and connect to the pedals
// Should return NULL if pedals are not available or it fails.
// Returns an opaque 'handle'. Express Scribe just passes the same
// 'handle' value back to Scan and Close (below).

extern "C" uint16_t ExpressScribePedalsScan(HPEDALS hPedals);
// Returns the or'd state of the pedals with the ESPEDALS_ constants above.
// Returns 0 on failure (or if no pedals pushed)

extern "C" void ExpressScribePedalsClose(HPEDALS hPedals);
// This is used to close the connection to the pedals.
// Must not crash if NULL value is passed in hPedals.

You need to write your own installer to distribute the dll (with your pedals) and to install it in the Windows/System32 folder.