Создание скриншотов на самом плеере
Фотографии vogue-плеера иногда выглядят безобразно, а хочется четкой и яркой картинки. Для этого имеется возможность, любезно предоставленная разработчиками MiniOS, создавать скриншоты непосредственно на самом устройстве. Чтобы все заработало:
В файлах /mtv_50/gui_lib/src/Fb.c , /mtv_50/gui_lib/src/Fb.h и /mtv_50/common/keymsg.c необходимо добавить дефайн:
После этого при нажатии на кнопку POWER в файловой системе будет создана папка \SCREENS, куда будут складываться скриншоты xxx.bmp, где xxx - номер скриншота. Следует учесть, что при выключении-включении устройства при создании новых скриншотов они будут всегда начинаться с номера 000, таким образом затирая уже существующие.
Поменять код кнопки для создания скриншотов можно в файле /mtv_50/common/keymsg.c в строках:
#ifdef SCREEN_SNAP_MODE
if(curdownkeycode & 0x40){ //Код клавиши, по умолчанию 0x40 (POWER)
FbSnap();
curdownkeycode = 0;
myPostMessage = 0;
continue;
}
#endif // SCREEN_SNAP_MODE
В результате получаются такие красивые картинки:
Исправление процедуры создания скриншотов
Как было сказано выше, при каждом включении-выключении устройства скриншоты начинают создаваться с номера 000, не зависимо от того, имеются ли уже в папке \SCREENS другие скриншоты. И если они там имеются, то они будут перезаписаны. Исправить это довольно легко:
В файле /mtv_50/gui_lib/src/Fb.c в функции FbSnap() после строки
sprintf(filename, "%s\\%03d.bmp", SCREEN_SNAP_FOLDER, snap_count);
достаточно вставить такую конструкцию:
while (CheckFileExist(filename)) {
snap_count ++;
memset(filename, 0x0, MAX_PATH);
sprintf(filename, "%s\\%03d.bmp", SCREEN_SNAP_FOLDER, snap_count);
}
Теперь в файле /mtv_50/common/system.c необходимо функцию CheckFileExist сделать публичной, для этого нужно заменить объявление функции
static int CheckFileExist(const char *filename)
на
int CheckFileExist(const char *filename)
И соответственно прописать объявление нашей функции в файле /mtv_50/common/system.h добавив в него строку:
int CheckFileExist(const char *filename);
После этого скриншоты будут создаваться начиная с последнего номера, не зависимо от выключения или включения устройства, и не будут перезаписывать уже существующие.