From a1bf8000e844b1289c5d37d70978b04ac1795de3 Mon Sep 17 00:00:00 2001 From: David Rose Date: Wed, 17 Mar 2004 07:02:38 +0000 Subject: [PATCH] add movie support --- pandaapp/src/indexify/default_index_icons.cxx | 393 +++++++++++------- pandaapp/src/indexify/default_index_icons.h | 16 +- pandaapp/src/indexify/indexImage.cxx | 32 +- pandaapp/src/indexify/indexParameters.cxx | 26 ++ pandaapp/src/indexify/indexParameters.h | 7 + pandaapp/src/indexify/indexify.cxx | 87 ++-- pandaapp/src/indexify/indexify.h | 2 +- pandaapp/src/indexify/left.png | Bin 0 -> 536 bytes pandaapp/src/indexify/movie.png | Bin 0 -> 258 bytes pandaapp/src/indexify/photo.cxx | 17 +- pandaapp/src/indexify/photo.h | 6 +- pandaapp/src/indexify/right.png | Bin 0 -> 526 bytes pandaapp/src/indexify/rollDirectory.cxx | 34 +- pandaapp/src/indexify/rollDirectory.h | 3 +- pandaapp/src/indexify/up.png | Bin 0 -> 549 bytes 15 files changed, 412 insertions(+), 211 deletions(-) create mode 100755 pandaapp/src/indexify/left.png create mode 100644 pandaapp/src/indexify/movie.png create mode 100755 pandaapp/src/indexify/right.png create mode 100755 pandaapp/src/indexify/up.png diff --git a/pandaapp/src/indexify/default_index_icons.cxx b/pandaapp/src/indexify/default_index_icons.cxx index 7dab090363..2713830450 100644 --- a/pandaapp/src/indexify/default_index_icons.cxx +++ b/pandaapp/src/indexify/default_index_icons.cxx @@ -18,168 +18,241 @@ #include "default_index_icons.h" -// This file was generated from left.png, right.png, and up.png; it -// provides data for default navigation icons if the -i parameter is -// supplied on the command line. +// This file was generated from left.png, right.png, up.png, and +// movie.png; it provides data for default navigation icons if the -i +// parameter is supplied on the command line. const char *default_left_icon_filename = "left.png"; -const unsigned char default_left_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, - 0xc2, 0xc9, 0xcd, 0xb5, 0xbd, 0xc2, 0xae, 0xb7, 0xbc, 0xa7, 0xb0, - 0xb6, 0x99, 0xa4, 0xab, 0x8c, 0x98, 0xa0, 0x7e, 0x8c, 0x95, 0x77, - 0x86, 0x8f, 0x6c, 0x7a, 0x83, 0x60, 0x6c, 0x74, 0x55, 0x60, 0x67, - 0x4f, 0x5a, 0x60, 0x44, 0x10, 0xa7, 0xee, 0x00, 0x00, 0x01, 0x96, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7d, 0x93, 0xdd, 0x92, 0xec, - 0x20, 0x08, 0x84, 0x47, 0x7e, 0x04, 0xd4, 0xe4, 0xfd, 0x1f, 0xf7, - 0x74, 0xe3, 0x9c, 0xaa, 0xbd, 0xd8, 0x5a, 0x2f, 0x66, 0x12, 0x3f, - 0x81, 0xb6, 0x21, 0x9f, 0xcf, 0x2f, 0x4b, 0xe4, 0xfb, 0x70, 0x7e, - 0xa3, 0x9f, 0x31, 0xee, 0xff, 0x24, 0x56, 0x15, 0x8b, 0xa9, 0x63, - 0x08, 0x96, 0xe9, 0xf8, 0x0c, 0x35, 0x9f, 0xa6, 0xa2, 0xb5, 0x89, - 0x45, 0x67, 0xba, 0xca, 0x10, 0x33, 0x73, 0x13, 0x9c, 0x53, 0x2e, - 0xb3, 0x45, 0x6c, 0x86, 0x27, 0x1c, 0xc6, 0x29, 0x47, 0x26, 0xe2, - 0x7e, 0x33, 0xad, 0x02, 0x8e, 0x00, 0x9d, 0xd3, 0xb8, 0x21, 0x0c, - 0x14, 0x3b, 0xce, 0x42, 0xa3, 0x16, 0x05, 0x4c, 0x77, 0xc7, 0x19, - 0x60, 0x63, 0xca, 0xb9, 0x9f, 0x07, 0x69, 0x20, 0x26, 0xd7, 0x95, - 0xa6, 0xea, 0xdc, 0x40, 0x65, 0xf3, 0x7a, 0xdf, 0xe7, 0xa0, 0x1e, - 0xb4, 0xcc, 0x6c, 0x69, 0x54, 0x3c, 0xad, 0x57, 0x3e, 0x58, 0xa7, - 0xb1, 0x68, 0x54, 0x47, 0xb3, 0xa4, 0xff, 0x80, 0x7b, 0xb7, 0x46, - 0xcd, 0xfc, 0x62, 0xe4, 0x45, 0x81, 0xf3, 0x36, 0x5c, 0x6b, 0x07, - 0x6f, 0xe6, 0x19, 0xc4, 0x14, 0x84, 0x3b, 0xd5, 0x83, 0xa2, 0x7b, - 0xef, 0xca, 0x5c, 0xd1, 0x2a, 0xcf, 0xba, 0xf7, 0x86, 0xde, 0x42, - 0xda, 0xf7, 0x41, 0x64, 0x55, 0x56, 0x39, 0xb2, 0x89, 0x1e, 0x9a, - 0xea, 0x6e, 0x1a, 0xcc, 0x4b, 0x0c, 0x08, 0xba, 0x9c, 0x29, 0x75, - 0x37, 0x06, 0x7d, 0xbb, 0xea, 0x73, 0x16, 0x28, 0x70, 0xb5, 0x91, - 0xd6, 0xd1, 0xbc, 0x17, 0xac, 0xa0, 0x60, 0x64, 0x66, 0x74, 0x26, - 0x5d, 0xd6, 0x9b, 0x9c, 0x1d, 0x10, 0x49, 0x62, 0x42, 0xe2, 0x0a, - 0x52, 0x59, 0xed, 0x1a, 0xcc, 0x62, 0xae, 0xd8, 0x0c, 0xcf, 0x3e, - 0x10, 0x74, 0xf2, 0xde, 0xdb, 0x33, 0xd9, 0x14, 0x38, 0x57, 0x67, - 0xdf, 0xec, 0x3b, 0x18, 0xe0, 0xbb, 0x5b, 0x12, 0xc0, 0xd7, 0xd9, - 0x80, 0xe8, 0x95, 0x51, 0x3b, 0x69, 0xe2, 0xad, 0xad, 0x16, 0x41, - 0xda, 0xdd, 0x44, 0x85, 0x8a, 0x2c, 0x36, 0xd1, 0xa4, 0x1b, 0x0a, - 0xbf, 0x1d, 0xed, 0x61, 0x13, 0xc4, 0xdc, 0x29, 0x3c, 0x31, 0x4d, - 0xae, 0x63, 0x4e, 0x46, 0x63, 0xb0, 0xe4, 0x36, 0x5b, 0x67, 0xc0, - 0xfb, 0xeb, 0x1a, 0x42, 0x26, 0x3d, 0x97, 0x89, 0xdc, 0x18, 0x17, - 0x12, 0x4e, 0x05, 0x86, 0x6a, 0xb9, 0xd0, 0xd5, 0x6c, 0x5b, 0xa8, - 0x0b, 0xd9, 0x48, 0xfa, 0xc7, 0xfe, 0xcf, 0xe5, 0x6a, 0x7c, 0x27, - 0x8c, 0x9b, 0x82, 0xa1, 0x31, 0xef, 0xa9, 0x1e, 0xa8, 0xb9, 0xf7, - 0xd7, 0xd4, 0x56, 0xae, 0x2d, 0xa0, 0xa7, 0xb2, 0xa5, 0x7e, 0x3d, - 0xff, 0x33, 0x7a, 0xf6, 0x45, 0xe1, 0xdc, 0x84, 0x3a, 0x98, 0xb6, - 0xcf, 0xc2, 0x0b, 0xac, 0xa1, 0x03, 0xf8, 0xcc, 0xce, 0x69, 0xa3, - 0x89, 0xc9, 0xd1, 0x9a, 0xc0, 0x73, 0x9e, 0x8d, 0xad, 0x7f, 0xbd, - 0xcf, 0x11, 0xe9, 0xc6, 0x04, 0xc1, 0x3d, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; -const int default_left_icon_size = sizeof(default_left_icon); - const char *default_right_icon_filename = "right.png"; -const unsigned char default_right_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xec, 0xee, 0xef, 0xd8, 0xdc, 0xdf, 0xca, 0xd0, 0xd3, - 0xc3, 0xc9, 0xcd, 0xae, 0xb7, 0xbc, 0xa8, 0xb1, 0xb7, 0x99, 0xa4, - 0xab, 0x93, 0x9f, 0xa6, 0x86, 0x93, 0x9b, 0x77, 0x86, 0x8f, 0x71, - 0x80, 0x89, 0x60, 0x6c, 0x74, 0x5b, 0x67, 0x6e, 0x50, 0x5b, 0x61, - 0x45, 0x4e, 0x53, 0xeb, 0x64, 0x46, 0x0c, 0x00, 0x00, 0x01, 0x8c, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x92, 0x59, 0x6e, 0xc3, - 0x30, 0x0c, 0x44, 0x2d, 0x71, 0x95, 0x94, 0xf4, 0xfe, 0xc7, 0xed, - 0xcc, 0xc8, 0x40, 0x7f, 0x4a, 0x04, 0x89, 0xc3, 0xc7, 0x65, 0x4c, - 0xf2, 0x79, 0xfe, 0xb1, 0x39, 0xde, 0x87, 0xf3, 0xfc, 0x6b, 0x2f, - 0x0e, 0xe2, 0x69, 0xd3, 0x6c, 0xce, 0x31, 0xf8, 0xc1, 0xef, 0x33, - 0x3c, 0x33, 0xc3, 0xe7, 0x58, 0x1b, 0x18, 0xc8, 0x33, 0x8c, 0x6c, - 0x20, 0x14, 0x99, 0xd3, 0x3d, 0x1c, 0x6e, 0x61, 0x64, 0x44, 0x05, - 0x53, 0xdd, 0xcd, 0x6d, 0xa8, 0xde, 0x44, 0x45, 0x5b, 0x0d, 0x0c, - 0xa7, 0x79, 0x7d, 0x62, 0x98, 0x52, 0xc6, 0x20, 0x1e, 0xc2, 0x0b, - 0x38, 0x13, 0xbc, 0x7f, 0xbe, 0x1b, 0x71, 0x72, 0x8f, 0x71, 0x45, - 0x8c, 0x22, 0x8e, 0x70, 0xf7, 0xf5, 0xf3, 0xfd, 0x7c, 0xda, 0x21, - 0x03, 0x32, 0x81, 0xf9, 0xfd, 0x44, 0xdf, 0xde, 0xd3, 0xfa, 0xfb, - 0x39, 0xb0, 0x36, 0xbe, 0x86, 0x5d, 0x8d, 0x23, 0x97, 0x94, 0xa3, - 0x56, 0x01, 0xef, 0x7d, 0xce, 0x4e, 0x89, 0x12, 0xb6, 0x62, 0xb6, - 0xa2, 0xf3, 0x0b, 0x4a, 0x3b, 0xcb, 0xe9, 0xa0, 0x78, 0xeb, 0x7c, - 0x31, 0xb2, 0xcf, 0x5e, 0xb2, 0x7d, 0xca, 0x5c, 0x21, 0x7e, 0x54, - 0x9c, 0x73, 0xe9, 0xef, 0x21, 0xeb, 0x06, 0xdf, 0xbb, 0x9d, 0x6f, - 0xe1, 0xe7, 0xdc, 0x6c, 0xb3, 0x22, 0x86, 0xbf, 0x5a, 0x05, 0x76, - 0x72, 0x04, 0xfb, 0xdc, 0xb1, 0xcc, 0x99, 0xc4, 0x50, 0x5e, 0x85, - 0x02, 0x94, 0x90, 0xc8, 0x39, 0x17, 0x73, 0xac, 0x12, 0xbe, 0xbb, - 0x6f, 0x7e, 0xb3, 0xf9, 0xc5, 0x9a, 0x91, 0x13, 0x93, 0xca, 0x5c, - 0xe2, 0xa6, 0x86, 0xaa, 0x55, 0x09, 0xaf, 0x0b, 0xcb, 0x4c, 0x0d, - 0x67, 0xd5, 0xa3, 0xf5, 0xf9, 0xed, 0xbd, 0x29, 0x9d, 0x4d, 0x45, - 0xcd, 0x36, 0xb3, 0xbd, 0x2a, 0xa1, 0x9c, 0xaf, 0x8d, 0xfc, 0xd0, - 0xfa, 0x5d, 0x31, 0xea, 0x1d, 0x59, 0xe9, 0xf9, 0x01, 0x5a, 0x2b, - 0xe1, 0xc4, 0x34, 0x71, 0x2b, 0xec, 0xdd, 0x4b, 0xc5, 0x33, 0x2d, - 0x0e, 0x87, 0x31, 0x4d, 0x58, 0x3f, 0x38, 0x8c, 0x08, 0x4a, 0xa3, - 0x0b, 0xd2, 0x96, 0xf1, 0x5e, 0x5c, 0x1b, 0x9a, 0xce, 0x5b, 0x8b, - 0x54, 0x36, 0x1e, 0xe3, 0x68, 0x4e, 0x91, 0x1c, 0x02, 0x37, 0xcc, - 0x2a, 0xa5, 0x4b, 0x8d, 0xc4, 0x7c, 0x43, 0x04, 0x97, 0x83, 0xd6, - 0xda, 0x18, 0x2f, 0xf5, 0x1e, 0xb2, 0xaa, 0x22, 0x68, 0x28, 0x92, - 0x17, 0x39, 0x74, 0x6b, 0xfb, 0xbd, 0xd4, 0xa1, 0x6a, 0x8a, 0x82, - 0xaa, 0x0c, 0x1e, 0xbb, 0x79, 0xfc, 0x0d, 0xf5, 0x35, 0xd2, 0x08, - 0x5d, 0x1b, 0x12, 0x98, 0x1d, 0x7b, 0x65, 0x61, 0x53, 0x19, 0x68, - 0xcf, 0x75, 0x9f, 0x85, 0x3f, 0xa9, 0xb5, 0x43, 0xf9, 0xd1, 0x1a, - 0xab, 0x89, 0xc9, 0x79, 0x6f, 0x78, 0x6e, 0xac, 0x2f, 0xe3, 0x17, - 0x29, 0xef, 0x0f, 0xde, 0x36, 0xeb, 0x43, 0xec, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; -const int default_right_icon_size = sizeof(default_right_icon); - const char *default_up_icon_filename = "up.png"; -const unsigned char default_up_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, - 0xc9, 0xcf, 0xd2, 0xc2, 0xc9, 0xcd, 0xb4, 0xbc, 0xc1, 0xad, 0xb6, - 0xbb, 0x98, 0xa3, 0xaa, 0x92, 0x9e, 0xa5, 0x7d, 0x8b, 0x94, 0x70, - 0x7f, 0x88, 0x65, 0x72, 0x7a, 0x5f, 0x6b, 0x73, 0x54, 0x5f, 0x66, - 0x4a, 0x53, 0x59, 0xac, 0xfc, 0xc3, 0x4d, 0x00, 0x00, 0x01, 0xa3, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x53, 0x59, 0x96, 0xc3, - 0x30, 0x08, 0x8b, 0x59, 0xbd, 0x90, 0xdc, 0xff, 0xb8, 0x23, 0xe1, - 0x7e, 0x0e, 0xaf, 0x75, 0x5a, 0x8b, 0x45, 0x02, 0xf2, 0x3c, 0xff, - 0x98, 0xc8, 0xef, 0x47, 0xfd, 0x87, 0x3e, 0x63, 0xdc, 0x67, 0x10, - 0x16, 0x53, 0x33, 0x15, 0x19, 0xfc, 0xa8, 0x8c, 0x21, 0x9e, 0x99, - 0xe1, 0x22, 0xeb, 0x00, 0x06, 0xe4, 0x19, 0x86, 0x6b, 0x98, 0xeb, - 0x78, 0x86, 0x7a, 0x84, 0x9b, 0xe8, 0xde, 0x80, 0x55, 0x34, 0x66, - 0x20, 0x4c, 0xdc, 0x1d, 0x41, 0xf0, 0x33, 0x55, 0x35, 0xf7, 0xb5, - 0x00, 0xbb, 0x9b, 0x7f, 0xdf, 0xf7, 0xbe, 0x6f, 0x1f, 0x3f, 0x13, - 0x73, 0x5b, 0x8c, 0xce, 0xf4, 0x86, 0xeb, 0x7d, 0xeb, 0x9c, 0x2a, - 0x1c, 0x78, 0xa0, 0xd0, 0x98, 0x84, 0x03, 0x46, 0xf8, 0xb4, 0x11, - 0xdc, 0xfb, 0x1c, 0xd3, 0x31, 0x62, 0xb2, 0x36, 0x8a, 0x5b, 0x04, - 0xf8, 0xa3, 0xb2, 0x3b, 0x1e, 0x26, 0xa2, 0xe0, 0x20, 0xc9, 0xda, - 0xd6, 0x8c, 0x89, 0xc0, 0x20, 0xb1, 0x71, 0xc0, 0x62, 0x93, 0xd1, - 0x66, 0x70, 0xb0, 0x0b, 0xaf, 0xa9, 0x74, 0x71, 0xf8, 0x10, 0xce, - 0x1f, 0x0c, 0xa5, 0x06, 0xc0, 0xab, 0x80, 0x41, 0x68, 0xe0, 0x52, - 0xa3, 0x48, 0x8d, 0xbe, 0xe8, 0x83, 0x22, 0xc3, 0x79, 0x6b, 0xb1, - 0x81, 0x2c, 0x05, 0xf7, 0xaa, 0xab, 0x1b, 0x2d, 0x00, 0xec, 0x1b, - 0xea, 0xaa, 0x39, 0xe2, 0x3f, 0x52, 0x9e, 0x6a, 0x61, 0xde, 0x74, - 0xd4, 0x5b, 0xdd, 0x62, 0x2a, 0x04, 0x20, 0xfd, 0x85, 0x1d, 0xca, - 0x40, 0xc4, 0xd7, 0xf7, 0x15, 0x34, 0xa3, 0x4b, 0x24, 0xd3, 0x4c, - 0x7a, 0xba, 0x72, 0xa5, 0x31, 0x78, 0xc3, 0xbc, 0xd3, 0x83, 0x5b, - 0x8f, 0x04, 0x53, 0xec, 0x60, 0x56, 0xde, 0x7b, 0xad, 0x3d, 0xc9, - 0x05, 0xfa, 0xa5, 0x75, 0xa3, 0x96, 0x33, 0xd7, 0xc7, 0x9e, 0xaf, - 0x35, 0xd7, 0xbe, 0xc4, 0xcc, 0x3a, 0x3a, 0xe6, 0x44, 0x39, 0x87, - 0x28, 0x54, 0x5e, 0xc4, 0x17, 0x96, 0x81, 0x62, 0xba, 0x76, 0x24, - 0x60, 0x4b, 0x8e, 0x6b, 0x13, 0x9b, 0x73, 0xcf, 0xe8, 0xee, 0xf7, - 0x40, 0x15, 0xbb, 0x63, 0x52, 0x28, 0x7c, 0x43, 0x67, 0x22, 0x3d, - 0xa6, 0xe8, 0x12, 0xd1, 0xbb, 0x16, 0x21, 0xf3, 0x25, 0x3c, 0xe9, - 0x00, 0x43, 0x76, 0xb4, 0x71, 0x04, 0x7b, 0xae, 0xcc, 0xf4, 0x36, - 0xbc, 0x20, 0xab, 0xe1, 0x0d, 0x18, 0xeb, 0xd0, 0xba, 0x23, 0xcd, - 0x79, 0x09, 0x82, 0x7d, 0x70, 0x3f, 0x8c, 0x5d, 0xde, 0x0d, 0x73, - 0xfc, 0xb8, 0x4b, 0x8c, 0xb8, 0x0f, 0xca, 0xea, 0xbd, 0x3c, 0xa4, - 0xc6, 0x8e, 0xb2, 0xe9, 0xb8, 0x94, 0x0e, 0x4b, 0x94, 0x1d, 0x03, - 0x8c, 0xea, 0xfc, 0x9a, 0xaa, 0xfc, 0x2a, 0x3b, 0x6d, 0xdc, 0xf1, - 0x7e, 0x21, 0x6e, 0x74, 0xec, 0x95, 0x13, 0x7c, 0x49, 0x36, 0xc1, - 0x1c, 0xea, 0xf1, 0x27, 0xc9, 0x72, 0xe5, 0x83, 0xc5, 0xad, 0x16, - 0x43, 0x98, 0x78, 0xd5, 0xc6, 0x2b, 0x14, 0xf3, 0x1c, 0x5c, 0xfd, - 0x01, 0x56, 0x35, 0x13, 0x9e, 0xbd, 0x4e, 0x62, 0x4e, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, +const char *default_movie_icon_filename = "movie.png"; + +/* + +Use this series of commands to regenerate the tables: + +bin2c -n default_left_icon left.png >> default_index_icons.cxx +bin2c -n default_right_icon right.png >> default_index_icons.cxx +bin2c -n default_up_icon up.png >> default_index_icons.cxx +bin2c -n default_movie_icon movie.png >> default_index_icons.cxx + +*/ + +/* + * This table was generated by the command: + * + * bin2c -n default_left_icon left.png + */ + +const unsigned char default_left_icon[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, + 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, + 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, + 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, + 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, + 0xc2, 0xc9, 0xcd, 0xb5, 0xbd, 0xc2, 0xae, 0xb7, 0xbc, 0xa7, 0xb0, + 0xb6, 0x99, 0xa4, 0xab, 0x8c, 0x98, 0xa0, 0x7e, 0x8c, 0x95, 0x77, + 0x86, 0x8f, 0x6c, 0x7a, 0x83, 0x60, 0x6c, 0x74, 0x55, 0x60, 0x67, + 0x4f, 0x5a, 0x60, 0x44, 0x10, 0xa7, 0xee, 0x00, 0x00, 0x01, 0x96, + 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7d, 0x93, 0xdd, 0x92, 0xec, + 0x20, 0x08, 0x84, 0x47, 0x7e, 0x04, 0xd4, 0xe4, 0xfd, 0x1f, 0xf7, + 0x74, 0xe3, 0x9c, 0xaa, 0xbd, 0xd8, 0x5a, 0x2f, 0x66, 0x12, 0x3f, + 0x81, 0xb6, 0x21, 0x9f, 0xcf, 0x2f, 0x4b, 0xe4, 0xfb, 0x70, 0x7e, + 0xa3, 0x9f, 0x31, 0xee, 0xff, 0x24, 0x56, 0x15, 0x8b, 0xa9, 0x63, + 0x08, 0x96, 0xe9, 0xf8, 0x0c, 0x35, 0x9f, 0xa6, 0xa2, 0xb5, 0x89, + 0x45, 0x67, 0xba, 0xca, 0x10, 0x33, 0x73, 0x13, 0x9c, 0x53, 0x2e, + 0xb3, 0x45, 0x6c, 0x86, 0x27, 0x1c, 0xc6, 0x29, 0x47, 0x26, 0xe2, + 0x7e, 0x33, 0xad, 0x02, 0x8e, 0x00, 0x9d, 0xd3, 0xb8, 0x21, 0x0c, + 0x14, 0x3b, 0xce, 0x42, 0xa3, 0x16, 0x05, 0x4c, 0x77, 0xc7, 0x19, + 0x60, 0x63, 0xca, 0xb9, 0x9f, 0x07, 0x69, 0x20, 0x26, 0xd7, 0x95, + 0xa6, 0xea, 0xdc, 0x40, 0x65, 0xf3, 0x7a, 0xdf, 0xe7, 0xa0, 0x1e, + 0xb4, 0xcc, 0x6c, 0x69, 0x54, 0x3c, 0xad, 0x57, 0x3e, 0x58, 0xa7, + 0xb1, 0x68, 0x54, 0x47, 0xb3, 0xa4, 0xff, 0x80, 0x7b, 0xb7, 0x46, + 0xcd, 0xfc, 0x62, 0xe4, 0x45, 0x81, 0xf3, 0x36, 0x5c, 0x6b, 0x07, + 0x6f, 0xe6, 0x19, 0xc4, 0x14, 0x84, 0x3b, 0xd5, 0x83, 0xa2, 0x7b, + 0xef, 0xca, 0x5c, 0xd1, 0x2a, 0xcf, 0xba, 0xf7, 0x86, 0xde, 0x42, + 0xda, 0xf7, 0x41, 0x64, 0x55, 0x56, 0x39, 0xb2, 0x89, 0x1e, 0x9a, + 0xea, 0x6e, 0x1a, 0xcc, 0x4b, 0x0c, 0x08, 0xba, 0x9c, 0x29, 0x75, + 0x37, 0x06, 0x7d, 0xbb, 0xea, 0x73, 0x16, 0x28, 0x70, 0xb5, 0x91, + 0xd6, 0xd1, 0xbc, 0x17, 0xac, 0xa0, 0x60, 0x64, 0x66, 0x74, 0x26, + 0x5d, 0xd6, 0x9b, 0x9c, 0x1d, 0x10, 0x49, 0x62, 0x42, 0xe2, 0x0a, + 0x52, 0x59, 0xed, 0x1a, 0xcc, 0x62, 0xae, 0xd8, 0x0c, 0xcf, 0x3e, + 0x10, 0x74, 0xf2, 0xde, 0xdb, 0x33, 0xd9, 0x14, 0x38, 0x57, 0x67, + 0xdf, 0xec, 0x3b, 0x18, 0xe0, 0xbb, 0x5b, 0x12, 0xc0, 0xd7, 0xd9, + 0x80, 0xe8, 0x95, 0x51, 0x3b, 0x69, 0xe2, 0xad, 0xad, 0x16, 0x41, + 0xda, 0xdd, 0x44, 0x85, 0x8a, 0x2c, 0x36, 0xd1, 0xa4, 0x1b, 0x0a, + 0xbf, 0x1d, 0xed, 0x61, 0x13, 0xc4, 0xdc, 0x29, 0x3c, 0x31, 0x4d, + 0xae, 0x63, 0x4e, 0x46, 0x63, 0xb0, 0xe4, 0x36, 0x5b, 0x67, 0xc0, + 0xfb, 0xeb, 0x1a, 0x42, 0x26, 0x3d, 0x97, 0x89, 0xdc, 0x18, 0x17, + 0x12, 0x4e, 0x05, 0x86, 0x6a, 0xb9, 0xd0, 0xd5, 0x6c, 0x5b, 0xa8, + 0x0b, 0xd9, 0x48, 0xfa, 0xc7, 0xfe, 0xcf, 0xe5, 0x6a, 0x7c, 0x27, + 0x8c, 0x9b, 0x82, 0xa1, 0x31, 0xef, 0xa9, 0x1e, 0xa8, 0xb9, 0xf7, + 0xd7, 0xd4, 0x56, 0xae, 0x2d, 0xa0, 0xa7, 0xb2, 0xa5, 0x7e, 0x3d, + 0xff, 0x33, 0x7a, 0xf6, 0x45, 0xe1, 0xdc, 0x84, 0x3a, 0x98, 0xb6, + 0xcf, 0xc2, 0x0b, 0xac, 0xa1, 0x03, 0xf8, 0xcc, 0xce, 0x69, 0xa3, + 0x89, 0xc9, 0xd1, 0x9a, 0xc0, 0x73, 0x9e, 0x8d, 0xad, 0x7f, 0xbd, + 0xcf, 0x11, 0xe9, 0xc6, 0x04, 0xc1, 0x3d, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const int default_up_icon_size = sizeof(default_up_icon); + +const int default_left_icon_len = 536; + + +/* + * This table was generated by the command: + * + * bin2c -n default_right_icon right.png + */ + +const unsigned char default_right_icon[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, + 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, + 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, + 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, + 0x54, 0x45, 0xec, 0xee, 0xef, 0xd8, 0xdc, 0xdf, 0xca, 0xd0, 0xd3, + 0xc3, 0xc9, 0xcd, 0xae, 0xb7, 0xbc, 0xa8, 0xb1, 0xb7, 0x99, 0xa4, + 0xab, 0x93, 0x9f, 0xa6, 0x86, 0x93, 0x9b, 0x77, 0x86, 0x8f, 0x71, + 0x80, 0x89, 0x60, 0x6c, 0x74, 0x5b, 0x67, 0x6e, 0x50, 0x5b, 0x61, + 0x45, 0x4e, 0x53, 0xeb, 0x64, 0x46, 0x0c, 0x00, 0x00, 0x01, 0x8c, + 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x92, 0x59, 0x6e, 0xc3, + 0x30, 0x0c, 0x44, 0x2d, 0x71, 0x95, 0x94, 0xf4, 0xfe, 0xc7, 0xed, + 0xcc, 0xc8, 0x40, 0x7f, 0x4a, 0x04, 0x89, 0xc3, 0xc7, 0x65, 0x4c, + 0xf2, 0x79, 0xfe, 0xb1, 0x39, 0xde, 0x87, 0xf3, 0xfc, 0x6b, 0x2f, + 0x0e, 0xe2, 0x69, 0xd3, 0x6c, 0xce, 0x31, 0xf8, 0xc1, 0xef, 0x33, + 0x3c, 0x33, 0xc3, 0xe7, 0x58, 0x1b, 0x18, 0xc8, 0x33, 0x8c, 0x6c, + 0x20, 0x14, 0x99, 0xd3, 0x3d, 0x1c, 0x6e, 0x61, 0x64, 0x44, 0x05, + 0x53, 0xdd, 0xcd, 0x6d, 0xa8, 0xde, 0x44, 0x45, 0x5b, 0x0d, 0x0c, + 0xa7, 0x79, 0x7d, 0x62, 0x98, 0x52, 0xc6, 0x20, 0x1e, 0xc2, 0x0b, + 0x38, 0x13, 0xbc, 0x7f, 0xbe, 0x1b, 0x71, 0x72, 0x8f, 0x71, 0x45, + 0x8c, 0x22, 0x8e, 0x70, 0xf7, 0xf5, 0xf3, 0xfd, 0x7c, 0xda, 0x21, + 0x03, 0x32, 0x81, 0xf9, 0xfd, 0x44, 0xdf, 0xde, 0xd3, 0xfa, 0xfb, + 0x39, 0xb0, 0x36, 0xbe, 0x86, 0x5d, 0x8d, 0x23, 0x97, 0x94, 0xa3, + 0x56, 0x01, 0xef, 0x7d, 0xce, 0x4e, 0x89, 0x12, 0xb6, 0x62, 0xb6, + 0xa2, 0xf3, 0x0b, 0x4a, 0x3b, 0xcb, 0xe9, 0xa0, 0x78, 0xeb, 0x7c, + 0x31, 0xb2, 0xcf, 0x5e, 0xb2, 0x7d, 0xca, 0x5c, 0x21, 0x7e, 0x54, + 0x9c, 0x73, 0xe9, 0xef, 0x21, 0xeb, 0x06, 0xdf, 0xbb, 0x9d, 0x6f, + 0xe1, 0xe7, 0xdc, 0x6c, 0xb3, 0x22, 0x86, 0xbf, 0x5a, 0x05, 0x76, + 0x72, 0x04, 0xfb, 0xdc, 0xb1, 0xcc, 0x99, 0xc4, 0x50, 0x5e, 0x85, + 0x02, 0x94, 0x90, 0xc8, 0x39, 0x17, 0x73, 0xac, 0x12, 0xbe, 0xbb, + 0x6f, 0x7e, 0xb3, 0xf9, 0xc5, 0x9a, 0x91, 0x13, 0x93, 0xca, 0x5c, + 0xe2, 0xa6, 0x86, 0xaa, 0x55, 0x09, 0xaf, 0x0b, 0xcb, 0x4c, 0x0d, + 0x67, 0xd5, 0xa3, 0xf5, 0xf9, 0xed, 0xbd, 0x29, 0x9d, 0x4d, 0x45, + 0xcd, 0x36, 0xb3, 0xbd, 0x2a, 0xa1, 0x9c, 0xaf, 0x8d, 0xfc, 0xd0, + 0xfa, 0x5d, 0x31, 0xea, 0x1d, 0x59, 0xe9, 0xf9, 0x01, 0x5a, 0x2b, + 0xe1, 0xc4, 0x34, 0x71, 0x2b, 0xec, 0xdd, 0x4b, 0xc5, 0x33, 0x2d, + 0x0e, 0x87, 0x31, 0x4d, 0x58, 0x3f, 0x38, 0x8c, 0x08, 0x4a, 0xa3, + 0x0b, 0xd2, 0x96, 0xf1, 0x5e, 0x5c, 0x1b, 0x9a, 0xce, 0x5b, 0x8b, + 0x54, 0x36, 0x1e, 0xe3, 0x68, 0x4e, 0x91, 0x1c, 0x02, 0x37, 0xcc, + 0x2a, 0xa5, 0x4b, 0x8d, 0xc4, 0x7c, 0x43, 0x04, 0x97, 0x83, 0xd6, + 0xda, 0x18, 0x2f, 0xf5, 0x1e, 0xb2, 0xaa, 0x22, 0x68, 0x28, 0x92, + 0x17, 0x39, 0x74, 0x6b, 0xfb, 0xbd, 0xd4, 0xa1, 0x6a, 0x8a, 0x82, + 0xaa, 0x0c, 0x1e, 0xbb, 0x79, 0xfc, 0x0d, 0xf5, 0x35, 0xd2, 0x08, + 0x5d, 0x1b, 0x12, 0x98, 0x1d, 0x7b, 0x65, 0x61, 0x53, 0x19, 0x68, + 0xcf, 0x75, 0x9f, 0x85, 0x3f, 0xa9, 0xb5, 0x43, 0xf9, 0xd1, 0x1a, + 0xab, 0x89, 0xc9, 0x79, 0x6f, 0x78, 0x6e, 0xac, 0x2f, 0xe3, 0x17, + 0x29, 0xef, 0x0f, 0xde, 0x36, 0xeb, 0x43, 0xec, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 +}; + +const int default_right_icon_len = 526; + + +/* + * This table was generated by the command: + * + * bin2c -n default_up_icon up.png + */ + +const unsigned char default_up_icon[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, + 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, + 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, + 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, + 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, + 0xc9, 0xcf, 0xd2, 0xc2, 0xc9, 0xcd, 0xb4, 0xbc, 0xc1, 0xad, 0xb6, + 0xbb, 0x98, 0xa3, 0xaa, 0x92, 0x9e, 0xa5, 0x7d, 0x8b, 0x94, 0x70, + 0x7f, 0x88, 0x65, 0x72, 0x7a, 0x5f, 0x6b, 0x73, 0x54, 0x5f, 0x66, + 0x4a, 0x53, 0x59, 0xac, 0xfc, 0xc3, 0x4d, 0x00, 0x00, 0x01, 0xa3, + 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x53, 0x59, 0x96, 0xc3, + 0x30, 0x08, 0x8b, 0x59, 0xbd, 0x90, 0xdc, 0xff, 0xb8, 0x23, 0xe1, + 0x7e, 0x0e, 0xaf, 0x75, 0x5a, 0x8b, 0x45, 0x02, 0xf2, 0x3c, 0xff, + 0x98, 0xc8, 0xef, 0x47, 0xfd, 0x87, 0x3e, 0x63, 0xdc, 0x67, 0x10, + 0x16, 0x53, 0x33, 0x15, 0x19, 0xfc, 0xa8, 0x8c, 0x21, 0x9e, 0x99, + 0xe1, 0x22, 0xeb, 0x00, 0x06, 0xe4, 0x19, 0x86, 0x6b, 0x98, 0xeb, + 0x78, 0x86, 0x7a, 0x84, 0x9b, 0xe8, 0xde, 0x80, 0x55, 0x34, 0x66, + 0x20, 0x4c, 0xdc, 0x1d, 0x41, 0xf0, 0x33, 0x55, 0x35, 0xf7, 0xb5, + 0x00, 0xbb, 0x9b, 0x7f, 0xdf, 0xf7, 0xbe, 0x6f, 0x1f, 0x3f, 0x13, + 0x73, 0x5b, 0x8c, 0xce, 0xf4, 0x86, 0xeb, 0x7d, 0xeb, 0x9c, 0x2a, + 0x1c, 0x78, 0xa0, 0xd0, 0x98, 0x84, 0x03, 0x46, 0xf8, 0xb4, 0x11, + 0xdc, 0xfb, 0x1c, 0xd3, 0x31, 0x62, 0xb2, 0x36, 0x8a, 0x5b, 0x04, + 0xf8, 0xa3, 0xb2, 0x3b, 0x1e, 0x26, 0xa2, 0xe0, 0x20, 0xc9, 0xda, + 0xd6, 0x8c, 0x89, 0xc0, 0x20, 0xb1, 0x71, 0xc0, 0x62, 0x93, 0xd1, + 0x66, 0x70, 0xb0, 0x0b, 0xaf, 0xa9, 0x74, 0x71, 0xf8, 0x10, 0xce, + 0x1f, 0x0c, 0xa5, 0x06, 0xc0, 0xab, 0x80, 0x41, 0x68, 0xe0, 0x52, + 0xa3, 0x48, 0x8d, 0xbe, 0xe8, 0x83, 0x22, 0xc3, 0x79, 0x6b, 0xb1, + 0x81, 0x2c, 0x05, 0xf7, 0xaa, 0xab, 0x1b, 0x2d, 0x00, 0xec, 0x1b, + 0xea, 0xaa, 0x39, 0xe2, 0x3f, 0x52, 0x9e, 0x6a, 0x61, 0xde, 0x74, + 0xd4, 0x5b, 0xdd, 0x62, 0x2a, 0x04, 0x20, 0xfd, 0x85, 0x1d, 0xca, + 0x40, 0xc4, 0xd7, 0xf7, 0x15, 0x34, 0xa3, 0x4b, 0x24, 0xd3, 0x4c, + 0x7a, 0xba, 0x72, 0xa5, 0x31, 0x78, 0xc3, 0xbc, 0xd3, 0x83, 0x5b, + 0x8f, 0x04, 0x53, 0xec, 0x60, 0x56, 0xde, 0x7b, 0xad, 0x3d, 0xc9, + 0x05, 0xfa, 0xa5, 0x75, 0xa3, 0x96, 0x33, 0xd7, 0xc7, 0x9e, 0xaf, + 0x35, 0xd7, 0xbe, 0xc4, 0xcc, 0x3a, 0x3a, 0xe6, 0x44, 0x39, 0x87, + 0x28, 0x54, 0x5e, 0xc4, 0x17, 0x96, 0x81, 0x62, 0xba, 0x76, 0x24, + 0x60, 0x4b, 0x8e, 0x6b, 0x13, 0x9b, 0x73, 0xcf, 0xe8, 0xee, 0xf7, + 0x40, 0x15, 0xbb, 0x63, 0x52, 0x28, 0x7c, 0x43, 0x67, 0x22, 0x3d, + 0xa6, 0xe8, 0x12, 0xd1, 0xbb, 0x16, 0x21, 0xf3, 0x25, 0x3c, 0xe9, + 0x00, 0x43, 0x76, 0xb4, 0x71, 0x04, 0x7b, 0xae, 0xcc, 0xf4, 0x36, + 0xbc, 0x20, 0xab, 0xe1, 0x0d, 0x18, 0xeb, 0xd0, 0xba, 0x23, 0xcd, + 0x79, 0x09, 0x82, 0x7d, 0x70, 0x3f, 0x8c, 0x5d, 0xde, 0x0d, 0x73, + 0xfc, 0xb8, 0x4b, 0x8c, 0xb8, 0x0f, 0xca, 0xea, 0xbd, 0x3c, 0xa4, + 0xc6, 0x8e, 0xb2, 0xe9, 0xb8, 0x94, 0x0e, 0x4b, 0x94, 0x1d, 0x03, + 0x8c, 0xea, 0xfc, 0x9a, 0xaa, 0xfc, 0x2a, 0x3b, 0x6d, 0xdc, 0xf1, + 0x7e, 0x21, 0x6e, 0x74, 0xec, 0x95, 0x13, 0x7c, 0x49, 0x36, 0xc1, + 0x1c, 0xea, 0xf1, 0x27, 0xc9, 0x72, 0xe5, 0x83, 0xc5, 0xad, 0x16, + 0x43, 0x98, 0x78, 0xd5, 0xc6, 0x2b, 0x14, 0xf3, 0x1c, 0x5c, 0xfd, + 0x01, 0x56, 0x35, 0x13, 0x9e, 0xbd, 0x4e, 0x62, 0x4e, 0x00, 0x00, + 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 +}; + +const int default_up_icon_len = 549; + + +/* + * This table was generated by the command: + * + * bin2c -n default_movie_icon movie.png + */ + +const unsigned char default_movie_icon[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, + 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, + 0x00, 0x16, 0x04, 0x03, 0x00, 0x00, 0x00, 0x32, 0x6f, 0xa1, 0x35, + 0x00, 0x00, 0x00, 0x15, 0x50, 0x4c, 0x54, 0x45, 0xcc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0x99, 0x99, 0x99, 0x66, 0x66, + 0x66, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x89, 0x10, 0x3a, 0x6d, + 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x06, 0x61, 0x66, + 0xb8, 0x7d, 0x00, 0x00, 0x00, 0x39, 0x49, 0x44, 0x41, 0x54, 0x78, + 0xda, 0x63, 0x48, 0x83, 0x82, 0x04, 0x06, 0x86, 0x24, 0x35, 0x30, + 0x4b, 0x29, 0x15, 0xc4, 0x74, 0x01, 0x02, 0x31, 0x10, 0x33, 0x2d, + 0xcd, 0xd9, 0xd8, 0xd8, 0x58, 0x2c, 0x0d, 0x2c, 0x0a, 0x66, 0x2a, + 0xa1, 0x32, 0x89, 0x50, 0x20, 0x08, 0x04, 0x50, 0x05, 0xf4, 0xb5, + 0x02, 0xce, 0x64, 0x0d, 0x85, 0x02, 0x06, 0x00, 0x66, 0x25, 0x34, + 0xea, 0x21, 0xc4, 0xeb, 0x5e, 0x00, 0x00, 0x00, 0x56, 0x74, 0x45, + 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x20, + 0x4b, 0x65, 0x76, 0x69, 0x6e, 0x20, 0x48, 0x75, 0x67, 0x68, 0x65, + 0x73, 0x2c, 0x20, 0x6b, 0x65, 0x76, 0x69, 0x6e, 0x68, 0x40, 0x65, + 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x53, 0x65, 0x70, + 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x31, 0x39, 0x39, 0x35, + 0x4c, 0xe8, 0xf4, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82 +}; + +const int default_movie_icon_len = 258; + diff --git a/pandaapp/src/indexify/default_index_icons.h b/pandaapp/src/indexify/default_index_icons.h index 52ccaa7e7c..795a958faf 100644 --- a/pandaapp/src/indexify/default_index_icons.h +++ b/pandaapp/src/indexify/default_index_icons.h @@ -20,16 +20,18 @@ #define DEFAULT_INDEX_ICONS_H extern const char *default_left_icon_filename; -extern const unsigned char default_left_icon[]; -extern const int default_left_icon_size; - extern const char *default_right_icon_filename; -extern const unsigned char default_right_icon[]; -extern const int default_right_icon_size; - extern const char *default_up_icon_filename; +extern const char *default_movie_icon_filename; + +extern const unsigned char default_left_icon[]; +extern const int default_left_icon_len; +extern const unsigned char default_right_icon[]; +extern const int default_right_icon_len; extern const unsigned char default_up_icon[]; -extern const int default_up_icon_size; +extern const int default_up_icon_len; +extern const unsigned char default_movie_icon[]; +extern const int default_movie_icon_len; #endif diff --git a/pandaapp/src/indexify/indexImage.cxx b/pandaapp/src/indexify/indexImage.cxx index 14e3b58adc..cdfa6939e4 100644 --- a/pandaapp/src/indexify/indexImage.cxx +++ b/pandaapp/src/indexify/indexImage.cxx @@ -305,11 +305,21 @@ generate_images(const Filename &archive_dir, PNMTextMaker *text_maker) { index_image.copy_sub_image(thumbnail_image, pinfo._x_place + x_center, pinfo._y_place + y_center); - + if (text_maker != (PNMTextMaker *)NULL) { - text_maker->generate_into(photo->get_frame_number(), index_image, - pinfo._x_place + thumb_width / 2, - pinfo._y_place + thumb_height + thumb_caption_height); + int label_x = pinfo._x_place + thumb_width / 2; + int label_y = pinfo._y_place + thumb_height + thumb_caption_height; + + int width = + text_maker->generate_into(photo->get_frame_number(), index_image, + label_x, label_y); + if (photo->_has_movie && get_movie_icon().is_valid()) { + const PNMImage &movie_icon_image = get_movie_icon(); + int icon_x = label_x - width / 2 - movie_icon_image.get_x_size(); + int icon_y = label_y - movie_icon_image.get_y_size(); + + index_image.blend_sub_image(movie_icon_image, icon_x, icon_y); + } } } } @@ -430,6 +440,7 @@ generate_reduced_html(ostream &html, Photo *photo, int photo_index, int pi, compose_href("../..", roll_dir_root, _dir->get_basename()); } Filename full(full_dir, photo->get_basename()); + Filename movie(full_dir, photo->get_movie()); Filename reduced_dir("../../reduced", _dir->get_basename()); Filename reduced(reduced_dir, photo->get_basename()); @@ -536,7 +547,18 @@ generate_reduced_html(ostream &html, Photo *photo, int photo_index, int pi, if (!omit_full_links && photo->_has_reduced) { html << "

