49 lines
847 B
C
49 lines
847 B
C
//#define PICO
|
|
|
|
#ifndef JOBS_H
|
|
#define JOBS_H
|
|
|
|
#ifdef PICO
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
#include "semphr.h"
|
|
#else
|
|
#include <pthread.h>
|
|
#endif
|
|
|
|
typedef enum ACTION Action;
|
|
enum ACTION {STOP, START};
|
|
|
|
typedef struct AppState AppState;
|
|
struct AppState {
|
|
Action action;
|
|
double freq_multiplicator;
|
|
|
|
#ifdef PICO
|
|
TaskHandle_t* task;
|
|
SemaphoreHandle_t lock;
|
|
#else
|
|
pthread_mutex_t lock;
|
|
pthread_t* task;
|
|
#endif
|
|
};
|
|
|
|
typedef void (*FnJob)(void* params);
|
|
|
|
typedef struct TaskParam TaskParam;
|
|
struct TaskParam {
|
|
AppState* s;
|
|
FnJob f;
|
|
};
|
|
|
|
int init_app_state(AppState *s);
|
|
|
|
void check_btn_state(void* args);
|
|
void check_acd_value(void* args);
|
|
|
|
int lock(AppState *s);
|
|
int release(AppState *s);
|
|
int cancel_task(AppState *s);
|
|
int launch_task(AppState *s, FnJob f);
|
|
|
|
#endif |