internal void Init(string[] args) { string[] newArgs = new string[args.Length + 1]; newArgs[0] = "program"; if (System.Reflection.Assembly.GetEntryAssembly() != null) { newArgs[0] = System.Reflection.Assembly.GetEntryAssembly().FullName; } Array.Copy(args, 0, newArgs, 1, args.Length); ctx = Cfunctions.Survive_init_internal(newArgs.Length, newArgs, IntPtr.Zero, log_func); if (ctx == IntPtr.Zero) { throw new Exception("There was a problem initializing the lib!"); } light_Process_Func = LightEvent; raw_Pose_Func = PoseEvent; lighthouse_pose_process_func = LightHouseEvent; angle_Process_Func = AngleEvent; button_Process_Func = ButtonEvent; Config_Func = ConfigEvent; imu_Process_Func = IMUEvent; log_func = InfoEvent; Cfunctions.Survive_install_pose_fn(ctx, raw_Pose_Func); Cfunctions.Survive_install_light_fn(ctx, light_Process_Func); Cfunctions.Survive_install_lighthouse_pose_fn(ctx, lighthouse_pose_process_func); Cfunctions.Survive_install_angle_fn(ctx, angle_Process_Func); Cfunctions.Survive_install_button_fn(ctx, button_Process_Func); Cfunctions.Survive_install_config_fn(ctx, Config_Func); Cfunctions.Survive_install_imu_fn(ctx, imu_Process_Func); }
public static extern void Survive_install_angle_fn(SurviveContextPtr ctx, angle_process_func fbp);
internal void CreateContext() { LogInfo("Start Init"); SetupConfigs configs = new SetupConfigs { configFile = "survive_conf.json" }; string[] args = CreateStartParameters(configs); //string[] vs = new[] { "--playback", "P:/c/libsurvive-data/lightcap-reformat/lightcap-reformat.log", "--disambiguator", "StateBased", "--calibrate" }; context = Cfunctions.Survive_init_internal(args.Length, args); if (context == IntPtr.Zero) { throw new Exception("There was a problem initializing the lib!"); } light_Process_Func = LightEvent; raw_Pose_Func = PoseEvent; lighthouse_Pose_Func = LightHouseEvent; angle_Process_Func = AngleEvent; button_Process_Func = ButtonEvent; htc_Config_Func = HTCConfigEvent; imu_Process_Func = IMUEvent; error_func = ErrorEvent; info_func = InfoEvent; Cfunctions.Survive_install_raw_pose_fn(context, raw_Pose_Func); Cfunctions.Survive_install_light_fn(context, light_Process_Func); Cfunctions.Survive_install_lighthouse_pose_fn(context, lighthouse_Pose_Func); Cfunctions.Survive_install_angle_fn(context, angle_Process_Func); Cfunctions.Survive_install_button_fn(context, button_Process_Func); Cfunctions.Survive_install_htc_config_fn(context, htc_Config_Func); Cfunctions.Survive_install_imu_fn(context, imu_Process_Func); Cfunctions.Survive_install_error_fn(context, error_func); Cfunctions.Survive_install_info_fn(context, info_func); LogInfo("Finished Init"); LogInfo("Start Startup"); int a = 0; try { a = Cfunctions.Survive_startup(context); } catch (Exception) { throw; } if (a != 0) { throw new Exception("Error in startup"); } LogInfo("Finished Startup"); }