PinUP PUPDMD Framework

This info page is for Table Authors that are looking to add a multimedia type DMD display to their original tables.

This is a starter framework to get a DMD feature for original tables in VPX and FP. It supports REAL DMDs (128×32), LCD 4:1, Full DMD (16:9) or even full BG layering like HP and StrangerThings.

Note: The oribital framework is different than this framework and can't be combined without some work. It is a great complete table framework if you are starting from scratch: https://orbitalpin.com/

Also, the framework is just a wrapper to standard pinup player calls. you don't need to use the framework and just make your own subs and use the examles in my framework for your own needs.

I advise NOT to start with pupdmd until you understand and have a good understanding of pinup player and packs. It will probably be more complicated if you dont' understand pinup player basics.

Read this page first about pup-packs: https://www.nailbuster.com/wikipinup/doku.php?id=pup_capture

if you do not have a programming background then it will be harder and time consuming to understand all this. Best method is always to see how other tables have already implemented pupdmd into their tables successfully. TNA, HP, STSE…etc.

for VPX:

Here's the youtube video to get you started:

https://youtu.be/1r5k0iuoXQ4

files for framework: https://nailbuster.com/pupupdatesv14/PUPDMDFramework_Starter_v1_1.zip

another lower level zip to get you more info: https://nailbuster.com/pup/PUPDMD_Reference_v13.zip

pup color picker utility to easily choose color and get the # for script: https://nailbuster.com/pup/PupColorPick.zip

Some common calls:

    Init(DisplayNum: Integer; const RootDir: WideString);

    playlistadd(DisplayNum: Integer; folder: WideString; sort,restSeconds: Integer);

    playlistplay(DisplayNum: Integer; playlist: WideString);

    playlistplayex(DisplayNum: Integer; playlist, playfilename: WideString; volume, priority: Integer);

    playpause(DisplayNum: Integer);

    playresume(DisplayNum: Integer);

    playstop(DisplayNum: Integer);

    setVolume(DisplayNum: Integer;vol: Integer);
       vol=default volume for display

    setVolumeCurrent(DisplayNum, Vol: Integer);
        vol of current playing media, no affect on default media volume.

    SetLength(DisplayNum: Integer;StopSecs: Integer);
        after you play a file call setlength if you want it to stop.  so setlength(5) will stop video at 5 seconds mark.

    SetLoop(DisplayNum: Integer;LoopState: Integer);
         if you set LoopState=1,  it will loop the currently playing file.  0=cancel loop

    SetBackGround(DisplayNum: Integer;Mode: Integer);
         if you set Mode=1, it will set current playing file as background (loop it always).  Mode=0 to cancel background.  Note if user has 'POP-UP' mode this will be disabled automagically (you don't need to worry about it).

Jukebox playlist/music control helper subs:

'jukebox mode will auto advance to next media in playlist and you can use next/prior sub to manuall advance
'you should really have a specific pupid# display like musictrack that is only used for the playlist
'sub PUPDisplayAsJukebox(pupid) needs to be called/set prior to sending your first media to that pupdisplay.
'pupid=pupdiplay# like pMusic

Sub PUPDisplayAsJukebox(pupid)
PuPlayer.SendMSG("{'mt':301, 'SN': " & pupid & ", 'FN':30, 'PM':1 }")
End Sub

Sub PuPlayListPrior(pupid)
 PuPlayer.SendMSG("{'mt':301, 'SN': " & pupid & ", 'FN':31, 'PM':1 }")
End Sub

Sub PuPlayListNext(pupid)
 PuPlayer.SendMSG("{'mt':301, 'SN': " & pupid & ", 'FN':31, 'PM':2 }")
End Sub