Example #1
0
void __main(void)
{
	Virgo v = {0};
	MSG msg;

	get_set_virgo(&v, 1);
	get_taskbarcreated_msg();

	virgo_init(&v);
	while (GetMessage(&msg, NULL, 0, 0)) {
		if (msg.message != WM_HOTKEY) {
			continue;
		}
		if (msg.wParam == NUM_DESKTOPS*2) {
			break;
		}
		if (msg.wParam == NUM_DESKTOPS*2+1) {
			virgo_toggle_hotkeys(&v);
		} else if (msg.wParam%2 == 0) {
			virgo_go_to_desk(&v, msg.wParam/2);
		} else {
			virgo_move_to_desk(&v, (msg.wParam-1)/2);
		}
	}
	virgo_deinit(&v);
	ExitProcess(0);
}
Example #2
0
int main(int argc, char **argv)
#endif
{
	Virgo v;
	MSG msg;
	virgo_init(&v);
	while(GetMessage(&msg, NULL, 0, 0)) {
		if(msg.message != WM_HOTKEY) {
			continue;
		}
		if(msg.wParam == NUM_DESKTOPS*2) {
			break;
		}
		if(msg.wParam%2 == 0) {
			virgo_go_to_desk(&v, msg.wParam/2);
		} else {
			virgo_move_to_desk(&v, (msg.wParam-1)/2);
		}
	}
	virgo_deinit(&v);
	return EXIT_SUCCESS;
}
Example #3
0
virgo_error_t *main_wrapper(virgo_t *v)
{
  virgo_error_t *err = NULL;
  char path[VIRGO_PATH_MAX];
  int perform_upgrade = FALSE;

  virgo__paths_get(v, VIRGO_PATH_DEFAULT_EXE, path, VIRGO_PATH_MAX);
  virgo_log_debugf(v, "Default EXE Path: %s", path);

  virgo__paths_get(v, VIRGO_PATH_EXE, path, VIRGO_PATH_MAX);
  virgo_log_debugf(v, "EXE Path: %s", path);

  virgo__paths_get(v, VIRGO_PATH_EXE_DIR, path, VIRGO_PATH_MAX);
  virgo_log_debugf(v, "Latest EXE Path: %s", path);

  /* See if we are upgrading */
  if (virgo_try_upgrade(v)) {
    /* Attempt upgrade. On success this process gets replaced. */
    err = virgo__exec_upgrade(v, &perform_upgrade, &upgrade_status_cb);
    if (err) {
      return err;
    }
  }

  err = virgo__paths_get(v, VIRGO_PATH_CURRENT_EXECUTABLE_PATH, path, sizeof(path));
  if (err) {
    handle_error(v, "Could not find current executable name", err);
    return err;
  }

  // virgo_log_debugf(v, "Process Executable: %s", path);

  /* Setup Lua Contexts for Luvit and Libuv runloop */
  err = virgo_init(v);
  if (err) {
    if (err->err == VIRGO_EHELPREQ) {
      show_help();
      virgo_error_clear(err);
      return VIRGO_SUCCESS;
    }
    else if (err->err == VIRGO_EVERSIONREQ) {
      show_version(v);
      virgo_error_clear(err);
      return VIRGO_SUCCESS;
    }
    else if (err->err == VIRGO_MAINTREQ) {
      service_maintenance(v);
      virgo_error_clear(err);
      return VIRGO_SUCCESS;
    }

    handle_error(v, "Error in init", err);
    return err;
  }

  err = virgo_agent_conf_set(v, "version", VERSION_FULL);
  if (err) {
    handle_error(v, "Error setting agent version", err);
    return err;
  }

  /* Enter Luvit and Execute */
  err = virgo_run(v);
  if (err) {
    handle_error(v, "Runtime Error", err);
    return err;
  }

  /* Cleanup */
  virgo_destroy(v);
  return VIRGO_SUCCESS;
}