Essentials:
Home
Definition
Requirements
Company
Background:
History
1981 - NewsPeek
1983 - GIN
1989 - SmarTV
1992 - GenMagic
1994 - CDML
1994 - Social Ads
1996 - Venue OS
1999 - Lumeria
Venue OS:
DBMS
Communications
Message Types
Verbs
Events
Examples
Venue Cash Card
Broadcatch
|
|
|
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
CustomerName
CustomerPasswd
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"
AvatarPasswd
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
32727891
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.
|