GUI
This commit is contained in:
111
include/gui.h
Normal file
111
include/gui.h
Normal file
@@ -0,0 +1,111 @@
|
||||
#ifndef mice_gui_h
|
||||
#define mice_gui_h
|
||||
|
||||
#include <3ds.h>
|
||||
#include <citro2d.h>
|
||||
#include <stdbool.h>
|
||||
#include "metadata.h"
|
||||
|
||||
/* GUI color definitions */
|
||||
#define GUI_COLOR_BG_TOP C2D_Color32(20, 20, 30, 255)
|
||||
#define GUI_COLOR_BG_BOTTOM C2D_Color32(15, 15, 25, 255)
|
||||
#define GUI_COLOR_TEXT C2D_Color32(255, 255, 255, 255)
|
||||
#define GUI_COLOR_TEXT_DIM C2D_Color32(180, 180, 180, 255)
|
||||
#define GUI_COLOR_ACCENT C2D_Color32(100, 150, 255, 255)
|
||||
#define GUI_COLOR_HIGHLIGHT C2D_Color32(50, 80, 150, 255)
|
||||
|
||||
/* Screen dimensions */
|
||||
#define TOP_SCREEN_WIDTH 400
|
||||
#define TOP_SCREEN_HEIGHT 240
|
||||
#define BOTTOM_SCREEN_WIDTH 320
|
||||
#define BOTTOM_SCREEN_HEIGHT 240
|
||||
|
||||
/**
|
||||
* Initialize the GUI system
|
||||
*
|
||||
* \return 0 on success, -1 on failure
|
||||
*/
|
||||
int guiInit(void);
|
||||
|
||||
/**
|
||||
* Clean up and exit the GUI system
|
||||
*/
|
||||
void guiExit(void);
|
||||
|
||||
/**
|
||||
* Begin rendering a frame
|
||||
*/
|
||||
void guiBeginFrame(void);
|
||||
|
||||
/**
|
||||
* End rendering a frame and display it
|
||||
*/
|
||||
void guiEndFrame(void);
|
||||
|
||||
/**
|
||||
* Clear the top screen
|
||||
*/
|
||||
void guiClearTopScreen(void);
|
||||
|
||||
/**
|
||||
* Clear the bottom screen
|
||||
*/
|
||||
void guiClearBottomScreen(void);
|
||||
|
||||
/**
|
||||
* Display metadata on the top screen
|
||||
*
|
||||
* \param metadata Pointer to metadata structure
|
||||
* \param filename Filename to display if no title is available
|
||||
*/
|
||||
void guiDisplayMetadata(struct metadata_t* metadata, const char* filename);
|
||||
|
||||
/**
|
||||
* Display log messages on the top screen
|
||||
*
|
||||
* \param messages Array of message strings
|
||||
* \param count Number of messages
|
||||
* \param scroll Scroll offset for messages
|
||||
*/
|
||||
void guiDisplayLog(const char** messages, int count, int scroll);
|
||||
|
||||
/**
|
||||
* Display file list on the bottom screen
|
||||
*
|
||||
* \param files Array of filenames
|
||||
* \param count Number of files
|
||||
* \param selected Index of selected file
|
||||
* \param scroll Scroll offset
|
||||
*/
|
||||
void guiDisplayFileList(const char** files, int count, int selected, int scroll);
|
||||
|
||||
/**
|
||||
* Display playback controls and status on the bottom screen
|
||||
*
|
||||
* \param isPlaying Whether playback is active
|
||||
* \param isPaused Whether playback is paused
|
||||
* \param position Current position in seconds
|
||||
* \param duration Total duration in seconds
|
||||
*/
|
||||
void guiDisplayPlaybackStatus(bool isPlaying, bool isPaused, float position, float duration);
|
||||
|
||||
/**
|
||||
* Display version text
|
||||
*
|
||||
* \param version Version string to display
|
||||
*/
|
||||
void guiDisplayVersion(const char* version);
|
||||
|
||||
/**
|
||||
* Draw a simple text string at specified position
|
||||
*
|
||||
* \param screen Target screen (GFX_TOP or GFX_BOTTOM)
|
||||
* \param x X coordinate
|
||||
* \param y Y coordinate
|
||||
* \param text Text to display
|
||||
* \param color Text color
|
||||
* \param scale Text scale (default 0.5f)
|
||||
*/
|
||||
void guiDrawText(gfxScreen_t screen, float x, float y, const char* text, u32 color, float scale);
|
||||
|
||||
#endif
|
||||
@@ -13,7 +13,7 @@
|
||||
#define mice_main_h
|
||||
|
||||
/* Application version */
|
||||
#define MICE_VERSION "dev28"
|
||||
#define MICE_VERSION "dev36"
|
||||
|
||||
/* Default folder */
|
||||
#define DEFAULT_DIR "sdmc:/"
|
||||
|
||||
@@ -80,6 +80,11 @@ void stopPlayback(void);
|
||||
*/
|
||||
bool isPlaying(void);
|
||||
|
||||
/**
|
||||
* Returns whether playback is currently paused.
|
||||
*/
|
||||
bool isPaused(void);
|
||||
|
||||
/**
|
||||
* Should only be called from a new thread only, and have only one playback
|
||||
* thread at time. This function has not been written for more than one
|
||||
|
||||
Reference in New Issue
Block a user