1
0
Fork 0
mirror of https://github.com/albfan/miraclecast.git synced 2025-02-13 11:11:56 +00:00

calculate array size of resolutions at build time instead of tailing null element

This commit is contained in:
Derek Dai 2016-09-28 21:55:54 +08:00
parent 5f39158f45
commit b6d372eae4
No known key found for this signature in database
GPG key ID: E109CC97553EF009

View file

@ -22,6 +22,8 @@
#include <stdint.h> #include <stdint.h>
#include "ctl.h" #include "ctl.h"
#define N_ELEMENTS(a) (sizeof(a) / sizeof(a[0]))
struct resolution_bitmap { struct resolution_bitmap {
int index; int index;
int hres; int hres;
@ -51,7 +53,6 @@ struct resolution_bitmap resolutions_cea[] = {
{14, 1920, 1080, 50}, /* i50 */ {14, 1920, 1080, 50}, /* i50 */
{15, 1280, 720, 24}, /* p24 */ {15, 1280, 720, 24}, /* p24 */
{16, 1920, 1080, 24}, /* p24 */ {16, 1920, 1080, 24}, /* p24 */
{0, 0, 0, 0},
}; };
struct resolution_bitmap resolutions_vesa[] = { struct resolution_bitmap resolutions_vesa[] = {
@ -84,7 +85,6 @@ struct resolution_bitmap resolutions_vesa[] = {
{26, 1680, 1050, 30}, /* p30 */ {26, 1680, 1050, 30}, /* p30 */
{27, 1680, 1050, 60}, /* p60 */ {27, 1680, 1050, 60}, /* p60 */
{28, 1920, 1200, 30}, /* p30 */ {28, 1920, 1200, 30}, /* p30 */
{0, 0, 0, 0},
}; };
struct resolution_bitmap resolutions_hh[] = { struct resolution_bitmap resolutions_hh[] = {
@ -100,7 +100,6 @@ struct resolution_bitmap resolutions_hh[] = {
{9, 960, 540, 60}, /* p60 */ {9, 960, 540, 60}, /* p60 */
{10, 848, 480, 30}, /* p30 */ {10, 848, 480, 30}, /* p30 */
{11, 848, 480, 60}, /* p60 */ {11, 848, 480, 60}, /* p60 */
{0, 0, 0, 0},
}; };
void wfd_print_resolutions(void) void wfd_print_resolutions(void)
@ -108,21 +107,21 @@ void wfd_print_resolutions(void)
int i; int i;
printf("CEA resolutions:\n"); printf("CEA resolutions:\n");
for (i = 0; resolutions_cea[i].hres != 0; i++) { for (i = 0; i < N_ELEMENTS(resolutions_cea); i++) {
printf("\t%2d %08x %4dx%4d@%d\n", printf("\t%2d %08x %4dx%4d@%d\n",
resolutions_cea[i].index, 1 << resolutions_cea[i].index, resolutions_cea[i].index, 1 << resolutions_cea[i].index,
resolutions_cea[i].hres, resolutions_cea[i].vres, resolutions_cea[i].hres, resolutions_cea[i].vres,
resolutions_cea[i].fps); resolutions_cea[i].fps);
} }
printf("VESA resolutions:\n"); printf("VESA resolutions:\n");
for (i = 0; resolutions_vesa[i].hres != 0; i++) { for (i = 0; i < N_ELEMENTS(resolutions_vesa); i++) {
printf("\t%2d %08x %4dx%4d@%d\n", printf("\t%2d %08x %4dx%4d@%d\n",
resolutions_vesa[i].index, 1 << resolutions_vesa[i].index, resolutions_vesa[i].index, 1 << resolutions_vesa[i].index,
resolutions_vesa[i].hres, resolutions_vesa[i].vres, resolutions_vesa[i].hres, resolutions_vesa[i].vres,
resolutions_vesa[i].fps); resolutions_vesa[i].fps);
} }
printf("HH resolutions:\n"); printf("HH resolutions:\n");
for (i = 0; resolutions_hh[i].hres != 0; i++) { for (i = 0; i < N_ELEMENTS(resolutions_hh); i++) {
printf("\t%2d %08x %4dx%4d@%d\n", printf("\t%2d %08x %4dx%4d@%d\n",
resolutions_hh[i].index, 1 << resolutions_hh[i].index, resolutions_hh[i].index, 1 << resolutions_hh[i].index,
resolutions_hh[i].hres, resolutions_hh[i].vres, resolutions_hh[i].hres, resolutions_hh[i].vres,
@ -141,7 +140,7 @@ void vfd_dump_resolutions(uint32_t cea_mask, uint32_t vesa_mask, uint32_t hh_mas
if (cea_mask) { if (cea_mask) {
cli_debug("CEA resolutions:"); cli_debug("CEA resolutions:");
for (i = 0; resolutions_cea[i].hres != 0; i++) for (i = 0; i < N_ELEMENTS(resolutions_cea); i++)
if ((1 << resolutions_cea[i].index) & cea_mask) if ((1 << resolutions_cea[i].index) & cea_mask)
cli_debug("\t%2d %08x %4dx%4d@%d\n", cli_debug("\t%2d %08x %4dx%4d@%d\n",
resolutions_cea[i].index, 1 << resolutions_cea[i].index, resolutions_cea[i].index, 1 << resolutions_cea[i].index,
@ -150,7 +149,7 @@ void vfd_dump_resolutions(uint32_t cea_mask, uint32_t vesa_mask, uint32_t hh_mas
} }
if (vesa_mask) { if (vesa_mask) {
cli_debug("VESA resolutions:"); cli_debug("VESA resolutions:");
for (i = 0; resolutions_vesa[i].hres != 0; i++) for (i = 0; i < N_ELEMENTS(resolutions_vesa); i++)
if ((1 << resolutions_vesa[i].index) & vesa_mask) if ((1 << resolutions_vesa[i].index) & vesa_mask)
cli_debug("\t%2d %08x %4dx%4d@%d\n", cli_debug("\t%2d %08x %4dx%4d@%d\n",
resolutions_vesa[i].index, 1 << resolutions_vesa[i].index, resolutions_vesa[i].index, 1 << resolutions_vesa[i].index,
@ -159,7 +158,7 @@ void vfd_dump_resolutions(uint32_t cea_mask, uint32_t vesa_mask, uint32_t hh_mas
} }
if (hh_mask) { if (hh_mask) {
cli_debug("HH resolutions:"); cli_debug("HH resolutions:");
for (i = 0; resolutions_hh[i].hres != 0; i++) for (i = 0; i < N_ELEMENTS(resolutions_hh); i++)
if ((1 << resolutions_hh[i].index) & hh_mask) if ((1 << resolutions_hh[i].index) & hh_mask)
cli_debug("\t%2d %08x %4dx%4d@%d\n", cli_debug("\t%2d %08x %4dx%4d@%d\n",
resolutions_hh[i].index, 1 << resolutions_hh[i].index, resolutions_hh[i].index, 1 << resolutions_hh[i].index,