From eeec278d21ae258da9108bbbccf04d977c3d3bfa Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Thu, 23 Feb 2006 20:46:33 +0000 Subject: Made the overlay loader code part of the plugin library. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8813 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/rockboy.c | 71 +++----------------------------------------------- 1 file changed, 4 insertions(+), 67 deletions(-) (limited to 'apps/plugins/rockboy.c') diff --git a/apps/plugins/rockboy.c b/apps/plugins/rockboy.c index f571894717..9ff176cd25 100644 --- a/apps/plugins/rockboy.c +++ b/apps/plugins/rockboy.c @@ -9,7 +9,7 @@ * * Copyright (C) 2005 Jens Arnold * - * Overlay loader for rockboy on Archos + * Overlay loader stub plugin for rockboy on Archos * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. @@ -22,76 +22,13 @@ #if MEM <= 8 && !defined(SIMULATOR) -PLUGIN_HEADER - -#define OVL_NAME "/.rockbox/viewers/rockboy.ovl" -#define OVL_DISPLAYNAME "RockBoy" +#include "overlay.h" -struct plugin_api* rb; -unsigned char *audiobuf; -int audiobuf_size; +PLUGIN_HEADER /* this is the plugin entry point */ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { - int fd, readsize; - struct plugin_header header; - - rb = api; - - fd = rb->open(OVL_NAME, O_RDONLY); - if (fd < 0) - { - rb->splash(2*HZ, true, "Can't open " OVL_NAME); - return PLUGIN_ERROR; - } - readsize = rb->read(fd, &header, sizeof(header)); - rb->close(fd); - /* Close for now. Less code than doing it in all error checks. - * Would need to seek back anyway. */ - - if (readsize != sizeof(header)) - { - rb->splash(2*HZ, true, "Reading" OVL_DISPLAYNAME " overlay failed."); - return PLUGIN_ERROR; - } - if (header.magic != PLUGIN_MAGIC || header.target_id != TARGET_ID) - { - rb->splash(2*HZ, true, OVL_DISPLAYNAME - " overlay: Incompatible model."); - return PLUGIN_ERROR; - } - if (header.api_version != PLUGIN_API_VERSION) - { - rb->splash(2*HZ, true, OVL_DISPLAYNAME - " overlay: Incompatible version."); - return PLUGIN_ERROR; - } - - audiobuf = rb->plugin_get_audio_buffer(&audiobuf_size); - if (header.load_addr < audiobuf || - header.end_addr > audiobuf + audiobuf_size) - { - rb->splash(2*HZ, true, OVL_DISPLAYNAME - " overlay doesn't fit into memory."); - return PLUGIN_ERROR; - } - rb->memset(header.load_addr, 0, header.end_addr - header.load_addr); - - fd = rb->open(OVL_NAME, O_RDONLY); - if (fd < 0) - { - rb->splash(2*HZ, true, "Can't open " OVL_NAME); - return PLUGIN_ERROR; - } - readsize = rb->read(fd, header.load_addr, header.end_addr - header.load_addr); - rb->close(fd); - - if (readsize < 0) - { - rb->splash(2*HZ, true, "Reading" OVL_DISPLAYNAME " overlay failed."); - return PLUGIN_ERROR; - } - return header.entry_point(api, parameter); + return run_overlay(api, parameter, "/.rockbox/viewers/rockboy.ovl", "RockBoy"); } #endif -- cgit v1.2.3