#ifndef LIBWRAPPER_H
#define LIBWRAPPER_H
#include <libubox/list.h>

#include "libmobile_hilink.h"
#include "libmobile_zte.h"
/* ORIGINALLY FROM DONGLE.H - WHERE DOES IT BELONG? */
struct USB {
	char *product;
	char *product_id;
	char *vendor_id;
	char *if_name;
};

struct device {
	struct list_head list;
	struct ubus_object *ubus_obj;

	struct USB usb;
	char *ip;
	int missing; //counter
	bool present;
};

struct json_object *mobile_set_pin(struct device *dev, char *current_pin, char *new_pin);
struct json_object *mobile_disable_pin(struct device *dev, char *pin);
struct json_object *mobile_verify_pin(struct device *dev, char *pin);
struct json_object *mobile_enable_pin(struct device *dev, char *pin);
struct json_object *mobile_get_remaining_tries(struct device *dev);
struct json_object *mobile_unlock_sim(struct device *dev, char *pin, char *puk);
struct json_object *mobile_get_apn_profiles(struct device *dev);
struct json_object *mobile_delete_apn_profile(struct device *dev, char *name);
struct json_object *mobile_set_apn_profile(struct device *dev, char *name);
struct json_object *mobile_create_apn_profile(struct device *dev, char *profile_name, char *wan_apn, char *pdp_type);
struct json_object *mobile_get_current_apn(struct device *dev);
struct json_object *mobile_get_rssi(struct device *dev);
struct json_object *mobile_connect_network(struct device *dev);
struct json_object *mobile_disconnect_network(struct device *dev);
struct json_object *mobile_get_modem_state(struct device *dev);
struct json_object *mobile_enable_roaming(struct device *dev);
struct json_object *mobile_disable_roaming(struct device *dev);
struct json_object *mobile_get_roam_status(struct device *dev);
struct json_object *mobile_get_pin_status(struct device *dev);
#endif