2024A-SW/components/System_Events/System_Events.h
2025-11-30 14:55:11 -06:00

44 lines
1.6 KiB
C

/*
* This program source code file is part of the KTag project, a DIY laser tag
* game with customizable features and wide interoperability.
*
* 🛡️ <https://ktag.clubk.club> 🃞
*
* Copyright © 2025 Joseph P. Kearney and the KTag developers.
*
* This program 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.
*
* This program 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.
*
* There should be a copy of the GNU Affero General Public License in the LICENSE
* file in the root of this repository. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SYSTEM_EVENTS_H
#define SYSTEM_EVENTS_H
#include <SystemK.h>
#include <freertos/FreeRTOS.h>
#include <freertos/event_groups.h>
// System-wide event bits
#define SYS_NVS_READY (1 << 0)
#define SYS_SPIFFS_READY (1 << 1)
#define SYS_USB_FS_PRESENT (1 << 2)
#define SYS_AUDIO_READY (1 << 3)
#define SYS_NEOPIXELS_READY (1 << 4)
#define SYS_BLE_READY (1 << 5)
#define SYS_IR_READY (1 << 6)
#define SYS_SETTINGS_READY (1 << 7)
EventGroupHandle_t Get_System_Events(void);
void Initialize_System_Events(void);
bool Wait_For_System_Event(EventBits_t event_bit, const char* timeout_message, uint32_t timeout_ms);
#endif // SYSTEM_EVENTS_H