mirror of
https://github.com/20kdc/OC-KittenOS.git
synced 2024-11-23 10:58:06 +11:00
2ae3f9a93a
Currently eeprog pirate-speak language is unsupported, but... oh well.
149 lines
2.9 KiB
Plaintext
149 lines
2.9 KiB
Plaintext
Read API Documentation,
|
|
before reading this.
|
|
|
|
Note that access to any
|
|
component can be gotten
|
|
by prefixing the type
|
|
of component with "c.",
|
|
but unless interfacing
|
|
with an external device,
|
|
use "stat" and "randr".
|
|
("randr" covers your
|
|
multi-screen needs.)
|
|
In a truly extreme case,
|
|
like an installer, you
|
|
can use "c.filesystem".
|
|
Signals from the devices
|
|
are not relayed, as I
|
|
am unsure of a way to
|
|
verify the source.
|
|
(It seems to be a default
|
|
to have the device as
|
|
the first parameter, but
|
|
I don't want to rely on
|
|
this behavior.)
|
|
|
|
There are exceptions:
|
|
A successful "c.modem" or
|
|
"c.tunnel" request will
|
|
enable the modem_message
|
|
event to make it
|
|
somewhat useful.
|
|
A similar thing occurs
|
|
for "c.chat_box",
|
|
and "root" allows seeing
|
|
all events.
|
|
|
|
Another way to get at
|
|
signals is the
|
|
"s.<signal>" permission.
|
|
Like the "c.<component>"
|
|
permission, it's a tiny
|
|
general means of getting
|
|
events that the kernel
|
|
has no way (or reason)
|
|
to access.
|
|
|
|
The interface has a
|
|
function to return an
|
|
iterator of proxies,
|
|
called "list".
|
|
The interface may have a
|
|
"primary" field if the
|
|
system has a 'primary'
|
|
choice for that device.
|
|
|
|
-------------------------
|
|
KittenOS A.request()
|
|
Acceptable Values:
|
|
|
|
"math", "table", "string"
|
|
, "unicode": Standard,
|
|
if indirect, access to
|
|
those Lua APIs.
|
|
(Done via metatable to
|
|
preserve memory.)
|
|
Note that the "unicode"
|
|
API has an additional
|
|
function:
|
|
safeTextFormat(txt,ptr)
|
|
adds spaces after wide
|
|
characters, making it
|
|
easier to display text
|
|
with wide characters
|
|
in. "ptr" can be a
|
|
point in the string,
|
|
and is also adjusted -
|
|
this can be used for
|
|
e.g. console cursors.
|
|
Returns atxt, aptr.
|
|
|
|
"root": The kernel _ENV.
|
|
Essentially everything.
|
|
|
|
"stat": Contains:
|
|
(names preserved, but
|
|
namespaces aren't)
|
|
computer:
|
|
totalMemory freeMemory
|
|
energy maxEnergy
|
|
os:
|
|
clock date difftime
|
|
time
|
|
Also contains
|
|
"component.list", but
|
|
named "componentList".
|
|
|
|
"proc": Contains:
|
|
aid: A field containing
|
|
the running app ID.
|
|
Usually pkg .. "-" .. n
|
|
where 'n' is a number.
|
|
pkg: A field containing
|
|
the app name (aka. pkg)
|
|
listApps()
|
|
Returns a table of
|
|
{package, aid} entries.
|
|
|
|
sendRPC(aid, ...)
|
|
Causes the "rpc" event
|
|
to be called, with the
|
|
given data parameters.
|
|
|
|
"lang":
|
|
getLanguage(): Gets the
|
|
current system language
|
|
getTable(): Loads and
|
|
calls the Lua file at
|
|
"/lang/<lang>/<pkg>.lua"
|
|
Failing that, returns
|
|
nil
|
|
|
|
"setlang": Actually one
|
|
function, setting the
|
|
system language.
|
|
|
|
"kill": Contains:
|
|
killApp(aid)
|
|
Kills a process.
|
|
|
|
"randr": Contains:
|
|
getResolution,
|
|
maxResolution,
|
|
setResolution,
|
|
(the above work
|
|
as on a GPU)
|
|
iterateScreens,
|
|
iterateGPUs
|
|
(the above iterate over
|
|
*non-primary* proxies,
|
|
direct control of the
|
|
primary screen is not
|
|
allowed)
|
|
"c.modem": See the notes
|
|
above on the "c." setup,
|
|
but note that this adds
|
|
the "modem_message"
|
|
callback.
|
|
"c.<component type>":
|
|
See the notes above. |