[core] stub for events api
This commit is contained in:
parent
4b069080f9
commit
12fab7029a
19
src/ax.h
19
src/ax.h
|
@ -40,6 +40,25 @@ int ax_select_theme(struct ax_ctxt* ax, struct ax_theme* thm);
|
|||
#define AX_ERR_THEME_LOADING 1
|
||||
#define AX_ERR_THEME_INVALID 2
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Events
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
enum ax_evt_type {
|
||||
AX_EVT_THEME_LOADED = 0,
|
||||
AX_EVT__COUNT,
|
||||
};
|
||||
|
||||
struct ax_evt {
|
||||
enum ax_evt_type ty;
|
||||
union {
|
||||
struct ax_theme* theme;
|
||||
} arg;
|
||||
};
|
||||
|
||||
void ax_wait_evt_avail(struct ax_ctxt* ax);
|
||||
bool ax_poll_evt(struct ax_ctxt* ax, struct ax_evt* out_evt);
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Windows
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
|
|
@ -51,6 +51,14 @@ void msgq_begin_recv(struct msgq* mq)
|
|||
pthread_mutex_lock(&mq->mx);
|
||||
}
|
||||
|
||||
void msgq_begin_recv_and_wait(struct msgq* mq)
|
||||
{
|
||||
pthread_mutex_lock(&mq->mx);
|
||||
if (mq->head == NULL) {
|
||||
pthread_cond_wait(&mq->cv, &mq->mx);
|
||||
}
|
||||
}
|
||||
|
||||
void* msgq_recv1(struct msgq* mq, int* out_type)
|
||||
{
|
||||
if (mq->head == NULL) {
|
||||
|
|
|
@ -25,6 +25,7 @@ void* msgq_begin_send(struct msgq* mq, int type, size_t payload_size);
|
|||
void msgq_end_send(struct msgq* mq);
|
||||
|
||||
void msgq_begin_recv(struct msgq* mq);
|
||||
void msgq_begin_recv_and_wait(struct msgq* mq);
|
||||
void* msgq_recv1(struct msgq* mq, int* out_type);
|
||||
void msgq_end_recv(struct msgq* mq);
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "../ctxt.h"
|
||||
#include "../util.h"
|
||||
#include "theme.h"
|
||||
#include <unistd.h>
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* API functions :: init / cleanup
|
||||
|
@ -167,6 +168,21 @@ int ax_select_theme(struct ax_ctxt* ax, struct ax_theme* thm)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* API functions :: events
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
void ax_wait_evt_avail(struct ax_ctxt* ax)
|
||||
{
|
||||
usleep(1000 * 1000);
|
||||
}
|
||||
|
||||
bool ax_poll_evt(struct ax_ctxt* ax, struct ax_evt* out_evt)
|
||||
{
|
||||
ax_log(ax, "nuffin.");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Backend worker thread
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
|
|
@ -41,7 +41,12 @@ int main(void)
|
|||
|
||||
(void) make_example_theme();
|
||||
|
||||
usleep(5 * 1000 * 1000);
|
||||
for (;;) {
|
||||
ax_wait_evt_avail(ax);
|
||||
while (ax_poll_evt(ax, NULL)) {
|
||||
printf("Got an event, assuredly.\n");
|
||||
}
|
||||
}
|
||||
|
||||
cleanup();
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue