From 7b5a3f952c23daed53a37422db0972950071fc55 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Wed, 21 Mar 2012 14:47:20 +0100 Subject: [PATCH] am7xxx: round scaled_height and scaled_width Round when converting from float to int, this is more like what the user expects about image dimensions. --- src/CMakeLists.txt | 6 ++++-- src/am7xxx.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bec1d5c..e09a282 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -22,8 +22,10 @@ endif() install(TARGETS am7xxx-static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") -target_link_libraries(am7xxx ${LIBUSB_1_LIBRARIES}) -target_link_libraries(am7xxx-static ${LIBUSB_1_LIBRARIES}) +find_library(MATH_LIB m) + +target_link_libraries(am7xxx ${MATH_LIB} ${LIBUSB_1_LIBRARIES}) +target_link_libraries(am7xxx-static ${MATH_LIB} ${LIBUSB_1_LIBRARIES}) # Install the header files install(FILES "am7xxx.h" diff --git a/src/am7xxx.c b/src/am7xxx.c index 6574100..1035e23 100644 --- a/src/am7xxx.c +++ b/src/am7xxx.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "am7xxx.h" #include "serialize.h" @@ -734,14 +735,14 @@ int am7xxx_calc_scaled_image_dimensions(am7xxx_device *dev, */ debug(dev->ctx, "CASE 1, original image wider, adjust the scaled height\n"); *scaled_width = device_info.native_width; - *scaled_height = (unsigned int)(original_height / width_ratio); + *scaled_height = (unsigned int)lroundf(original_height / width_ratio); } else if (width_ratio < height_ratio) { /* * The input is proportionally "taller" than the device viewport * so its width needs to be adjusted */ debug(dev->ctx, "CASE 2 original image taller, adjust the scaled width\n"); - *scaled_width = (unsigned int)(original_width / height_ratio); + *scaled_width = (unsigned int)lroundf(original_width / height_ratio); *scaled_height = device_info.native_height; } else { debug(dev->ctx, "CASE 3, just rescale, same aspect ratio already\n"); -- 2.1.4