/usr/share/SuperCollider/SCClassLibrary/DefaultLibrary/Main.sc is in supercollider-common 1:3.4.5-1wheezy1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | Main : Process {
// do not change the next lines manually:
//==== replace with new version from bash script ====
classvar scVersionMajor=3, scVersionMinor=4, scVersionPostfix=".5";
//==== end replace ====
var <platform, argv;
var <>recvOSCfunc;
// proof-of-concept: the interpreter can set this variable when executing code in a file
// should be nil most of the time
startup {
// setup the platform first so that class initializers can call platform methods.
// create the platform, then intialize it so that initPlatform can call methods
// that depend on thisProcess.platform methods.
platform = this.platformClass.new;
platform.initPlatform;
super.startup;
// set the 's' interpreter variable to the default server.
interpreter.s = Server.default;
GUI.fromID( this.platform.defaultGUIScheme );
GeneralHID.fromID( this.platform.defaultHIDScheme );
this.platform.startup;
StartUp.run;
("Welcome to SuperCollider"
++ (Platform.ideName.switch(
"scvim", {", type :SChelp for help"},
"scel", {", type ctrl-c ctrl-h for help"},
"sced", {", type ctrl-U for help"},
"scapp", {", type cmd-d for help"}
) ?? {
(
osx: ", type cmd-d for help",
linux: ", for help type ctrl-c ctrl-h (Emacs) or :SChelp (vim) or ctrl-U (sced/gedit)",
windows: ", press F1 for help",
iphone: ""
).at(platform.name);
})
).postln;
}
shutdown { // at recompile, quit
Server.quitAll;
this.platform.shutdown;
super.shutdown;
}
run { // used to be called by command-R, customisation now via CocoaMenuItem
//interpreter.interpretPrintCmdLine;
}
stop { // called by command-.
CmdPeriod.run;
}
hardStop { // called by command alt dot
CmdPeriod.hardRun;
}
recvOSCmessage { arg time, replyAddr, msg;
// this method is called when an OSC message is received.
recvOSCfunc.value(time, replyAddr, msg);
OSCresponder.respond(time, replyAddr, msg);
}
recvOSCbundle { arg time, replyAddr ... msgs;
// this method is called when an OSC bundle is received.
msgs.do({ arg msg;
this.recvOSCmessage(time, replyAddr, msg);
});
}
newSCWindow {
var win, palette;
win = SCWindow("construction");
win.front;
win.toggleEditMode;
}
// override in platform specific extension
//
// platformClass {
// ^Platform
// }
argv {
^argv ?? { argv = this.prArgv }
}
showHelpBrowser {
Help.gui
}
showHelpSearch {
Help.searchGUI
}
showClassBrowser {
var string, class, method, words;
string = interpreter.cmdLine;
class = string.asSymbol.asClass;
(class ? Object).browse;
}
*version {^[scVersionMajor, ".", scVersionMinor, scVersionPostfix].join}
*versionAtLeast { |maj, min|
^if((maj==scVersionMajor) and:{min.notNil}){
scVersionMinor >= min
}{
scVersionMajor >= maj
};
}
*versionAtMost { |maj, min|
^if((maj==scVersionMajor) and:{min.notNil}){
scVersionMinor <= min
}{
scVersionMajor <= maj
};
}
pid {
_GetPid
^this.primitiveFailed
}
// PRIVATE
prArgv {
_Argv
^[]
}
recompile { platform.recompile }
escapeWindow { platform.escapeWindow }
exitFullScreen { platform.exitFullScreen }
setDeferredTaskInterval { |interval| platform.setDeferredTaskInterval(interval) }
}
|