update member function calls to match changes in updated spacebox branch

This commit is contained in:
ohsqueezy 2022-08-09 18:37:11 -04:00
parent 17dee6174f
commit 7ff0d01c6f
2 changed files with 29 additions and 29 deletions

2
lib/sb

@ -1 +1 @@
Subproject commit 21e1e7e707004fee91425cb5aef099a19b3fb4ff Subproject commit dc2141c2c441d92b35979f3dac0d5d7e74e440d6

View File

@ -39,7 +39,7 @@ Pudding::Pudding()
camera_view.texture(sb::Texture()); camera_view.texture(sb::Texture());
/* set up pudding model */ /* set up pudding model */
nlohmann::json pudding = get_configuration()["pudding"]; nlohmann::json pudding = configuration()["pudding"];
load_pudding_model(pudding["top-radius"], pudding["base-radius"], pudding["ring-vertex-count"], pudding["layer-count"], load_pudding_model(pudding["top-radius"], pudding["base-radius"], pudding["ring-vertex-count"], pudding["layer-count"],
pudding["y-range"][0], pudding["y-range"][1], pudding["gradient-position"]); pudding["y-range"][0], pudding["y-range"][1], pudding["gradient-position"]);
@ -238,7 +238,7 @@ void Pudding::load_gl_context()
/* Read every jpg in the folder at tile path into a GL texture and associate with the background object. */ /* Read every jpg in the folder at tile path into a GL texture and associate with the background object. */
void Pudding::load_tiles() void Pudding::load_tiles()
{ {
for (fs::path path : sb::glob(get_configuration()["resource"]["tile-path"].get<fs::path>() / ".*.jpg")) for (fs::path path : sb::glob(configuration()["resource"]["tile-path"].get<fs::path>() / ".*.jpg"))
{ {
sb::Texture texture {path}; sb::Texture texture {path};
texture.load(); texture.load();
@ -249,12 +249,12 @@ void Pudding::load_tiles()
/* Load every png in the button path as a Texture and add to a map. */ /* Load every png in the button path as a Texture and add to a map. */
void Pudding::load_pads() void Pudding::load_pads()
{ {
for (fs::path path : sb::glob(get_configuration()["resource"]["button-path"].get<fs::path>() / ".*.png")) for (fs::path path : sb::glob(configuration()["resource"]["button-path"].get<fs::path>() / ".*.png"))
{ {
labels[path.stem()] = sb::Texture(path); labels[path.stem()] = sb::Texture(path);
labels[path.stem()].load(); labels[path.stem()].load();
} }
nlohmann::json interface = get_configuration()["interface"]; nlohmann::json interface = configuration()["interface"];
camera_button.texture(labels["scan"]); camera_button.texture(labels["scan"]);
camera_button.translation({interface["main-button-single-x"], interface["main-button-y"]}); camera_button.translation({interface["main-button-single-x"], interface["main-button-y"]});
camera_button.scale(interface["main-button-scale"], window_box().aspect()); camera_button.scale(interface["main-button-scale"], window_box().aspect());
@ -353,7 +353,7 @@ void Pudding::respond(SDL_Event& event)
Box viewport_ndc = sb::Display::ndc; Box viewport_ndc = sb::Display::ndc;
/* Drag viewport completely closed to the bottom of the screen */ /* Drag viewport completely closed to the bottom of the screen */
viewport_ndc.top(viewport_ndc.bottom(), true); viewport_ndc.top(viewport_ndc.bottom(), true);
nlohmann::json interface = get_configuration()["interface"]; nlohmann::json interface = configuration()["interface"];
/* Drag viewport back up the height of the pop-up window */ /* Drag viewport back up the height of the pop-up window */
viewport_ndc.drag_top(interface["pop-up-viewport-height"]); viewport_ndc.drag_top(interface["pop-up-viewport-height"]);
/* Get the viewport in pixel resolution to size the buttons to be square inside the viewport */ /* Get the viewport in pixel resolution to size the buttons to be square inside the viewport */
@ -449,27 +449,27 @@ void Pudding::add_item(const std::string& upc)
{ {
Item item; Item item;
item.upc(upc); item.upc(upc);
if (get_configuration()["api"]["open-food-enabled"]) if (configuration()["api"]["open-food-enabled"])
{ {
incorporate_open_api(item, OPEN_FOOD_API_URL); incorporate_open_api(item, OPEN_FOOD_API_URL);
} }
if (get_configuration()["api"]["open-products-enabled"]) if (configuration()["api"]["open-products-enabled"])
{ {
incorporate_open_api(item, OPEN_PRODUCTS_API_URL); incorporate_open_api(item, OPEN_PRODUCTS_API_URL);
} }
if (get_configuration()["api"]["nutronix-enabled"]) if (configuration()["api"]["nutronix-enabled"])
{ {
incorporate_nutronix_api(item); incorporate_nutronix_api(item);
} }
if (get_configuration()["api"]["edamam-enabled"]) if (configuration()["api"]["edamam-enabled"])
{ {
incorporate_edamam_api(item); incorporate_edamam_api(item);
} }
if (get_configuration()["api"]["best-buy-enabled"]) if (configuration()["api"]["best-buy-enabled"])
{ {
incorporate_best_buy_api(item); incorporate_best_buy_api(item);
} }
if (get_configuration()["api"]["google-books-enabled"]) if (configuration()["api"]["google-books-enabled"])
{ {
incorporate_google_books_api(item); incorporate_google_books_api(item);
} }
@ -481,7 +481,7 @@ void Pudding::add_item(const std::string& upc)
/* Move the camera button away from center to make room for inventory button if this is the first item added. */ /* Move the camera button away from center to make room for inventory button if this is the first item added. */
if (items.size() == 1) if (items.size() == 1)
{ {
const nlohmann::json& interface = get_configuration()["interface"]; const nlohmann::json& interface = configuration()["interface"];
camera_button.translation({-1.0f * interface["main-button-double-x"].get<float>(), interface["main-button-y"]}); camera_button.translation({-1.0f * interface["main-button-double-x"].get<float>(), interface["main-button-y"]});
} }
} }
@ -539,8 +539,8 @@ void Pudding::incorporate_nutronix_api(Item& item)
/* Nutronix requires API keys in headers for validation */ /* Nutronix requires API keys in headers for validation */
nlohmann::json json = json_from_url( nlohmann::json json = json_from_url(
NUTRONIX_API_URL + item.upc(), { NUTRONIX_API_URL + item.upc(), {
"x-app-id: " + get_configuration()["api"]["nutronix-app-id"].get<std::string>(), "x-app-id: " + configuration()["api"]["nutronix-app-id"].get<std::string>(),
"x-app-key: " + get_configuration()["api"]["nutronix-app-key"].get<std::string>() "x-app-key: " + configuration()["api"]["nutronix-app-key"].get<std::string>()
}); });
/* test that should determine if a Nutronix response is not empty */ /* test that should determine if a Nutronix response is not empty */
if (!(json.contains("message") && json["message"] == NUTRONIX_NOT_FOUND)) if (!(json.contains("message") && json["message"] == NUTRONIX_NOT_FOUND))
@ -574,8 +574,8 @@ void Pudding::incorporate_edamam_api(Item& item)
/* build API url by concatenating relevant values into query string */ /* build API url by concatenating relevant values into query string */
std::stringstream url; std::stringstream url;
url << "https://api.edamam.com/api/food-database/v2/parser?upc=" << item.upc() << "&app_id=" << url << "https://api.edamam.com/api/food-database/v2/parser?upc=" << item.upc() << "&app_id=" <<
get_configuration()["api"]["edamam-app-id"].get<std::string>() << "&app_key=" << configuration()["api"]["edamam-app-id"].get<std::string>() << "&app_key=" <<
get_configuration()["api"]["edamam-app-key"].get<std::string>(); configuration()["api"]["edamam-app-key"].get<std::string>();
nlohmann::json json = json_from_url(url.str()); nlohmann::json json = json_from_url(url.str());
/* test that should determine if a Edamam response has food data */ /* test that should determine if a Edamam response has food data */
if (json.contains("hints") && json["hints"][0].contains("food")) if (json.contains("hints") && json["hints"][0].contains("food"))
@ -607,7 +607,7 @@ void Pudding::incorporate_best_buy_api(Item& item)
/* build API url by concatenating relevant values into query string */ /* build API url by concatenating relevant values into query string */
std::stringstream url; std::stringstream url;
url << "https://api.bestbuy.com/v1/products(upc=" << item.upc() << ")?format=json&apiKey=" << url << "https://api.bestbuy.com/v1/products(upc=" << item.upc() << ")?format=json&apiKey=" <<
get_configuration()["api"]["best-buy-api-key"].get<std::string>(); configuration()["api"]["best-buy-api-key"].get<std::string>();
nlohmann::json json = json_from_url(url.str()); nlohmann::json json = json_from_url(url.str());
/* test that should determine if a Best Buy response has a result */ /* test that should determine if a Best Buy response has a result */
if (json.contains("total") && json["total"].get<int>() > 0) if (json.contains("total") && json["total"].get<int>() > 0)
@ -673,9 +673,9 @@ void Pudding::incorporate_google_books_api(Item& item)
*/ */
void Pudding::save_item_json(const nlohmann::json& json, const Item& item, const std::string& api_name) const void Pudding::save_item_json(const nlohmann::json& json, const Item& item, const std::string& api_name) const
{ {
if (get_configuration()["scan"]["json-save"]) if (configuration()["scan"]["json-save"])
{ {
fs::path path = get_configuration()["scan"]["json-save-directory"]; fs::path path = configuration()["scan"]["json-save-directory"];
if (!fs::exists(path)) if (!fs::exists(path))
{ {
fs::create_directories(path); fs::create_directories(path);
@ -734,7 +734,7 @@ void Pudding::curl_get_bytes(const std::string& url, std::vector<std::uint8_t>&
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Pudding::curl_write_response); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Pudding::curl_write_response);
std::vector<std::uint8_t> food_barcode_response; std::vector<std::uint8_t> food_barcode_response;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &storage); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &storage);
curl_easy_setopt(curl, CURLOPT_USERAGENT, get_configuration()["api"]["user-agent"].get<std::string>().c_str()); curl_easy_setopt(curl, CURLOPT_USERAGENT, configuration()["api"]["user-agent"].get<std::string>().c_str());
struct curl_slist* list = nullptr; struct curl_slist* list = nullptr;
if (headers.size() > 0) if (headers.size() > 0)
{ {
@ -871,9 +871,9 @@ void Pudding::update()
float time_seconds = SDL_GetTicks() / 1000.0f; float time_seconds = SDL_GetTicks() / 1000.0f;
/* if the config is set to refresh automatically, there may be a new barcode available */ /* if the config is set to refresh automatically, there may be a new barcode available */
if (current_config_barcode != get_configuration()["scan"]["barcode"]) if (current_config_barcode != configuration()["scan"]["barcode"])
{ {
current_config_barcode = get_configuration()["scan"]["barcode"]; current_config_barcode = configuration()["scan"]["barcode"];
current_barcode = current_config_barcode; current_barcode = current_config_barcode;
std::ostringstream message; std::ostringstream message;
message << "read new barcode from config " << current_barcode; message << "read new barcode from config " << current_barcode;
@ -891,7 +891,7 @@ void Pudding::update()
new_frame_available = false; new_frame_available = false;
/* Convert to grayscale for ZBar */ /* Convert to grayscale for ZBar */
cv::cvtColor(camera_frame, camera_frame, cv::COLOR_BGR2GRAY); cv::cvtColor(camera_frame, camera_frame, cv::COLOR_BGR2GRAY);
if (get_configuration()["scan"]["enabled"]) if (configuration()["scan"]["enabled"])
{ {
zbar::Image query_image(camera_frame.cols, camera_frame.rows, "Y800", static_cast<void*>(camera_frame.data), zbar::Image query_image(camera_frame.cols, camera_frame.rows, "Y800", static_cast<void*>(camera_frame.data),
camera_frame.cols * camera_frame.rows); camera_frame.cols * camera_frame.rows);
@ -919,7 +919,7 @@ void Pudding::update()
/* shrink viewport if item texture or camera will be displayed */ /* shrink viewport if item texture or camera will be displayed */
if (item_display_active() || capture.isOpened()) if (item_display_active() || capture.isOpened())
{ {
viewport.drag_bottom(0.5f * get_configuration()["interface"]["pop-up-viewport-height"].get<float>() * viewport.height()); viewport.drag_bottom(0.5f * configuration()["interface"]["pop-up-viewport-height"].get<float>() * viewport.height());
} }
/* Save the main viewport dimensions */ /* Save the main viewport dimensions */
@ -949,7 +949,7 @@ void Pudding::update()
/* draw pudding model using MVP shader */ /* draw pudding model using MVP shader */
glUseProgram(mvp_program); glUseProgram(mvp_program);
/* calculate the transformation matrix for displaying pudding in viewport */ /* calculate the transformation matrix for displaying pudding in viewport */
model = glm::rotate(model, weight(get_configuration()["pudding"]["rotation-speed"].get<float>()), Y_UNIT_NORMAL_3D); model = glm::rotate(model, weight(configuration()["pudding"]["rotation-speed"].get<float>()), Y_UNIT_NORMAL_3D);
projection = glm::perspective( projection = glm::perspective(
glm::radians(40.0f * 1 / viewport.aspect()), viewport.aspect(), 0.1f, 100.0f); glm::radians(40.0f * 1 / viewport.aspect()), viewport.aspect(), 0.1f, 100.0f);
mvp = projection * VIEW_MATRIX * model; mvp = projection * VIEW_MATRIX * model;
@ -980,9 +980,9 @@ void Pudding::update()
sb::Log::gl_errors("after pudding sides, before pudding top/bottom"); sb::Log::gl_errors("after pudding sides, before pudding top/bottom");
/* enable squircling and draw the top and bottom of pudding */ /* enable squircling and draw the top and bottom of pudding */
glUniform1i(uniform["mvp"]["uv transformation"], UV_SQUIRCLE); glUniform1i(uniform["mvp"]["uv transformation"], UV_SQUIRCLE);
glUniform1f(uniform["mvp"]["coordinate bound"], get_configuration()["pudding"]["top-radius"]); glUniform1f(uniform["mvp"]["coordinate bound"], configuration()["pudding"]["top-radius"]);
glDrawArrays(GL_TRIANGLE_FAN, pudding_triangle_vertex_count, pudding_fan_vertex_count); glDrawArrays(GL_TRIANGLE_FAN, pudding_triangle_vertex_count, pudding_fan_vertex_count);
glUniform1f(uniform["mvp"]["coordinate bound"], get_configuration()["pudding"]["base-radius"]); glUniform1f(uniform["mvp"]["coordinate bound"], configuration()["pudding"]["base-radius"]);
glDrawArrays(GL_TRIANGLE_FAN, pudding_triangle_vertex_count + pudding_fan_vertex_count, pudding_fan_vertex_count); glDrawArrays(GL_TRIANGLE_FAN, pudding_triangle_vertex_count + pudding_fan_vertex_count, pudding_fan_vertex_count);
/* disable squircling for all other drawing */ /* disable squircling for all other drawing */
glUniform1i(uniform["mvp"]["uv transformation"], UV_NONE); glUniform1i(uniform["mvp"]["uv transformation"], UV_NONE);
@ -1049,7 +1049,7 @@ void Pudding::update()
inventory_button.draw(uniform["flat"]["transformation"]); inventory_button.draw(uniform["flat"]["transformation"]);
} }
} }
SDL_GL_SwapWindow(get_window()); SDL_GL_SwapWindow(window());
sb::Log::gl_errors("at end of update"); sb::Log::gl_errors("at end of update");
/* add a new item if a new barcode was scanned or entered */ /* add a new item if a new barcode was scanned or entered */
if (current_barcode != previous_barcode) if (current_barcode != previous_barcode)