1981 - NewsPeek
     1983 - GIN
     1989 - SmarTV
     1992 - GenMagic
     1994 - CDML
     1994 - Social Ads
     1996 - Venue OS
     1999 - Lumeria

Venue OS:
   Message Types
   Venue Cash Card

* The History Behind Broadcatch - VOS

VOS Languange: Verbs

(rev 2.4, 12/17/96)
(See also: Events)

The verbs head each section. The arguments associated with each verb follow in order, and need to be formatted in the writeLog Lingo call with tabs between the verb and the first argument, and between each other.

Note1: Verbs are case insensitive
Note2: Trailing arguments that you don't care about can be omitted.
Note3: A numerical timestamp may optionally appear as the first field, followed by a TAB and then the verb.
Note4: Writelog now (as of 12/17/96) places a numtochar(10) at the end of each line, so you don't have to.
Note5: We will, in the not-too-distant future, switch to sending messages according to a generic architecture. All verbs will then be sent using a property list and the setData message type

CPP Related

    Login		# log in a user at a particular machine

    Logout		# log out the user
	CustomerID		# get this from getData("cppUser")

    Profiles		# create or modify a user's profile
	ProfileID		# NULL creates a new profile
				# else modify the specified profile
	CustomerID		# get this from getData("cppUser")
				# ignored if modifying a profile
	AvatarName		# something like "joe"
	AvatarImage		# a pathname (/images/avatars/Me)
	AvatarImageType		# e.g., GIF, PICT, etc.
	MusicPrefsID		# pointer to a Music prefs entry
	VideoPrefsID		# pointer to a Video prefs entry
	ArtPrefsID		# pointer to a MediaBar prefs entry
	FoodPrefsID		# pointer to a Food prefs entry

    DefaultProfileID	# set the user's default profile ID number
	CustomerID		# get this from getData("cppUser")
	ProfileID		# new profileID number to set

    SetPrefs		# save a property list into the preferences table
			# (see macros, below)
        ProfileID               # the ProfileID being affected
        PrefsType               # "MediaBar" or "Video" or "Music" or ....
        PrefsProps              # a property list as a string
        PrefsName               # optional; a name for these prefs
        PrefsIDList             # optional; eventually a set, points to e.g. play lists
        Creator                 # optional; a ProfileID
        AccessControl           # optional; access control list (currently undefined)
        PrefsOrder              # optional; usage ordering for each type (0 -> current)

Food Related Verbs

The main verbs here are BeginFoodOrder and EndFoodOrder. Within these two verbs are BeginSendToKitchen and EndSendToKitchen. Everything between these latter two verbs is sent verbatum to the Kitchen with the subject of the mail being the FoodOrderNumber (this is some token that the Food app uses to keep track of the orders) and (for now) the MachineIPAddr (which the kitchen could easily map to a physical machine location).
    BeginFoodOrder	# begin a food order
	FoodOrderNumber		# the order reference number

    EndFoodOrder      	# end a food order
    BeginSendToKitchen	# begin text to send verbatum to the kitchen
    EndSendToKitchen  	# end verbatum text sent to kitchen


For your programming convenience, the following macros have been defined:
    CreateProfile CustomerID name passwd image imagetype ...
    ModifyProfile ProfileID  name passwd image imagetype ...
    SetArtPrefs   ProfileID  PropList ...
    SetMusicPrefs ProfileID  PropList ...
    SetVideoPrefs ProfileID  PropList ...
    SetFoodPrefs  ProfileID  PropList ...
    SetMbarPrefs     (synonym for SetArtPrefs)
    SetMediaBarPrefs (synonym for SetArtPrefs)

Example 1 - login & set avatar image

Note6: These examples are greatly simplified
    -- login customer UserName with passwd = UserPasswd
    writelog 1, "login" &Tab& UserName &Tab& UserPasswd
    -- here's the same call with the optional timestamp (see Note3)
    put timestamp
    writelog 1, timestamp &TAB& "login" &Tab& UserName &Tab& UserPasswd

    -- get info about user
    set userPL = value getDatabaseList( "cppUser" )
    set CustID = getProp( userPL, #CustomerID )
    set ProfID = getProp( userPL, #ProfileID )

    -- change current profile
    -- (the CustomerID field is ignored, and is set here to 'NULL')
    writelog( 1, "profiles" &Tab& ProfID &Tab& "NULL" &Tab&
              NickName &Tab& "NULL" &Tab& PictName &Tab& "PictType"

    -- to create a brand new profile, set the ProfileID to 'NULL', viz:
    writelog( 1, "profiles" &Tab& "NULL" &Tab& CustID &Tab&
              NickName &Tab& "NULL" &Tab& PictName &Tab& "PictType"

    -- to get all the profiles for a customer (this will change):
    defineRelationQuery("CustomerProfiles", "profiles",
                        "select ProfileID from profiles $1;")
    set CustProfList = value getDatabaseList("CustomerProfiles",
                        "where CustomerID='" & CustID & "'")

    -- to set CurrentProfile (for now, use the DefaultProfileID)
    writelog 1, "DefaultProfileID" &Tab& CustID &Tab& ProfID

Example 2 - set & get MediaBar prefs

    -- set MediaBar prefs using SetPrefs:
    writelog( 1, "setprefs" &Tab& UserProfileID &Tab&
              "MediaBar" &Tab& mbarPropListAsString
    -- the macro form SetMbarPrefs could have been used instead:
    -- writelog( 1, "setmbarprefs" &Tab& UserProfileID &Tab&
    --           mbarPropListAsString

    defineRelationQuery("MediaBarPrefs", "profiles,preferences",
                        "select PrefsProps from preferences where PrefsID in
                        (select ArtPrefsID from profiles $1;")
    set mbarPropList = value getDatabaseList("MediaBarPrefs",
                        "where ProfileID='" & UserProfileID & "'")
Note7: In the writelog call, the strings "Mbar" and "Art" are synonyms for "MediaBar"
Note8: To get and/or set other prefs using SetPrefs:
  • replace the string "MediaBar" above with "Video", "Music", or "Food", and
  • "ArtPrefs" with "VideoPrefs", "MusicPrefs" and "FoodPrefs", respectively
Note9: Capitalization is not important, but be consistent.
   Copyright © 1994-2007, Fen Labalme and CoMedia Consulting. All Rights Reserved.
Broadcatch is built on the OpenPrivacy Platform
I wish this
site were
Drupal Strategy and Consulting
This Site Supports Free Speech