Commit Graph

44 Commits

Author SHA1 Message Date
hayodea b85d6f76a6 SenseApiMgr: add initialize/finalizeAllSenseApiLibs()
Also, SenseApiDesc: initializeInd() now takes void. We no longer
try to pass a struct of marionette-role ops into the libs. We'll
be using message queueing for the handshake side of async calls now.
2025-01-12 09:44:49 -04:00
hayodea c8a7a6678f Fix annoying build warning 2025-01-12 09:44:08 -04:00
hayodea c6577b1155 Add stringifiers to SenseApi related classes 2025-01-11 06:40:43 -04:00
hayodea bffc32519b ComponentThreads: now basics are working.
Next step is to get the unified event loops working generically
and then we can begin region-splitting up the data in harikoff.

We'll assign all the global resource managers to Marionette and
then assign the Mind components to the respective component threads.
2025-01-11 04:35:11 -04:00
hayodea 876526364b Build: Added -Wall,extra,-pedantic, fixed warnings and peeves. 2025-01-10 18:27:10 -04:00
hayodea 870b8de249 Marionette: Introduce concept and add other 3 component threads
We introduce the 4 main component threads of execution for Harikoff:
* Marionette: This is the resident hijacking module that makes Harikoff
  instances non-persons, if configured to allow hijacking.
* Director: :)
* Canvas: :)
* Subconscious: DB, storage and recall.
2025-01-10 17:37:49 -04:00
hayodea 9e35748d9a Rename Csal_lmo=>Csal_mlo, and introduce a Csal_mho role
* Introduce the hk end of the management role for the senseApiLibs.
* Implement a basic set of operations and callbacks for this role.
2025-01-09 17:18:24 -04:00
hayodea 53583e5735 SenseApiLib, SenseApiDesc improvements, new Sense API Mgmt Lib Ops role
SenseApiDesc:
* Use a number count for num exported implexor APIs instead of
  NULL-terminated list.
* Add sanity checker functions for structs.

SenseApiLib:
* Invoke the new sanity checkers on new Lib objects.
* SenseApiDesc is now a member object instead of being
  pointed to.

SenseApiManager:
* loadSenseApiLib now calls the SenseApiDesc getter function.
* loadSenseApiLib now fills out the SenseApiLib class object.

New Sense API Mgmt Sub-API:

This sub-api (metalanguage, some might call it) is used to initialize
the lib's connection to the provider. After this call, the lib should
be ready to attach new devices to its provider on behalf of Hk.
2025-01-09 06:03:43 -04:00
hayodea d14cef5328 Move senseApi libs into their own outer subdir 2025-01-08 17:28:21 -04:00
hayodea 1178970728 cmd:opts: Now set OptionParser::argv0 to argv[0] 2025-01-08 15:07:42 -04:00
hayodea 090f0d3b02 senseApiMgr: new method: loadAllSenseApisFromOptions
This method dlopens() all senseApi libs that were referenced by
device specs.
2025-01-08 15:06:31 -04:00
hayodea 04db7bf76c Fix build warning about decltype(dlclose) 2025-01-08 15:05:56 -04:00
hayodea bffa2b837c Opts: Make singleton; senseApi: check senseApiLibPath, get senseApiDescFn pointer.
* OptionsParser now has a singleton.
* We now use the cmdline opt -p <senseApiLibPath>, and search for
  the specified library in:
  * senseApiLibPath, then CWD, then the place where our executable
    is running from, and then finally we let the hosting OS do
    its own search.
* We now call dlsym() on dlopen()'d libs to to get the senseApiDescFn
  pointer.
