#Warning! Strange things may happen if this file is changed.
#The file is copied from ../python/ during make-process.

# This file contains the info to generate radium.i, wraplistfunc.c, radium_wrap.c and radium_proc.h
# Its also used by keybindingsconf.py to find default arguments.

# ?S lines are inserted into radium.i, and ?H lines are inserted into radium_proc.h

# Important, syntax must be: "char* funcname", not: "char<space>*funcname" or "char<space>* funcname".



#***************************************
# Lines inserted in the top of radium.i
#***************************************
?S    %module radium
?S    %typemap(python,in) PyObject* {
?S	$target=$source;
?S    }
?S    /* Put headers and other declarations here-*/
?S    %{
?S    %}



#/*******************************************
#  Initialization
#*******************************************/

init_radium 		| char* arg | PyObject* gkf
const char* ER_keyAdd	| int key | char* funcname | PyObject* keys | PyObject* args



#/*******************************************
#  Computer Keyboard Note Playing/Editing 
#*******************************************/

keyDownPlay 		| int notenum | int windownum ? -1
polyKeyDownPlay 	| int notenum | int windownum ? -1
keyUpPlay 		| int notenum | int windownum ? -1

setKeyAdd 		| int addnum
incKeyAdd 		| int incaddnum
decKeyAdd 		| int decaddnum

switchEditOnOff
switchScrollPlayOnOff
switchSoundScrollOnOff	| int windownum ? -1

incNoteVolume | int incvolume | int windownum ? -1


#/*******************************************
#  Navigating 
#*******************************************/

cursorDown		| int numlines | int windownum ? -1
cursorUp 		| int numlines | int windownum ? -1
cursorNextNote 		| int windownum ? -1
cursorPrevNote 		| int windownum ? -1
cursorPercentLine 	| int percent | int windownum ? -1

selectNextBlock 	| int windownum ? -1
selectPrevBlock 	| int windownum ? -1
selectNextPlaylistBlock
selectPrevPlaylistBlock
selectTrack 		| int tracknum | int windownum ? -1

cursorRight 		| int windownum ? -1
cursorNextTrack 	| int windownum ? -1
cursorLeft		| int windownum ? -1
cursorPrevTrack 	| int windownum ? -1


#/*******************************************
#  Track on/off
#*******************************************/

allTracksOn

switchTrackOn		| int tracknum ? -1 | int windownum ? -1
soloTrack		| int tracknum ? -1 | int windownum ? -1
switchSoloTrack		| int tracknum ? -1 | int windownum ? -1


#/*******************************************
#  Zoom
#*******************************************/

expandLine | int numlines | int windownum ? -1

splitLine | int numlines | int windownum ? -1

unsplitLine | int windownum ? -1

zoom | int incfontsize | int windownum ? -1

unzoom | int windownum ? -1


#/*******************************************
#  Notemanipulation
#*******************************************/
transposeTrack | int transpose | int windownum ? -1
transposeBlock | int transpose | int windownum ? -1
transposeRange | int transpose | int windownum ? -1
transposeNote | int transpose | int windownum ? -1

invertTrack | int windownum ? -1
invertBlock | int windownum ? -1
invertRange | int windownum ? -1

pexpandTrack | int f ? -1000 | int windownum ? -1
pexpandBlock | int f ? -1000 | int windownum ? -1
pexpandRange | int f ? -1000 | int windownum ? -1

backwardsTrack | int windownum ? -1
backwardsBlock | int windownum ? -1
backwardsRange | int windownum ? -1

quantitizeTrack | int windownum ? -1
quantitizeBlock | int windownum ? -1
quantitizeRange | int windownum ? -1

glissando | int windownum ? -1

int getNoteNote | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
void putNoteNote | int notenote | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
int getNoteVolume | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
float getNotePlace | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
float getNoteEndPlace | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
int getNumNotes | int blocknum ? -1 | int tracknum ? -1 | int windownum ? -1

void setLPB | int lpb
void setBPM | int bpm

int addLPB | int lpb | int line | int counter | int dividor | int blocknum ? -1
int addBPM | int bpm | int line | int counter | int dividor | int blocknum ? -1

void setNoteEndPlace | int line | int counter | int dividor | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 | int notenum ? -1
int addNote | int notenum | int velocity | int place_line | int place_counter | int place_dividor | int end_line ? -1 | int end_counter ? -1 | int end_dividor ? -1 | int windownum ? -1 | int blocknum ? -1 | int tracknum ? -1 

