Here is a list of labTALK DVD-lab-related Functions and Commands. Unlike the core of the language described in previous pages, these commands here are specific to DVD-lab.
VTS Functions
All commands that works with menus or movies assume for simplicity they are in currently selected VTS. To select different VTS you need to use SetCurrentVTS function.
Command
|
Parameters and Usage
|
Comments
|
SetCurrentVTS
|
SetCurrentVTS",1,6,"SetCurrentVTS(nVTS)
|
VTS 1..99, Set the VTS as current
|
GetCurrentVTS
|
nVTS = GetCurrentVTS()
|
returns which VTS is currently Selected
|
Menu
Menu commands are used to access menu functions. A menu is refered by its number. VTS menus have number 1...255, VMG menus have number 10001..10255
All functions assume this reference. that means command MenuActivate(10001) will activate first VMG Menu.
For clarity you can use function VMG(vmgmenu) that simply add 10000 to the input parameter.
Therefore the command MenuActivate(VMG(1)) does the same as above - select first VMG menu.
Command
|
Parameters and Usage
|
Comments
|
MenuGetCount
|
nC =MenuGetCount()
|
Get number of menus in current VTS
|
MenuGetVMGCount
|
nC = MenuGetVMGCount()
|
Get number of VMG menus in current VTS
|
MenuGetCurSel
|
menu = MenuGetCurSel()
|
Get number of currently selected menu.
VTS menu 1..255, VMG menu 10001..10255
|
MenuAdd
|
menu = MenuAdd(IsVMG,"Name",openWindow)
|
Add new Menu
|
MenuAddFrom
|
menu = MenuAddFrom(IsVMG,"Name",openWindow,sFile)
|
Add new menu from menu template (file)
|
MenuDelete
|
MenuDelete(menu)
|
Delete menu
|
MenuActivate
|
MenuActivate(menu)
|
Activate (open) the menu in DVD-lab
|
MenuSetPBC
|
MenuSetPBC(menu,timeout,nFOSEL,nFOACT)
|
Set playback functions Timeout (0-255), ForceSelected button (0 - no button), ForceActivated button (0 - no button)
|
MenuSetMapSel
|
MenuSetMapSel(menu,nGroup,nColor,nContrast)
|
Set Selected Color Mapping. nGroup: 0=Antialias, 1,2,3= normal group
nColor - 0 to15
nContrast - 0 to 16
|
MenuSetMapAct
|
MenuSetMapAct(menu,nGroup,nColor0to15,nContrast0to16)
|
Set Activated Color Mapping. nGroup: 0=Antialias, 1,2,3= normal group
nColor - 0 to15
nContrast - 0 to 16
|
MenuEndLink
|
MenuEndLink(menu, toMenu)
|
Set end link of menu to other menu
|
MenuSetMotion
|
MenuSetMotion(menu, sVideoFile, sAudioFile)
|
Set files for motion menu
|
MenuCopy
|
MenuCopy(menuFrom, menuTo)
|
Copy all from other menu
|
MenuGroupWith
|
MenuGroupWith(menu, withMenu,withMovie)
|
Group menu (create Component) with either menu or movie
|
MenuPlaceNear
|
MenuPlaceNear(menu, nearMenu, nearMovie, fromWhichSide)
|
Position the menu in Connections near other object. FromWhichSide clockwise 0=top, 1=top right 2=right etc..
|
MenuSetComponent
|
MenuSetComponent(menu, setIn, setOut)
|
Set the menu in component to be In and/or Out type
setIn, setOut = TRUE or FALSE
|
MenuRemovePRECommands
|
MenuRemovePRECommands(menu)
|
Remove all PRE commands
|
MenuAddPRECommand
|
MenuAddPRECommand(menu, commandstring)
|
Add line of PRE command
|
MenuRemovePOSTCommands
|
MenuRemovePOSTCommands(menu)
|
Remove all POST commands
|
MenuAddPOSTCommand
|
MenuAddPOSTCommand(menu, commandstring)
|
Add line of POST command
|
LinkFPtoMenu
|
LinkFPtoMenu(menu)
|
Link First Play to menu
|
LinkTBtoMenu
|
LinkTBtoMenu(menu)
|
Link Title Button to menu
|
Object
Object commands gives access to a specific object in a menu (therefore menu number is always one of the parameters).
Command
|
Parameters and Usage
|
Comments
|
ObjectGetCount
|
ObjectGetCount(menu)
|
Get number of objects in a menu
|
ObjectGetCurSel
|
object= ObjectGetCurSel(menu)
|
Get currently selected object in a menu
|
ObjectGetType
|
type= ObjectGetType(menu,object)
|
type: 1-RECTANGLE,2-BITMAP,3-TEXT,4-DUMMY,5-FRAME
|
ObjectAdd
|
object = ObjectAdd(menu,type,color,"Text")
|
Add new object
type: 1-RECTANGLE,2-BITMAP,3-TEXT,4-DUMMY,5-FRAME
After that you need to use commands below to set position, size etc. of the new object returned by this function
|
ObjectAddFrom
|
object = ObjectAddFrom(menu,sFile)
|
Add object from the file (image)
|
ObjectSetSize
|
ObjectSetSize(menu,object,nWidth,nHeight)
|
Set size of the object
|
ObjectSetPos
|
ObjectSetPos(menu,object,nX,nY)
|
Set position of the object
|
ObjectGetXPos
|
x = ObjectGetXPos(menu,object)
|
Get X (left) position of object
|
ObjectGetYPos
|
y = ObjectGetYPos(menu,object)
|
Get Y (top) position of object
|
ObjectGetWidth
|
nW = ObjectGetWidth(menu,object)
|
Get object width
|
ObjectGetHeight
|
nH = ObjectGetHeight(menu,object)
|
Get object height
|
ObjectDelete
|
ObjectDelete(menu,object)
|
Delete object
|
ObjectSetColor
|
ObjectSetColor(menu,object,color)
|
Set color of the object. the color is RGB (red, green, blue)
|
ObjectSetAttr
|
ObjectSetAttr(menu,object,transparency,mode)
|
Set object attributes
|
ObjectSetFont
|
ObjectSetFont(menu,object,"Arial",size)
|
Set font for text objects
|
ObjectSetText
|
ObjectSetText(menu,object,sText)
|
Set text of text objects
|
ObjectSetShadow
|
ObjectSetShadow(menu,object,color,type)
|
Set shadow of object
|
ObjectShadowOffset
|
ObjectShadowOffset(menu,object,xoffset,yoffset)
|
Set shadow offset
|
ObjectShadowAttr
|
ObjectShadowAttr(menu,object,intensity,blur)
|
Set other shadow attributes
|
ObjectToBitmap
|
ObjectToBitmap(menu,object)
|
Convert any object to a bitmap object (for example text to bitmap)
|
ObjectMergeShadow
|
ObjectMergeShadow(menu,object)
|
Merge shadow with the bitmap object
|
ObjectUnion
|
ObjectUnion(menu,object,menu,object2)
|
Combine two bitmap objects together
|
ObjectSetVisibility
|
ObjectSetVisibility(menu,object,visibility,locked)
|
Set Visibility of object
0-visible, 1- Invisible Normal etc..
|
ObjectAutoAction
|
ObjectAutoAction(menu,object,autoaction)
|
Set if object has autoaction (FALSE, TRUE)
|
ObjectLinkToMenu
|
ObjectLinkToMenu(menu,object,menuTo)
|
Set link of this object to other menu
|
ObjectLinkToMovie
|
ObjectLinkToMovie(menu,object,MovieNumber,ChapterNumber)
|
Set link of this object to movie and/or chapter number (starts from 1)
|
ObjectCopy
|
newObject = ObjectCopy(menu,object,menuTo)
|
Create new object by copying. You can create that object in different menu.
|
ObjectGetLabel
|
sLabel = ObjectGetLabel(menu,object)
|
Get label of the object.
Label is internal name of the object that can be used for indentification
|
ObjectSetLabel
|
ObjectSetLabel(menu,object,sLabel)
|
Set label of the obejct
|
ObjectGetFromLabel
|
objText1 = ObjectGetFromLabel(menu,"text1")
|
Finds object from the speciffied Button Label. Returns -1 if none found.
|
ObjectGetMenuLink
|
nMenu = ObjectGetMenuLink(menu,object)
|
Get to which menu the object links 0-if no menu link
|
ObjectGetMovieLink
|
nMovie = ObjectGetMovieLink(menu,object)
|
Get to which movie the object links 0-if no movie link
|
ObjectGetChapterLink
|
nChapter = ObjectGetChapterLink(menu,object)
|
Get to which chapter of movie the object links, 1- Movie start
|
Image
Image is a special set of commands that allows access to the bitmap data of a menu objects. Text, rectangles or frames will be first converted to bitmap.
The image functions never access the image data directly, but first creates a copy of it with ImgGrabObject then allows you to freely change the data and after that set that image back to object (or any other object in fact) with ImgSetToObject. You have 3 image buffers where you can store these data, or directly create empty buffer with ImgCreate. These buffers are referred to by the imgNum parameter in every Img command.
So the typical scenario for a script that can change the object on a menu would be:
menu = MenuGetCurSel()
|
Get the currently opened menu
|
object= ObjectGetCurSel(menu)
|
Get currently selected object on the menu
|
ImgGrabObject(1,menu,object)
|
Put the bitmap data into buffer 1
|
imgW = ImgGetWidth(1)
imgH = ImgGetHeight(1)
|
get the dimensions of the bitmap data (for example for loop)
|
......
|
do whatever you want to the buffer with ImgSet etc.
|
ImgSetToObject(1,menu,object)
|
Put the buffer 1 back to the object
|
Direct image data manipulation in a loop is a slow process.
It is important to note that ImgSetToObject will not resize the object if the image buffer is different size than the object. You can resize the object afterwards to the same size like image buffer with the object command: ObjectSetSize(menu,object,imgW,imgH)
Command
|
Parameters and Usage
|
Comments
|
ImgGrabObject
|
ImgGrabObject(imgNum,menu,object)
|
Grabimage data from object
imgNum = temporary image buffer 1,2 or 3")
If object is 0 then a background will be grabbed
|
ImgSetToObject
|
ImgSetToObject(imgNum,menu,object)
|
Set image data to Object
|
ImgCreate
|
ImgCreate(imgNum,width,height)
|
Create empty image data with defined size
|
ImgHasData
|
bHasData = ImgHasData(imgNum)
|
Does the image buffer has any data?
|
ImgGetWidth
|
imgW = ImgGetWidth(imgNum)
|
Get width of the image buffer
|
ImgGetHeight
|
imgH = ImgGetHeight(imgNum)
|
Get Height of the image buffer
|
ImgGetR
|
r = ImgGetR(imgNum,x,y)
|
Get red color of pixel at x, y
|
ImgGetG
|
g = ImgGetG(imgNum,x,y)
|
-green-
|
ImgGetB
|
b = ImgGetB(imgNum,x,y)
|
-blue-
|
ImgGetA
|
a = ImgGetA(imgNum,x,y)
|
-alpha transparency-
|
ImgSetR
|
r = ImgSetR(imgNum,x,y,nValue)
|
Set Red color to the pixel at x,y
|
ImgSetG
|
g = ImgSetG(imgNum,x,y,nValue)
|
-green-
|
ImgSetB
|
b = ImgSetB(imgNum,x,y,nValue)
|
-blue-
|
ImgSetA
|
a = ImgSetA(imgNum,x,y,nValue)
|
-alpha transparency-
|
ImgFill
|
ImgFill(imgNum,color)
|
Fill whole buffer with color
|
ImgFillAlpha
|
ImgFillAlpha(imgNum,alpha)
|
Fill alpha channel of buffer with alpha value 0-255
|
ImgFillCol
|
ImgFillCol(imgNum,x,color)
|
Fill x column with color
|
ImgFillRow
|
ImgFillRow(imgNum,y,color)
|
Fill y row with color
|
ImgCopyCol
|
ImgCopyCol(imgNumFrom,xFrom,imgNumTo,xTo)
|
Copy column from one buffer to another
|
ImgCopyRow
|
ImgCopyRow(imgNumFrom,yFrom,imgNumTo,yTo)
|
Copy row from one buffer to another
|
ImgCopy
|
ImgCopy(imgNumFrom,imgNumTo,xOffset,yOffset)
|
Copy image data from one buffer to another. You can specify the offset from where to start copying
|
ImgCopyAlpha
|
ImgCopyAlpha(imgNumFrom,imgNumTo,xOffset,yOffset)
|
Copy only alpha data from one buffer to another
|
ImgOverlay
|
ImgOverlay(imgNumFrom,imgNumTo,xOffset,yOffset)
|
Overlay one image buffer on top of another
|
ImgGrabChapterFrame
|
ImgGrabChapterFrame(imgNum,nMovie,nChapter)
|
Grab a video frame from chapter to imgNum buffer.
nChapter = 0 ->Movie start
|
ImgGrabMenuFrame
|
ImgGrabMenuFrame(imgNum,nMenu)
|
Grab how a menu looks like to an image buffer
|
ImgResize
|
ImgResize(imgNum,nW,nH)
|
Resize buffer to any size
|
ImgBlur
|
ImgBlur(imgNum,nBlurValue)
|
Blur buffer.
nBlurValue 1-255
|
ImgBlurAlpha
|
ImgBlurAlpha(imgNum,nBlurValue)
|
Blur only alpha channel
nBlurValue 1-255
|
ImgSharpen
|
ImgSharpen(imgNum,nSharpen)
|
Sharpen Image buffer
nSharpen 1-100
|
ImgInflate
|
ImgInflate(imgNum,nAddW,nAddH)
|
Add empty border around the image buffer
|
Movie
Movie commands are not fully finished yet. There is no way to add for example chapters, slides to slideshow etc...
Command
|
Parameters and Usage
|
Comments
|
MovieGetCount
|
nC = MovieGetCount()
|
How many movies object we have in current VTS
|
MovieGetCurSel
|
movie = MovieGetCurSel()
|
Currently selected movie (movie window that is in front of other windows)
|
MovieAdd
|
movie = MovieAdd(IsSlideshow,"Name",openWindow)
|
|
MovieDelete
|
MovieDelete(movie)
|
|
MovieActivate
|
MovieActivate(movie)
|
|
MovieSetFiles
|
MovieSetFiles(movie,sVideo,sAudio)
|
For multiplexed mpg use sVideo and sAudio the same file
|
Others
Here are few other support commands..
Command
|
Parameters and Usage
|
Comments
|
ProgressBar
|
ProgressBar(nFrom,nTo,"Text")
|
Creates progress bar with range nFrom to nTo
|
ProgressSetPos
|
ProgressSetPos(nPos)
|
Set progress in the progressbar to nPos value (nFrom<nPos<nTo)
|
SaveInteger
|
SaveInteger("uniquekey",variable)
|
Store in registry
|
LoadInteger
|
var = LoadInteger("uniquekey",default)
|
Read from registry
|
Variables
LabTALK will fill up few variables.
Command
|
Parameters and Usage
|
Comments
|
bCancelInput
|
if (bCancelInput) then
end
endif
|
If user press cancel on previous input command this variable will become TRUE
|
menusInBlackBox
|
|
Important array for script inside Components, see components for more details
|
vmgsInBlackBox
|
|
-//-
|
moviesInBlackBox
|
|
-//-
|
|