/*
 * Copyright (c) 2019 Clementine Computing LLC.
 *
 * This file is part of PopuFare.
 * 
 * PopuFare is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * PopuFare is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with PopuFare.  If not, see <https://www.gnu.org/licenses/>.
 *
 */

#ifndef _DRIVER_H
#define _DRIVER_H

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

#include <sys/types.h>
#include <unistd.h>
#include <time.h>

#include <string.h>

#include "../commhub/commhub.h"
#include "../commhub/client_utils.h"
#include "../common/common_defs.h"

#include "mongoose.h"

extern driver_status my_driver_status;
extern int update_driver_status;

extern time_t paddle_req_timeout;
extern set_paddle_req paddle_req;

extern int hub_fd;

//-------------------------------------------------------------------------------------

void clear_diu_messages();
int check_paddle_request();

int make_paddle_request(int);

int driver_login(int, char*);

void action_nextstop(void);
void action_prevstop(void);

void ws_send(struct mg_mgr *mgr, char *msg);
extern struct mg_mgr g_mgr;

#endif
