From 51b9e6401fe90ebf1a52df75024b7ca0c62b44a3 Mon Sep 17 00:00:00 2001 From: Tyler Perkins Date: Sat, 2 Oct 2021 14:14:58 -0400 Subject: [PATCH] Update configs to allocate correctly --- README.md | 5 ++-- img/rainy.png | Bin 0 -> 6663 bytes img/sunny.png | Bin 0 -> 58946 bytes src/board.cpp | 15 ++++------ src/config.cpp | 49 ++++++++++++++++++++++++++++++++ src/config.def.hpp | 3 ++ src/panel/panel.hpp | 3 ++ src/panel/weather.cpp | 64 +++++++++++++++++++++++++++--------------- src/panel/weather.hpp | 1 + 9 files changed, 107 insertions(+), 33 deletions(-) create mode 100644 img/rainy.png create mode 100644 img/sunny.png create mode 100644 src/config.cpp diff --git a/README.md b/README.md index cbac9d3..78f06ee 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,9 @@ Depends on optional dependencies --------------------- -- rapidxml -- libcurl +- Weather/RSS + - rapidxml + - libcurl Building sdl2 on rpi -------------------- diff --git a/img/rainy.png b/img/rainy.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f1b800f337321f5ea6b48ddc7e8a35dbc24c2e GIT binary patch literal 6663 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%0A8WYj6;eFQZoI72{lCz9bx*bLuNbW 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 panel_count) + if(i > PANELS_LENGTH) i = 0; - //SDL_RenderClear(_renderer); + SDL_RenderClear(_renderer); //PLACEHOLDER, cycle color - /* { static uint8_t red = 0; static bool up = true; @@ -379,12 +377,11 @@ void board::start(){ red --; } } - */ //END PLACEHOLDER //call draw on the current panel - PANELS[i]->draw(); + //PANELS[i]->draw(); if(fcount % 10 == 0) std::cerr << "Frame : " << fcount << "\n"; @@ -416,7 +413,7 @@ void board::initConstResources(){ SDL_Log("Static images directory prefix: %s\n", fullPath.c_str()); SDL_Log("Loading static images into working memory...\n"); for(unsigned int i = 0; - i < (sizeof(IMAGE_LOCATIONS)/sizeof(IMAGE_LOCATIONS[0])); ++i){ + i < IMAGE_LOCATIONS_LENGTH; ++i){ SDL_Texture_Wrapper tw(fullPath + IMAGE_LOCATIONS[0]); @@ -434,7 +431,7 @@ void board::initConstResources(){ SDL_Log("Static Fonts directory prefix: %s\n", fullPath.c_str()); SDL_Log("Loading fonts into working memory...\n"); for(unsigned int i = 0; - i < (sizeof(FONT_LOCATIONS)/sizeof(FONT_LOCATIONS[0])); ++i){ + i < FONT_LOCATIONS_LENGTH; ++i){ SDL_Font_Wrapper fw(fullPath + FONT_LOCATIONS[0]._name, FONT_LOCATIONS[0]._size); @@ -449,7 +446,7 @@ void board::initConstResources(){ std::cerr << "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n"; SDL_Log("Loading static strings into working memory...\n"); for(unsigned int i = 0; - i < (sizeof(CONST_STRINGS)/sizeof(CONST_STRINGS[0])); ++i){ + i < CONST_STRINGS_LENGTH; ++i){ SDL_Texture_Wrapper tw(CONST_STRINGS[i]._text, { CONST_STRINGS[i]._font_size._name, diff --git a/src/config.cpp b/src/config.cpp new file mode 100644 index 0000000..25c2b35 --- /dev/null +++ b/src/config.cpp @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////////////// +// Tyler Perkins +// 9-29-21 +// configuration file +// + +#include "config.hpp" + +// PANELS +// A list of all panels to be displayed, in order +dashboard::panel::panel* PANELS[] = { + new dashboard::panel::weather(), +}; +size_t PANELS_LENGTH = sizeof(PANELS)/sizeof(PANELS[0]); + +// IMAGE_LOCATIONS +// Locations of all static images used +const char* IMAGE_LOCATIONS[] = { + "bmp_24.png", + //Weather + "sunny.png", + "rainy.png", +}; +size_t IMAGE_LOCATIONS_LENGTH = sizeof(IMAGE_LOCATIONS)/sizeof(IMAGE_LOCATIONS[0]); + +// FONT_LOCATIONS +// Locations of all fonts used +//struct FONT_SIZE { +// const char* _name; +// const size_t _size; +//}; +const FONT_SIZE FONT_LOCATIONS[] = { + { "Roboto_Mono/RobotoMono-Medium.ttf", 24 }, +}; +size_t FONT_LOCATIONS_LENGTH = sizeof(FONT_LOCATIONS)/sizeof(FONT_LOCATIONS[0]); + +// CONST_STRINGS +// All constant strings +//struct FONT_SIZE_STRING { +// const char* _text; +// const FONT_SIZE _font_size; +//}; +const FONT_SIZE_STRING CONST_STRINGS[] = { + //Weather strings + { "Today's Weather", { "Roboto_Mono/RobotoMono-Medium.ttf", 24 } }, + { "Sunny" , { "Roboto_Mono/RobotoMono-Medium.ttf", 24 } }, + { "Rainy" , { "Roboto_Mono/RobotoMono-Medium.ttf", 24 } }, +}; +size_t CONST_STRINGS_LENGTH = sizeof(CONST_STRINGS)/sizeof(CONST_STRINGS[0]); diff --git a/src/config.def.hpp b/src/config.def.hpp index 178465c..82f1a8c 100644 --- a/src/config.def.hpp +++ b/src/config.def.hpp @@ -95,6 +95,9 @@ constexpr char DATA_IMG[] = DATA_IMG_; // Locations of all static images used static const char* IMAGE_LOCATIONS[] = { "bmp_24.png", + //Weather + "sunny.png", + "rainy.png", }; // FONT_DIR diff --git a/src/panel/panel.hpp b/src/panel/panel.hpp index b1dee5b..c63eec5 100644 --- a/src/panel/panel.hpp +++ b/src/panel/panel.hpp @@ -26,5 +26,8 @@ namespace dashboard::panel { virtual void draw() = 0; size_t _time_on_screen = 0; + + protected: + SDL_Texture* _texture; }; } diff --git a/src/panel/weather.cpp b/src/panel/weather.cpp index c16cf63..8f850c7 100644 --- a/src/panel/weather.cpp +++ b/src/panel/weather.cpp @@ -14,16 +14,22 @@ using namespace dashboard::panel; /////////////////////////////////////////////////////////////////////////////// weather::weather(){ + std::cerr << "WEATHER CONSTRUCTOR\n"; _time_on_screen = WEATHER_DEFAULT_ON_SCREEN_TIME; _update_interval = std::chrono::milliseconds{UPDATE_INTERVAL}; _last_update = std::chrono::high_resolution_clock::now(); _rss = rss_utils::rss(WEATHER_URL_SOURCE); + _texture = SDL_CreateTexture(board::getRenderer(), + SDL_PIXELFORMAT_RGBA8888, + SDL_TEXTUREACCESS_TARGET, + SCREEN_WIDTH, SCREEN_HEIGHT); + update(); } weather::~weather(){ - + std::cerr << "WEATHER DECONSTRUCTOR\n"; } /////////////////////////////////////////////////////////////////////////////// @@ -36,10 +42,42 @@ void weather::draw(){ > _update_interval){ //TODO multithread this update(); + + update_texture(); } - //TODO add this all to one canvas thing? - //BEGIN GRAPHICS + static SDL_Rect tgt = { 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT }; + + //SDL_RenderCopy(board::getRenderer(), _texture, NULL, + //&tgt); + + //TODO add this all to one texture + +} + +/////////////////////////////////////////////////////////////////////////////// +// Helper functions /////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////// +// Update the information of the obj +// This DOES NOT update the display +void weather::update() { + std::cerr << "WEATHER::UPDATE\n"; + _last_update = std::chrono::high_resolution_clock::now(); + + //fetch updates + _rss.update(); + +} + +/////////////////////////////////////// +// Update the texture that is being +// displayed, based on data in +// _rss +void weather::update_texture(){ + //SDL_SetRenderTarget(board::getRenderer(), _texture); + SDL_Rect tgt; tgt.x = 50; tgt.y = 50; @@ -51,23 +89,5 @@ void weather::draw(){ board::getString(_rss.getTitle(), { "Roboto_Mono/RobotoMono-Medium.ttf", 24 }), NULL, &tgt ); - - - //END GRAPHICS - - SDL_RenderPresent(board::getRenderer()); - -} - -/////////////////////////////////////////////////////////////////////////////// -// Helper functions /////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -void weather::update() { - std::cerr << "WEATHER::UPDATE\n"; - _last_update = std::chrono::high_resolution_clock::now(); - - //fetch updates - _rss.update(); - + //SDL_SetRenderTarget(board::getRenderer(), NULL); } diff --git a/src/panel/weather.hpp b/src/panel/weather.hpp index c01a4b3..d25f52d 100644 --- a/src/panel/weather.hpp +++ b/src/panel/weather.hpp @@ -27,6 +27,7 @@ namespace dashboard::panel { private: void update(); + void update_texture(); rss_utils::rss _rss; std::chrono::time_point _last_update;