#/*******************************************
#  Playing
#*******************************************/
playBlockFromStart | int windownum ? -1
playBlockFromCurrent | int windownum ? -1
playSongFromStart
playSongFromCurrent | int windownum ? -1
playRange | int windownum ? -1

playStop


#/*******************************************
#  Clipboard
#*******************************************/

cancelRange | int windownum ? -1
cutRange | int windownum ? -1
cutTrack | int windownum ? -1
copyRange | int windownum ? -1
copyTrack | int windownum ? -1
copyBlock | int windownum ? -1
pasteRange | int windownum ? -1
pasteTrack | int windownum ? -1
pasteBlock | int windownum ? -1
markRange | int windownum ? -1


#/*******************************************
#  Undo
#*******************************************/

setMaxUndos | int windownum ? -1
redo
undo


#/*******************************************
#  Various
#*******************************************/

editorWindowToFront | int windownum ? -1
playListWindowToFront
instrumentWindowToFront
helpWindowToFront

maximizeEditorWindow | int windownum ? -1
minimizeEditorWindow | int windownum ? -1

toggleFullScreen | int windownum ? -1
showHideInstrumentWidget | int windownum ? -1
showHidePlaylist | int windownum ? -1

addFX | int windownum ? -1
insertReallines | int toinsert | int windownum ? -1
generalDelete | int windownum ? -1
insertLines | int toinsert ? 0 | int windownum ? -1 
generalReturn | int windownum ? -1
appendBlock
swapTracks | int windownum ? -1
splitBlock | int windownum ? -1
setNumTracks | int numtracks | int blocknum ? -1 | int windownum ? -1
setNumLines | int numlines | int blocknum ? -1 | int windownum ? -1
changeTrackNoteLength | int windownum ? -1
changeBlockNoteLength | int windownum ? -1
minimizeTrack | int windownum ? -1
minimizeBlockTracks | int windownum ? -1
quit
saveAs
save
load
importMidi
insertTracks | int numtracks | int windownum ? -1
deleteTracks | int numtracks | int windownum ? -1
deleteBlock | int windownum ? -1
insertBlock | int windownum ? -1
int numTracks | int blocknum ? -1
int numBlocks
setTrackNoteShowType | int type | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
setTrackVolume | float volume | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
setTrackPan | float pan | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
switchTrackNoteShowType | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
setBlockNoteShowType | int type | int blocknum ? -1 | int windownum ? -1
switchBlockNoteShowType | int blocknum ? -1 | int windownum ? -1

addMenuMenu | char* name | char* command
goPreviousMenuLevel
addMenuItem | char* name | char* command
addCheckableMenuItem | char* name | char* command | int checkval ? 0
addMenuSeparator



#/*******************************************
#  Instruments
#*******************************************/

selectPatchForTrack | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
setInstrumentForTrack | int instrumentnum | int tracknum ? -1 | int blocknum ? -1 | int windownum ? -1
int createNewInstrument | char* type | char* name
setInstrumentName | int instrument_num | char* name
char* getInstrumentName | int instrument_num
#setInstrumentVolume | int instrument_num | float volume
#float getInstrumentVolume | int instrument_num
setInstrumentData | int instrument_num | char* key | char* value
char* getInstrumentData | int instrument_num | char* key
midi_resetAllControllers
midi_localKeyboardOn
midi_localKeyboardOff
midi_allNotesOff
midi_allSoundsOff
midi_setInputPort


#/*******************************************
#  Requester
#*******************************************/

configColors | int windownum ? -1
configFonts  | int windownum ? -1
configWindow | int windownum ? -1
configBlock | int windownum ? -1
const char* getLoadFilename | char* text | char* dir ? ""
const char* getSaveFilename | char* text | char* dir ? ""
openRequester | char* text | int width ? 50 | int height ? 20
closeRequester
int requestInteger | char* text | int min | int max
float requestFloat | char* text | float min | float max
char* requestString | char* text
int requestMenu | char* text | PyObject* arguments
char* requestMidiPort
showWarning | char* text
showError | char* text


#/*******************************************
#  Advanced 
#*******************************************/

addNoteAdds | PyObject* noteadds | int windownum | int blocknum | int tracknum | float startplace | int sort