2025-01-08 13:43:44 -04:00
hayodea b40790ee4a Whitespace 2025-01-08 11:50:16 -04:00
hayodea c864bcfdd2 SenseApis: Define descriptors exported by libs 2025-01-08 11:49:28 -04:00
hayodea fe3f911db4 SenseApis: New senseApiManager and X11XcbApi
Still fleshing these out but ultimately senseApiMgr will manage
sense apis, and the X11XcbApi is where we'll connect to Xcb and
read the screen.
2025-01-08 06:26:36 -04:00
hayodea f594d29a2d DevMgr: Add sensorDevSpecs list and make intero/extro lists use unique_ptr 2025-01-08 06:23:34 -04:00
hayodea 6a494f7ff7 cmd:opts: New -a (sense-api shlibs) and -p (api shlib search dir) opts 2025-01-08 06:19:46 -04:00
hayodea 36acbdfc36 cmd:opts: Add senseApiPath in prep for new cmd opts 2025-01-08 00:32:07 -04:00
hayodea dda8527e45 DeviceSpec: Rename server to provider 2025-01-07 20:03:03 -04:00
hayodea 42413d1cc6 DevMgr: Implement a wrapper around the yacc parser.
This wrapper reads the -d <devfile> arguments, collates
them into one big string and then feeds them into yacc.
2025-01-07 14:11:51 -04:00
hayodea 3b6ca14275 CmdOpts: merge -[i|a|e] into one -s option
We augmented the grammar to specify the type of device (intero,
extro or actuator) so we can now collapse the 3 dev spec cmd
line opts into 1 opt.
2025-01-07 14:05:23 -04:00
hayodea 6307d2869e DeviceManager: Initial class with DeviceSpecParser
Hopefully by the end of tonight we should be done with the dev
spec parser.
2025-01-05 14:19:53 -04:00
hayodea f16d3b24b3 cmdopts: Now accepts 0 or more -d opts
In preparation for the deviceSpecParser.
2025-01-05 14:04:31 -04:00
hayodea 00ce114d40 cmdopts: Add a -?/--help option 2025-01-05 13:35:14 -04:00
hayodea 77a19deb8e cmdopts: Add --interceptor, --extrospector, --actuator and --devicefile 2025-01-05 13:25:40 -04:00
hayodea b4e51a0d49 Rename: implix to implex 2025-01-05 12:03:08 -04:00
hayodea 90cab325e3 Mind: Rename simulator instance to "canvas" 2025-01-04 18:17:19 -04:00
hayodea 2eddecb7d6 Extrospector and Interoceptor both inherit from Sensor now 2025-01-04 14:34:54 -04:00
hayodea aa48342bc2 New classes: Sensor and Extrospector 2025-01-04 13:48:29 -04:00
hayodea bc589e28b7 formatting 2025-01-04 13:48:09 -04:00
hayodea 06e3db82ac Rename IntrinInteroceptor=>IntrinTeroceptor, NeutralInteroceptor=>NeutrinTeroceptor. 2025-01-04 13:46:33 -04:00
hayodea 89c8936e64 New class: Singlecept. Inherits from MentalEntity 2025-01-04 13:38:27 -04:00
hayodea 9e5ea0d78c Indentation, word wrap 2025-01-04 13:38:08 -04:00
hayodea 03a6590981 Rename [Pleasure/Pain]Interoceptor to [Postrin/Negtrin]Teroceptor 2025-01-04 13:36:18 -04:00
hayodea a1edf27e9e Idlework 2025-01-04 13:21:33 -04:00
hayodea dbbd3c477b Formatting 2025-01-04 13:21:24 -04:00
hayodea 0468046692 New class hk::Implix replaces Existent 2025-01-04 11:47:55 -04:00
hayodea 6ae037c7e7 Director: now has a goal. Goal inherits from Scene 2025-01-04 11:36:50 -04:00
hayodea c3461a73bb Hcore: Put everything in namespace hk:: 2025-01-04 11:32:37 -04:00
hayodea 841441806c Now builds.
* Cut out all extraneous includes.
2025-01-04 07:33:15 -04:00
hayodea 6beda55971 Add Director, director::CommandList, hk::Goal and fixups
* Simulator and Director are no longer singletons.
2025-01-03 21:22:03 -04:00
hayodea bf2c73ed29 Simulator: add singleton static instance 2025-01-03 21:00:01 -04:00
hayodea f9b377a9f4 Rename corelogic->hcore, add simulator skeleton classes 2025-01-03 20:06:49 -04:00