GETTING STARTED WITH OLPROFILE'D TOOLS OLProfiled external tools like BuzzScript uses OLProfiles and SendMessage Codes to work with some of buzz's interface: OLPROFILE FORMAT Overloader 1.5 introduces OLProfiles OLProfiles is a set of files under Buzz\Tools\OLProfiles\ these profiles are formatted and read like INI files. and they contain a decent amount of details (which may have more options in the future). There are basically 3 kinds of olprofiled set of tools. Each of them appear differently in buzz's gui. * Pattern tools get their files (commands) displayed in the pattern view's right click menu. * Sequencer tools get their files (commands) displayed in the sequence view's right click menu. * WavTab tools get their files (commands) displayed in the wavetable under a button called "Scripts" which displays a menu. Sample OLProfile file (Pattern Editor): _____________________________________________________ [INFORMATION] tooltype=pattern type=exe pathtype=relative path=Tools\XYZ\ exename=xyz.exe commandline=hwnd_file title=XYZ text=XYZ is a dogoodle designed to create spurious notes [PATTERNENUM] enumerator=internal_files enumerator_filetype=patxyz ____________________________________________________ Sample OLProfile file (Sequencer): _____________________________________________________ [INFORMATION] tooltype=sequencer type=exe pathtype=relative path=Tools\XYZ\ exename=xyz.exe commandline=hwnd_file title=XYZ text=XYZ is a dogoodle designed to create spurious notes [SEQUENCERENUM] enumerator=internal_files enumerator_filetype=seqxyz ____________________________________________________ Sample OLProfile file (Wavetable): _____________________________________________________ [INFORMATION] tooltype=wavtab type=exe pathtype=relative path=Tools\XYZ\ exename=xyz.exe commandline=hwnd_file title=XYZ text=XYZ is a dogoodle designed to create spurious notes [WAVTABENUM] enumerator=internal_files enumerator_filetype=wavxyz ____________________________________________________ Most of the details look the same for these different sets of tools, except that the ENUM header is different, and some attributes may not make sense with one, compared to another. tooltype this can be either pattern, sequencer or wavtab type this is generally exe pathtype "relative" for relative paths from buzz's path, or "absolute" for an absolute path (using absolute is discouraged, but possible) path the path itself exename the name of the executable file for the tool commandline This sets what to send to the tool as command line arguments. numrows_numcols_file (in pattern view) Send two integers (num and column) and the file invoked. numcols_file (in pattern view) sends the number of columns as an integer, and the file invoked. numrows_file (in pattern view) sends the number of rows as an integer, and the file invoked. file sends the name of the file invoked hwnd_file Sends the hwnd for the main buzz window (child windows can be found using FindWindowEx) and the file invoked. title this shows up in the "about components" dialog box text this shows up in the "about components" dialog box enumerator this can only be set to internal_files for now, it browses the files in the tool's main folder and lists them in the involved menu in buzz. the selected file is sent in the arguments. enumerator_filetype this specifies what file extension to look for to list. SENDING MESSAGES TO OVERLOADER To send messages and recieve back useful information, you can send 19034 to Buzz's Window with a Command integer: SendMessage(BuzzWindow, 19034, Command, Value) Command is as follows: Command = 1 Returns cached number of rows; Command = 2 Returns cached number of tracks (columns) Command = 3 Force a new number of row and tracks values for the cache. Command = 4 Returns cached pattern selection start; Command = 5 Returns cached pattern selection end Command = 6 Returns the info that pattern has a global track (or not). Command = 7 Returns a integer representing a note Command = 8 Gets the pattern name into a buffer Command = 9 Outputs the next character in the command 8 buffer, 0 if finished Command = 10 Gets the pattern's value (written in the statusbar) into a buffer Command = 11 Outputs the next character in the command 10 buffer, 0 if finished Command = 12 Gets the current track Command = 20 Sets if the input file content is stereo Command = 21 Sets if the input file content is looped Command = 22 Sets if the input file content is integer based Command = 23 Sets the offset of the pcm data in the input file content Command = 24 Sets the length of input file content data to Value Command = 25 Reads opswi[Value].tmp as raw pcm data into a wavetable entry and sets it's attributes based on command 20 to 24.