/*
 * Created by jiaqiang.ye@lnxall.com
 *
 * Simple LNXALL Hardware Abstraction Layer Test Applicaton
 *
 * 2024/11/13
 */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include "lnxall_hal.h"

int main(int argc, char *argv[])
{
	int power_down, ret;
	lnxhal_power_detect_t powerd;
	enum lnxhal_hwtype hwtype;

	powerd = NULL;
	hwtype = lnxhal_hw_gettype();
	fprintf(stdout, "Hardware type: %d, name: %s, has power-detect: %d\n",
		(int) hwtype, lnxhal_hw_getname(hwtype),
		lnxhal_hw_has(LNXHAL_HWCAP_POWER_DETECT));
	fflush(stdout);

	if (!lnxhal_hw_has(LNXHAL_HWCAP_POWER_DETECT))
		return 0;

	powerd = lnxhal_powerd_get(hwtype);
	if (powerd == NULL) {
		fputs("Error, failed to initialize power-down-detect.\n", stderr);
		fflush(stderr);
		return 1;
	}

	power_down = 0;
	ret = lnxhal_powerd_poll(powerd, 3600 * 1000, &power_down);
	fprintf(stdout, "powerd_poll has returned: %d, power_down: %d\n",
		ret, power_down);
	fflush(stderr);
	lnxhal_powerd_put(powerd);

	return 0;
}