View full size image (" - << photo->_full_x_size << " x " << photo->_full_y_size << ")

"; + << photo->_full_x_size << " x " << photo->_full_y_size << ")

\n"; + } + + if (photo->_has_movie) { + html << "

"; + if (!movie_icon.empty()) { + // Show the movie icon if we got one. + Filename movie_icon_href = compose_href("../..", movie_icon); + html << "\"\""; + } + html + << "Play movie

\n"; } generate_nav_buttons(html, prev_photo_filename, next_photo_filename, diff --git a/pandaapp/src/indexify/indexParameters.cxx b/pandaapp/src/indexify/indexParameters.cxx index ff00c53beb..bb7e107934 100644 --- a/pandaapp/src/indexify/indexParameters.cxx +++ b/pandaapp/src/indexify/indexParameters.cxx @@ -38,9 +38,35 @@ int frame_inner_bevel = 1; int reduced_width = 800; int reduced_height = 700; +Filename archive_dir; + Filename prev_icon; Filename next_icon; Filename up_icon; +Filename movie_icon; + +//////////////////////////////////////////////////////////////////// +// Function: get_movie_icon +// Description: Reads the movie icon filename and returns it as an +// image, if possible. Returns a valid image if +// successful, an invalid one otherwise. +//////////////////////////////////////////////////////////////////// +const PNMImage & +get_movie_icon() { + static PNMImage movie_icon_image; + static bool got_image = false; + + if (!got_image) { + if (!movie_icon.empty()) { + Filename icon_filename(archive_dir, movie_icon); + nout << "Reading " << icon_filename << "\n"; + movie_icon_image.read(icon_filename); + } + got_image = true; + } + + return movie_icon_image; +} bool force_regenerate = false; bool format_rose = false; diff --git a/pandaapp/src/indexify/indexParameters.h b/pandaapp/src/indexify/indexParameters.h index 74c95693df..a898f644f8 100644 --- a/pandaapp/src/indexify/indexParameters.h +++ b/pandaapp/src/indexify/indexParameters.h @@ -70,11 +70,18 @@ extern int frame_inner_bevel; extern int reduced_width; extern int reduced_height; +// The directory at the root of the output hierarchy (or as specified +// by -a on the command line). +extern Filename archive_dir; + // The filenames (or URLS) to the icon images for navigating the // individual image pages. extern Filename prev_icon; extern Filename next_icon; extern Filename up_icon; +extern Filename movie_icon; + +const PNMImage &get_movie_icon(); // True to regenerate every image, whether it appears to need it or // not. diff --git a/pandaapp/src/indexify/indexify.cxx b/pandaapp/src/indexify/indexify.cxx index cfd328d286..68a265e1cc 100644 --- a/pandaapp/src/indexify/indexify.cxx +++ b/pandaapp/src/indexify/indexify.cxx @@ -86,7 +86,7 @@ Indexify() { ("a", "archive-dir", 0, "Write the generated files to the indicated directory, instead of " "the directory above roll1-dir.", - &Indexify::dispatch_filename, NULL, &_archive_dir); + &Indexify::dispatch_filename, NULL, &archive_dir); add_option ("r", "relative-dir", 0, @@ -135,12 +135,21 @@ Indexify() { "photo files within the roll directories. This is normally jpg.", &Indexify::dispatch_string, NULL, &_photo_extension); + add_option + ("m", "extension", 0, + "Specifies the filename extension (without a leading dot) to identify " + "movie files within the roll directories. This is normally mov. If " + "a file exists with the same name as a given photo but with this " + "extension, it is taken to be a movie associated with the photo, and " + "a link will be generated to play the movie.", + &Indexify::dispatch_string, NULL, &_movie_extension); + add_option ("i", "", 0, "Indicates that default navigation icon images should be generated " "into a directory called \"icons\" which will be created within the " - "directory named by -a. This is meaningful only if -prev, -next, and " - "-up are not explicitly specified.", + "directory named by -a. This is meaningful only if -iprev, -inext, " + "-iup, and -imovie are not explicitly specified.", &Indexify::dispatch_none, &_generate_icons); add_option @@ -214,24 +223,32 @@ Indexify() { &Indexify::dispatch_int_pair, NULL, &max_index_width); add_option - ("prev", "filename", 0, + ("iprev", "filename", 0, "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"previous\" photo icon.", + "absolute pathname) to the \"previous\" icon.", &Indexify::dispatch_filename, NULL, &prev_icon); add_option - ("next", "filename", 0, + ("inext", "filename", 0, "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"next\" photo icon.", + "absolute pathname) to the \"next\" icon.", &Indexify::dispatch_filename, NULL, &next_icon); add_option - ("up", "filename", 0, + ("iup", "filename", 0, "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"up\" photo icon.", + "absolute pathname) to the \"up\" icon.", &Indexify::dispatch_filename, NULL, &up_icon); + add_option + ("imovie", "filename", 0, + "Specifies the relative pathname from the archive directory (or " + "absolute pathname) to the \"movie\" icon. This is used only if " + "there are one or more movie files found in the directory.", + &Indexify::dispatch_filename, NULL, &movie_icon); + _photo_extension = "jpg"; + _movie_extension = "mov"; _text_maker = (PNMTextMaker *)NULL; _font_aa_factor = 4.0; } @@ -320,20 +337,20 @@ post_command_line() { return false; } - if (_archive_dir.empty()) { + if (archive_dir.empty()) { // Choose a default archive directory, above the first roll directory. - _archive_dir = _roll_dirs.front()->get_dir().get_dirname(); - string parent_dirname = _archive_dir.get_basename(); + archive_dir = _roll_dirs.front()->get_dir().get_dirname(); + string parent_dirname = archive_dir.get_basename(); if (parent_dirname == "full" || parent_dirname == "reduced") { // As a special case, if the subdirectory name is "full" or // "reduced", use the directory above that. - _archive_dir = _archive_dir.get_dirname(); + archive_dir = archive_dir.get_dirname(); } - if (_archive_dir.empty()) { - _archive_dir = "."; + if (archive_dir.empty()) { + archive_dir = "."; } } - _archive_dir.standardize(); + archive_dir.standardize(); if (!_roll_dir_root.empty()) { _roll_dir_root.standardize(); @@ -395,7 +412,7 @@ post_command_line() { if (_generate_icons) { if (prev_icon.empty()) { prev_icon = Filename("icons", default_left_icon_filename); - Filename icon_filename(_archive_dir, prev_icon); + Filename icon_filename(archive_dir, prev_icon); if (force_regenerate || !icon_filename.exists()) { nout << "Generating " << icon_filename << "\n"; @@ -407,12 +424,12 @@ post_command_line() { nout << "Unable to write to " << icon_filename << "\n"; exit(1); } - output.write((const char *)default_left_icon, default_left_icon_size); + output.write((const char *)default_left_icon, default_left_icon_len); } } if (next_icon.empty()) { next_icon = Filename("icons", default_right_icon_filename); - Filename icon_filename(_archive_dir, next_icon); + Filename icon_filename(archive_dir, next_icon); if (force_regenerate || !icon_filename.exists()) { nout << "Generating " << icon_filename << "\n"; icon_filename.make_dir(); @@ -423,12 +440,12 @@ post_command_line() { nout << "Unable to write to " << icon_filename << "\n"; exit(1); } - output.write((const char *)default_right_icon, default_right_icon_size); + output.write((const char *)default_right_icon, default_right_icon_len); } } if (up_icon.empty()) { up_icon = Filename("icons", default_up_icon_filename); - Filename icon_filename(_archive_dir, up_icon); + Filename icon_filename(archive_dir, up_icon); if (force_regenerate || !icon_filename.exists()) { nout << "Generating " << icon_filename << "\n"; icon_filename.make_dir(); @@ -439,7 +456,23 @@ post_command_line() { nout << "Unable to write to " << icon_filename << "\n"; exit(1); } - output.write((const char *)default_up_icon, default_up_icon_size); + output.write((const char *)default_up_icon, default_up_icon_len); + } + } + if (movie_icon.empty()) { + movie_icon = Filename("icons", default_movie_icon_filename); + Filename icon_filename(archive_dir, movie_icon); + if (force_regenerate || !icon_filename.exists()) { + nout << "Generating " << icon_filename << "\n"; + icon_filename.make_dir(); + icon_filename.set_binary(); + + ofstream output; + if (!icon_filename.open_write(output)) { + nout << "Unable to write to " << icon_filename << "\n"; + exit(1); + } + output.write((const char *)default_movie_icon, default_movie_icon_len); } } } @@ -500,7 +533,7 @@ run() { RollDirs::iterator di; for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { RollDirectory *roll_dir = (*di); - if (!roll_dir->scan(_photo_extension)) { + if (!roll_dir->scan(_photo_extension, _movie_extension)) { nout << "Unable to read " << *roll_dir << "\n"; all_ok = false; } @@ -514,7 +547,7 @@ run() { // First, generate all the images. for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { RollDirectory *roll_dir = (*di); - if (!roll_dir->generate_images(_archive_dir, _text_maker)) { + if (!roll_dir->generate_images(archive_dir, _text_maker)) { nout << "Failure.\n"; exit(1); } @@ -523,7 +556,7 @@ run() { // Then go back and generate the HTML. for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { RollDirectory *roll_dir = (*di); - if (!roll_dir->generate_html(_archive_dir, _roll_dir_root)) { + if (!roll_dir->generate_html(archive_dir, _roll_dir_root)) { nout << "Failure.\n"; exit(1); } @@ -531,7 +564,7 @@ run() { // Generate the complete index that browses all the roll directories // at once. - Filename complete_filename(_archive_dir, "html/complete.htm"); + Filename complete_filename(archive_dir, "html/complete.htm"); nout << "Generating " << complete_filename << "\n"; complete_filename.set_text(); ofstream complete_html; @@ -575,7 +608,7 @@ run() { // And finally, generate the index HTML file that sits on the top of // all of this. - Filename index_filename(_archive_dir, "index.htm"); + Filename index_filename(archive_dir, "index.htm"); nout << "Generating " << index_filename << "\n"; index_filename.set_text(); ofstream index_html; diff --git a/pandaapp/src/indexify/indexify.h b/pandaapp/src/indexify/indexify.h index 1796cd4b2d..ecc0be1338 100644 --- a/pandaapp/src/indexify/indexify.h +++ b/pandaapp/src/indexify/indexify.h @@ -50,9 +50,9 @@ public: void run(); string _front_title; - Filename _archive_dir; Filename _roll_dir_root; string _photo_extension; + string _movie_extension; Filename _font_filename; bool _generate_icons; double _font_aa_factor; diff --git a/pandaapp/src/indexify/left.png b/pandaapp/src/indexify/left.png new file mode 100755 index 0000000000000000000000000000000000000000..3b72aca091eb3696bd6f5f0852901b669d94f29e GIT binary patch literal 536 zcmV+z0_XjSP)+SB{;p5NL*TTuowY|cwx4fsYwwa`>jF_N)jFoqWk8FB_U~F_% zU}sNSU_=n7?f?J*mPtfGRCwBbliiZ+AP9s3<$cMDRnmneY@&&7ASDFk=D_?7p$OQWM*_GUDlhN9S})kLgETiS?wCk zVy@T>&pr@z^4{As*%UZeXW#5Q7~s2G62RBlfasM`J89yrtrkJr-9&|oEH=@k8w$T2 z?O_wd+$lUUO|D~3Mq{w#Hd|-F`|BD)COwyl+!z-UP6dW)xzN>YTc``!NczYA&*f@- zCybkdp)v2N9;mtZ*VI<7Eug2erG7pCGkW$#;oO8en6}Tt3#_37_{`2}qlwAUn!t0O ajjeyZ&k^ay1i?K30000hxUrnS(hGeCiZC4lwIR;F_)ysb=Z3~8z+uN05GjsqGJR^l2_;+&tGo0?a` z5R#EutdLk#q5z~a^At)lQWXkHlX5bX6;kqZ6EpMl6ueW*fD#_1=^3fTIttk!UWP+z qW{F;Mey)x}aB4wGYHm_$k%FP6rK!)0FGqkjFnGH9xvXSai$UuKe1c}4PWlZvU{;@gU zhx7bvFAm~q(`?Q$_`&ZpJTt@RSQ{9~GmLB?6q(aK9ByG`L;u`#G>SzJ^_mBbSt; zRsrvQ&Q6IEwqmxT^9xEl%juwa>wGb?&t9^9%3L9SRGf3^?;-03-@Bb};pg0Jvm%DS zS_O7;1pC~v%$dYcUWEdbkjOa~bF31+yKjE8`Nf)%6O+nZ;--eGRSB;P%S;Vt)uZ+K z?Y$|TO-0Q%v%M;zoUe`i(E435>K$3>`2kuh;lwm?E9~7%#WO7qhcQi9KRApCN}~(X zmhoO(8=B5ri&Qoq<7iHi90E7YDy2(}#C$^pmxI>Y7%%l6vZ^9zD3TXBbZh&))S+sM zf~pK2yLtQ#^)=E6T^kaZ9eZVAQyFN_b)SVlskKA-(Hg6X$$4*hZmcik7b))#-Ztw) Q>;M1&07*qoM6N<$f(Oa;jsO4v literal 0 HcmV?d00001 diff --git a/pandaapp/src/indexify/rollDirectory.cxx b/pandaapp/src/indexify/rollDirectory.cxx index f09b1d0d4a..25dd7f1b28 100644 --- a/pandaapp/src/indexify/rollDirectory.cxx +++ b/pandaapp/src/indexify/rollDirectory.cxx @@ -117,7 +117,7 @@ get_desc() const { // Description: Scans the directory for all the listed photos. //////////////////////////////////////////////////////////////////// bool RollDirectory:: -scan(const string &extension) { +scan(const string &photo_extension, const string &movie_extension) { bool reverse_order = false; bool explicit_list = false; @@ -176,16 +176,16 @@ scan(const string &extension) { any_words = true; Filename try_filename(_dir, word); if (!try_filename.exists()) { - try_filename = Filename(_dir, word + "." + extension); + try_filename = Filename(_dir, word + "." + photo_extension); } if (!try_filename.exists()) { - try_filename = Filename(_dir, _basename + word + "." + extension); + try_filename = Filename(_dir, _basename + word + "." + photo_extension); } if (!try_filename.exists()) { - try_filename = Filename(_dir, _basename + "0" + word + "." + extension); + try_filename = Filename(_dir, _basename + "0" + word + "." + photo_extension); } if (try_filename.exists()) { - _photos.push_back(new Photo(this, try_filename.get_basename())); + add_photo(try_filename.get_basename(), movie_extension); } else { nout << "Frame " << word << " not found in " << _name << "\n"; } @@ -224,8 +224,8 @@ scan(const string &extension) { vector_string::iterator ci; for (ci = contents.begin(); ci != contents.end(); ++ci) { Filename basename = (*ci); - if (basename.get_extension() == extension) { - _photos.push_back(new Photo(this, basename)); + if (basename.get_extension() == photo_extension) { + add_photo(basename, movie_extension); } } } @@ -631,6 +631,25 @@ insert_html_comment(ostream &html, Filename cm_filename) { return true; } +//////////////////////////////////////////////////////////////////// +// Function: RollDirectory::add_photo +// Access: Private +// Description: Adds the photo with the indicated basename to the +// list. +//////////////////////////////////////////////////////////////////// +void RollDirectory:: +add_photo(const Filename &basename, const string &movie_extension) { + Photo *photo = NULL; + Filename movie_filename(_dir, basename); + movie_filename.set_extension(movie_extension); + if (movie_filename.exists()) { + photo = new Photo(this, basename, movie_filename.get_basename()); + } else { + photo = new Photo(this, basename); + } + _photos.push_back(photo); +} + //////////////////////////////////////////////////////////////////// // Function: RollDirectory::add_contributing_filename // Access: Private @@ -810,3 +829,4 @@ compare_filenames(const string &a, const string &b) { return a.length() < b.length(); } + diff --git a/pandaapp/src/indexify/rollDirectory.h b/pandaapp/src/indexify/rollDirectory.h index 9341c1ad65..eb067b97f0 100644 --- a/pandaapp/src/indexify/rollDirectory.h +++ b/pandaapp/src/indexify/rollDirectory.h @@ -42,7 +42,7 @@ public: const string &get_basename() const; const string &get_name() const; const string &get_desc() const; - bool scan(const string &extension); + bool scan(const string &photo_extension, const string &movie_extension); void collect_index_images(); bool sort_date_before(const RollDirectory &other) const; @@ -68,6 +68,7 @@ public: static bool insert_html_comment(ostream &html, Filename cm_filename); private: + void add_photo(const Filename &basename, const string &movie_extension); void add_contributing_filename(const Filename &filename); static bool insert_html_comment_body(ostream &html, istream &cm); static string format_basename(const string &basename); diff --git a/pandaapp/src/indexify/up.png b/pandaapp/src/indexify/up.png new file mode 100755 index 0000000000000000000000000000000000000000..d371bbf92b4394403fc01a25f256b0c210a620b1 GIT binary patch literal 549 zcmV+=0^0qFP)+SB{;p5NL*U8V)!pY6Fyuq!uyO^V@lAfh~izpbac%aajgabzSv=Q9<9MdskvNnoa1o)$}J02#Y;2_D` z){Ke3AhB`4Vw2HkaIg!nsdRDp5Y8VAr3S#OfI(>BQlm(XzUYG@!+C45fh-00s;e6< z0PGv;syX66Ql4sI-gMMk-C`;PApM0M%0R@|_Z2jwOC-}wdb)C@F?hqg(}P=&1XJu_ zR^EH9J;??7rFEm0GuOwSuQk`c#LPN6=0rJ%C{$j=7nXryx^^UBOO9(3n{&_T?)N|y zyJJ!)d_!jb*Rq#*VV-xRee{lpO<%>in9j{3<(b-0^-PZglLG6MRWF!5r%GC&_Z< ngT<{DLzsBg#w!%_99;bYRy7lzy-s3I00000NkvXXu0mjfx9S0$ literal 0 HcmV?d00001