Commit ae91cc45 authored by Vincent Wei's avatar Vincent Wei
Browse files

initial commit

parent 05822aba
No related merge requests found
Showing with 4061 additions and 0 deletions
+4061 -0
Beijing Feynman Software Co., Ltd.
(http://www.minigui.com)
2007-06-08
******************************************************************************
What's new in this version (1.0, 2007/05/28 ~ 2007/06/08):
08/18: add check if music_status.status is stopped, while dealing with fast backward
* src/music_play.c
06/14: Add is_ignore(int) funtion to limit that only one app exist in system
among music, video and radio.
* src/main.c
06/12: Fix a bug in captionbar whose time flashed on and off.
* lib/captionbar.c
06/06: FillBoxWithBitmap in MSG_ERASEBKGND of desktop, tip and menu window, if macro BITBMPBK is defined (configure --enable-bitmapbk)
* configure.in
* src/main.c
* lib/menu.c
* lib/tip.c
06/07: fixed a bug in music_play.c.when pmp_select_media_file return NULL, close window error. filename case error in music_show_file
* src/music_play.c
06/06: add evb in configure.in, add -lengine in Makefile.am. fixed a bug in music
* configure.in
* src/Makefile.am
* src/music_play.c
* src/music_menu.c
06/06: Add incore resource cache.
* resource.c
06/05: fixed a bug in configur.in(CFLAGS = $CFLAGS... )
* configure.in
06/04: Cleanup the implementation of MD5.
* include/md5.h and lib/md5c.c files.
* lib/res_cache.c (Rename get_md5 to pmp_get_md5).
06/04: ex_filebrs_loadicon_in_cpufree return node whose icon have been loaded in file_linklist
* file_linklist.h
* file_linklist.c
06/04: change system() to statfs in setup_sys.c
* setup_sys.c
06/01: add re-entry property in select window for PMP_BROWSER_MODE_THUMBNAIL model
* sel_win_thu.c
* sel_win.c
06/01: test and debuged file linklist used in select file in thumbnail mode
* file_linklist.h
* file_linklist.c
06/01: add setup switch language
* setup.c
* setup_proc.c
06/01: add MB_YESNO in infowin.c
* infowin.c
06/01: Add resource cache based on md5 hash.
* md5.c
* md5.h
* res_cache.h
* res_cache.c
05/30: Modify image2c tool to be a general linux command tool.
* image2c.h
* bin2c.c
* make_hash.c
* trav_dir.c
05/29: The revision housekeeper's map resources (map document lays aside position).
* housekeeper.c
* housekeeper_map.c
* delete file of res/housekeeper/housekeeper_data.c
* add file of src/housekeeper_data.c
05/29: Solve the case of the game can't exit (belong to document open exception handling).
* housekeeper.c
* russia.c
* worm.c
05/29: Enters when once more the game figures out the score the demonstration mistake.
* worm.c
05/29: The revision housekeeper's map resources
* worm.c
* add file of src/worm_level.c
05/29: Revision resources document
* lib/text_zhcn.c
* include/text_id.h
05/29: ADD file link list files
* lib/file_linklist.c
* lib/file_linklist.h
05/29: Edit AUTHORS file.
* AUTHORS
05/29: Modify configure.in to rename the project name to 'mgallery' and
version to 1.0:
* configure.in
05/28: add re-entry property in select window for PMP_BROWSER_MODE_LIST mode
* sel_win_list.c
* sel_win.c
05/28: The revision tape recorder procedure, enables it can't spring the
menu when it is recording.
* recorder.c
05/28: The revision tape recorder procedure renovates the region
* recorder.c
05/28: Revises the stopwatch to demonstrate the situation (original
marginalvalue does not demonstrate).
* stopwatch.c
05/28: Just entered the worm's condition situation.
* worm.c
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free
Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. (Caching is
disabled by default to prevent problems with accidental use of stale
cache files.)
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You only need
`configure.ac' if you want to change it or regenerate `configure' using
a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that the
`configure' script does not know about. Run `./configure --help' for
details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PREFIX', the package will
use PREFIX as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' cannot figure out automatically,
but needs to determine by the type of machine the package will run on.
Usually, assuming the package is built to be run on the _same_
architectures, `configure' can figure that out, but if it prints a
message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the `--target=TYPE' option to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share, you
can create a site shell script called `config.site' that gives default
values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
will cause the specified gcc to be used as the C compiler (unless it is
overridden in the site shell script).
`configure' Invocation
======================
`configure' recognizes the following options to control how it operates.
`--help'
`-h'
Print a summary of the options to `configure', and exit.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
SUBDIRS = include lib src test res
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
config.guess config.sub depcomp install-sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BITMAPBK_FALSE = @BITMAPBK_FALSE@
BITMAPBK_TRUE = @BITMAPBK_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EVB_FALSE = @EVB_FALSE@
EVB_TRUE = @EVB_TRUE@
EXEEXT = @EXEEXT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MGRM_PROCESSES_FALSE = @MGRM_PROCESSES_FALSE@
MGRM_PROCESSES_TRUE = @MGRM_PROCESSES_TRUE@
MGRM_STANDALONE_FALSE = @MGRM_STANDALONE_FALSE@
MGRM_STANDALONE_TRUE = @MGRM_STANDALONE_TRUE@
MGRM_THREADS_FALSE = @MGRM_THREADS_FALSE@
MGRM_THREADS_TRUE = @MGRM_THREADS_TRUE@
NOUNIX_FALSE = @NOUNIX_FALSE@
NOUNIX_TRUE = @NOUNIX_TRUE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NEWGAL_FALSE = @USE_NEWGAL_FALSE@
USE_NEWGAL_TRUE = @USE_NEWGAL_TRUE@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
SUBDIRS = include lib src test res
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-generic clean-recursive ctags \
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
dist-tarZ dist-zip distcheck distclean distclean-generic \
distclean-hdr distclean-recursive distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive \
mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# NAME
mGallery - mGallery is a PMP application platform which is based on the MiniGUI graphical user interface.
TABLE OF CONTENTS
1. Introduction
2. Preparations before movement
3. About the authors
4. If you have a problem
5. Copying
## INTRODUCTION
mGallery is a PMP application platform which is based on the MiniGUI graphical
user interface. It has complete functions and simple operations.
It aims to provide a fast,lightweight,complete Windows systems and helps
the manufacturer and the designer to construct the PMP solution more conveniently.
mGallery has provided many applications, for example: audio, video, picture,
recorder, FM broadcast, electricity book, tools (calculator, calendar, stopwatch),
system setup, games (Russia, worm, housekeeper).
mGallery provides many public modules interface such as menu, resource management,
caption bar and has the biggest flexibility.
Based on MiniGUI graphics library. mGallery can be easily ported to many operating
system which MiniGUI supports. What's more, it is fast and lightweight.
## Preparations before movement
### Install the engine
If you want to use our native fbcon engine, there is no need to install
a specific library. The native fbcon engine is built in MiniGUI.
If you want to use QVFB as your graphics engine, please download
the qvfb-1.0.tar.gz from our HTTP site:
http://www.minigui.com/download/index.shtml
### Install the lib of MINIGUI as MINIGUI-Standalone.
If you any qusetion about installing the lib of MINIGUI. More information,
please browse our home page:
http://www.minigui.com
### Configure and compile mGallery
mGallery uses `automake' and `autoconf', so configuration and compilation
of mGallery are very easy:
1) Use `tar' to extract `mGallery-1.0.tar.gz' to a new directory:
$ tar zxvf mGallery-1.0.tar.gz
2) Change to the new directory and run `./autogen.sh':
$ ./autogen.sh
3) Change to the new directory and run `./configure':
$ ./configure
4) Run the following commands to compile mGallery:
$ make;
5) Default all material files are stored in '/media' dirctory. Before
run mgallery, you should create '/media' directory and its
subdirectories: music, video, picture, recoder, ebook, cfg.
$ mkdir /media
$ mkdir /media/music
$ mkdir /media/video
$ mkdir /media/picture
$ mkdir /media/ebook
$ mkdir /media/recorder
$ mkdir /media/cfg
Alternately you can define RES_TOP_DIR MACRO to set custom path.
6) Run mGallery
$ qvfb
$ cd /src
$ ./startpmp
### Operation guide
There are some keys to help to operate it.
Up: UP
Down: "DOWN"
Left: "LEFT"
Right: "RIGHT"
Exit: "ESC"
MENU: "F1"
## ABOUT THE AUTHORS
The author of mGallery is the group of solution. More information,
please browse our home page:
http://www.minigui.com
## IF YOU HAVE A PROBLEM
If you have any technical problem, advice or comment, please send
messages to solution@minigui.com.
If you are interested in the commercial MiniGUI products and licensing,
please write to sales@minigui.com. Other mail can be sent to
info@minigui.com.
## COPYING
Copyright (C ) 2007-2017 Beijing FMSoft Technologies Co., Ltd.
/* config.h.in. Generated from configure.in by autoheader. */
/* Compile with bitmapbk */
#undef BITMAPBK
/* Compile with evb */
#undef EVB
/* Define to 1 if you have the declaration of `_HAVE_MATH_LIB', and to 0 if
you don't. */
#undef HAVE_DECL__HAVE_MATH_LIB
/* Define to 1 if you have the declaration of `_JPG_FILE_SUPPORT', and to 0 if
you don't. */
#undef HAVE_DECL__JPG_FILE_SUPPORT
/* Define to 1 if you have the declaration of `_MGRM_PROCESSES', and to 0 if
you don't. */
#undef HAVE_DECL__MGRM_PROCESSES
/* Define to 1 if you have the declaration of `_MGRM_STANDALONE', and to 0 if
you don't. */
#undef HAVE_DECL__MGRM_STANDALONE
/* Define to 1 if you have the declaration of `_MGRM_THREADS', and to 0 if you
don't. */
#undef HAVE_DECL__MGRM_THREADS
/* Define to 1 if you have the declaration of `_PNG_FILE_SUPPORT', and to 0 if
you don't. */
#undef HAVE_DECL__PNG_FILE_SUPPORT
/* Define to 1 if you have the declaration of `_TTF_SUPPORT', and to 0 if you
don't. */
#undef HAVE_DECL__TTF_SUPPORT
/* Define to 1 if you have the declaration of `_TYPE1_SUPPORT', and to 0 if
you don't. */
#undef HAVE_DECL__TYPE1_SUPPORT
/* Define to 1 if you have the declaration of `_USE_NEWGAL', and to 0 if you
don't. */
#undef HAVE_DECL__USE_NEWGAL
/* Define to 1 if you have the declaration of `__NOUNIX__', and to 0 if you
don't. */
#undef HAVE_DECL___NOUNIX__
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <minigui/common.h> header file. */
#undef HAVE_MINIGUI_COMMON_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Version number of package */
#undef VERSION
/* Use text strings for locale en_US in ISO8859-1 */
#undef _LANG_EN
/* Use text strings for locale zh_CN in GB2312 */
#undef _LANG_ZHCN
/* Use text strings for locale zh_TW in BIG5 */
#undef _LANG_ZHTW
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.13)
AC_INIT(src/main.c)
dnl ========================================================================
dnl needed for cross-compiling
AC_CANONICAL_SYSTEM
dnl ========================================================================
dnl Checks for programs.
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PROG_CC
AM_INIT_AUTOMAKE(mgallery,1.0)
AM_CONFIG_HEADER(config.h)
dnl ========================================================================
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
dnl ========================================================================
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
AC_CHECK_HEADERS(sys/time.h unistd.h)
dnl ========================================================================
dnl check for libminigui
have_libminigui="no"
AC_CHECK_HEADERS(minigui/common.h, have_libminigui=yes, foo=bar)
dnl========================================================================
AC_ARG_ENABLE(evb, AC_HELP_STRING([--enable-evb], [Enable evb]))
AM_CONDITIONAL(EVB, test "x${enable_evb}" = "xyes")
if test "x${enable_evb}" = "xyes" ; then
AC_DEFINE([EVB],[], [Compile with evb])
fi
dnl========================================================================
AC_ARG_ENABLE(bitmapbk, AC_HELP_STRING([--enable-bitmapbk], [Enable bitmapbk]))
AM_CONDITIONAL(BITMAPBK, test "x${enable_bitmapbk}" = "xyes")
if test "x${enable_bitmapbk}" = "xyes" ; then
AC_DEFINE([BITMAPBK],[], [Compile with bitmapbk])
fi
dnl ========================================================================
dnl check for non-UNIX system
unix="yes"
AC_CHECK_DECLS(__NOUNIX__, unix="no", foo=bar)
dnl ========================================================================
dnl check for run-time mode of MiniGUI
dnl ========================================================================
threads_version="no"
AC_CHECK_DECLS(_MGRM_THREADS, threads_version="yes", foo=bar, [#include <minigui/common.h>])
procs_version="no"
AC_CHECK_DECLS(_MGRM_PROCESSES, procs_version="yes", foo=bar, [#include <minigui/common.h>])
standalone_version="no"
AC_CHECK_DECLS(_MGRM_STANDALONE, standalone_version="yes", foo=bar, [#include <minigui/common.h>])
dnl ========================================================================
dnl check for newgal or oldgal interface.
use_newgal="no"
AC_CHECK_DECLS(_USE_NEWGAL, use_newgal="yes", foo=bar, [#include <minigui/common.h>])
AC_ARG_WITH(lang,
[ --with-lang=[en/zhcn/zhtw]])
case "$with_lang" in
zhcn)
AC_DEFINE(_LANG_ZHCN, 1,
[Use text strings for locale zh_CN in GB2312])
;;
zhtw)
AC_DEFINE(_LANG_ZHTW, 1,
[Use text strings for locale zh_TW in BIG5])
;;
*)
AC_DEFINE(_LANG_EN, 1,
[Use text strings for locale en_US in ISO8859-1])
;;
esac
dnl ========================================================================
dnl Write Output
CFLAGS="$CFLAGS -D_DEBUG_MSG -O2 -g"
if test "$ac_cv_prog_gcc" = "yes"; then
CFLAGS="$CFLAGS -Wall -g -Wstrict-prototypes -pipe"
fi
if test "x$threads_version" = "xyes"; then
CFLAGS="$CFLAGS -D_REENTRANT"
LIBS="$LIBS -lpthread -lminigui"
else
LIBS="$LIBS -lminigui"
fi
AC_CHECK_DECLS(_HAVE_MATH_LIB, LIBS="$LIBS -lm", foo=bar, [#include <minigui/common.h>])
AC_CHECK_DECLS(_PNG_FILE_SUPPORT, LIBS="$LIBS -lpng", foo=bar, [#include <minigui/common.h>])
AC_CHECK_DECLS(_PNG_FILE_SUPPORT, LIBS="$LIBS -lpthread", foo=bar, [#include <minigui/common.h>])
AC_CHECK_DECLS(_JPG_FILE_SUPPORT, LIBS="$LIBS -ljpeg", foo=bar, [#include <minigui/common.h>])
AC_CHECK_DECLS(_TYPE1_SUPPORT, LIBS="$LIBS -lt1", foo=bar, [#include <minigui/common.h>])
AC_CHECK_DECLS(_TTF_SUPPORT, LIBS="$LIBS -lttf", foo=bar, [#include <minigui/common.h>])
AM_CONDITIONAL(NOUNIX, test "x$unix" = "xno")
AM_CONDITIONAL(MGRM_THREADS, test "x$threads_version" = "xyes")
AM_CONDITIONAL(MGRM_PROCESSES, test "x$procs_version" = "xyes")
AM_CONDITIONAL(MGRM_STANDALONE, test "x$standalone_version" = "xyes")
AM_CONDITIONAL(USE_NEWGAL, test "x$use_newgal" = "xyes")
AC_OUTPUT(
Makefile
include/Makefile
lib/Makefile
src/Makefile
test/Makefile
res/Makefile
res/calc/Makefile
res/calendar/Makefile
res/captionbar/Makefile
res/desktop/Makefile
res/ebook/Makefile
res/housekeeper/Makefile
res/menu/Makefile
res/music/Makefile
res/num_pic/Makefile
res/picture/Makefile
res/public/Makefile
res/recorder/Makefile
res/setup/Makefile
res/stopwatch/Makefile
res/video/Makefile
res/worm/Makefile
)
if test "x$have_libminigui" != "xyes"; then
AC_MSG_WARN([
MiniGUI is not properly installed on the system. You need
MiniGUI Ver 2.0.0 or later for building this package.
Please configure and install MiniGUI Ver 2.0.0 first.
])
fi
include_HEADERS = pmp.h encoder.h decoder.h text_id.h res_hash.h md5.h
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = include
DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(includedir)"
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BITMAPBK_FALSE = @BITMAPBK_FALSE@
BITMAPBK_TRUE = @BITMAPBK_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EVB_FALSE = @EVB_FALSE@
EVB_TRUE = @EVB_TRUE@
EXEEXT = @EXEEXT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MGRM_PROCESSES_FALSE = @MGRM_PROCESSES_FALSE@
MGRM_PROCESSES_TRUE = @MGRM_PROCESSES_TRUE@
MGRM_STANDALONE_FALSE = @MGRM_STANDALONE_FALSE@
MGRM_STANDALONE_TRUE = @MGRM_STANDALONE_TRUE@
MGRM_THREADS_FALSE = @MGRM_THREADS_FALSE@
MGRM_THREADS_TRUE = @MGRM_THREADS_TRUE@
NOUNIX_FALSE = @NOUNIX_FALSE@
NOUNIX_TRUE = @NOUNIX_TRUE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NEWGAL_FALSE = @USE_NEWGAL_FALSE@
USE_NEWGAL_TRUE = @USE_NEWGAL_TRUE@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
include_HEADERS = pmp.h encoder.h decoder.h text_id.h res_hash.h md5.h
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu include/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-includeHEADERS
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-includeHEADERS uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
ctags distclean distclean-generic distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \
install-includeHEADERS install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
uninstall uninstall-am uninstall-includeHEADERS \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef EVB
#include "act_decoder.h"
#else
/*
********************************************************************************
* linux213x
* actions decoder interface structure
* (c) Copyright 2002-2003, Actions Co,Ld.
* All Right Reserved
*
* File : act_decoder.h
* by : cs/fw
* Version: 1> v1.00 first version 02.24.2006
********************************************************************************
*/
#ifndef ACT_DECODER_H
#define ACT_DECODER_H
#ifdef __cplusplus
extern "C" {
#endif
/**********************decoder公用的数据结构及常量*********************/
/*******常量定义,值域0x01~~~~0x30***********/
#define PLAY 0x01
#define STOP 0x02
#define PAUSE 0x03
#define CONTINUE 0x04
#define SEEK 0x05
#define FAST_FORWARD 0x06
#define FAST_BACKWARD 0x07
#define CANCEL_FF 0x08
#define CANCEL_FB 0x09
#define SET_A 0x0a
#define SET_B 0x0b
#define CLEAR_AB 0x0c
#define SET_AB_COUNT 0x0d //设置ab复读的次数
#define SET_AB_WAIT_TIME 0x0e //设置到达b点时需要等待的状态
#define ALTER_PLAY_SPEED 0x0f
#define NEXT_FILE 0x10
#define PRE_FILE 0x11
#define MARK_A_TAG 0x12
#define GET_MEDIA_INFO 0x13
#define GET_STATUS 0x14
//#define GET_ERROR_NO 0x13 //获取错误id号,当检测到中间件出错时,可发送此命令获取错误代号
#define SET_INDEX 0x15 //设置列表播放的index
#define SET_FILE 0x16 //在指定单曲播放时,为文件名(包含路径);
#define SET_LOOP_MODE 0x17
#define SET_FFB_STEP 0x18
#define SET_VOLUME 0x19
#define GET_VOLUME 0x20
/******************数据结构定义******************/
typedef enum{
SEQUENCE, //顺序
REPEAT_ONE, //重复播放一首
REPEAT_ALL, //列表重复播放
RANDOM, //随机选择播放
}loop_mode_t;
typedef struct{
unsigned int time;
char buf[64];
}tag_info_t; //标签信息
typedef enum{
PLAYING,
PAUSED,
STOPPED,
ERROR,
SEARCHING //在radio播放时用到此状态
}status_constant_t; //当前decoder状态信息的常量
typedef enum{
NORMAL_PLAY, //正常播放
AB_RESTORE_PLAY, //恢复上一次的AB播放状态
BPT_RESTORE_PLAY, //从上一次退出点开始播放
TAG_PLAY //TAG播放
}play_mode_t; //启动时的播放模式
typedef struct{
play_mode_t mode; //当前的播放模式
unsigned int param; //不同播放模式下的输入参数
}play_param_t; //不同播放模式时的输入参数
/*******************与video decoder相关的常量、数据结构和函数接口*******************/
/*************常量定义,值域:0x31~~~~~0x50*****/
#define SET_DISPLAY_AREA 0x31 //设置当前video的显示区域
#define SET_TRACK_MODE 0x32 //双语功能选择
#define YUV_CHANNEL_OFF 0x33 //关掉当前的视频输出
#define YUV_CHANNEL_ON 0x34 //开启当前的视频输出
#define FLUSH_SCREEN 0x35 //将当前的输出帧重新刷屏
#define GET_NEW_FRAME 0x36 //将当前的输出帧重新刷屏
#define VIDEO_TV_OUT 0x37 //将video电视输出
/*John Yi 2006.10.10*/
/*For ap gui demand, param is unsigned char* pointing to a buffer big enough
to hold the rgb raw data*/
#define PRINT_SCREEN 0x38 //catch current display and save it as rgb raw
/************数据结构定义*********************/
typedef struct{
/*文件名*/
char filepath[256];
char filename[256];
unsigned int file_index;
/*媒体信息*/
unsigned int media_type;
unsigned int total_time;
unsigned int bitrate;
unsigned int sample_rate; //音频有关信息
unsigned int bpp;
unsigned int channels;
unsigned int frame_rate; //视频有关信息
unsigned int width;
unsigned int height;
unsigned int drm_flag;
/*id3信息*/
char id3_info[20];
}video_file_info_t;
typedef struct{
unsigned int xpos;
unsigned int ypos;
unsigned int width;
unsigned int height;
}display_area_t;
typedef enum{
DOUBLE_TRACK,
LEFT_TRACK,
RIGHT_TRACK
}select_track_t;
typedef struct{
int file_index; //当前播放歌曲的索引
int cur_time; //歌曲当前的播放时间
status_constant_t status; //codec当前的状态
unsigned int ab_flag;
int err_no; //当前的出错状态
}video_status_t; //decoder当前需要返回给ap的状态信息
/**********函数接口定义***********************/
void *videoDecOpen(void *param);
int videoDecCmd(void *handle,unsigned int cmd,unsigned int param);
int videoDecClose(void *handle,void *param);
/*******************与music player相关的常量、数据结构和函数接口*********************/
/*********常量定义,值域0x31~~~~~~0x50*******/
#define FADE_IN 0x31
#define FADE_OUT 0x32
#define SET_EQ 0x33
#define SET_ENERGY_DOOR 0x34
#define SET_ENERGY_STEP 0x35
#define GET_SINGER_PHOTO 0x36 //获取歌曲的照片用于ap的显示//
#define AUDIO_FM_OUT 0x37
/*********数据结构定义**********************/
typedef struct{
/*文件名*/
char filepath[256];
char filename[256];
unsigned int file_index;
/*媒体信息*/
unsigned int total_time;
unsigned int bitrate;
unsigned int sample_rate;
unsigned int channels;
/*其他信息*/
char drm_flag; //是否是drm歌曲
char photo_flag; //是否含有歌手的照片信息
char license_info[50]; //歌曲的lincense信息
/*id3信息*/
void *id3_info;
}music_file_info_t;
typedef enum{
NORMAL,
ROCK,
POP,
CLASSIC,
SOFT,
JAZZ,
DBB,
SRS,
WOW,
TRUE_BASS,
USR_MODE
}eq_mode_t; //当前支持的eq模式
typedef struct{
char eq_mode;
char param[3]; //在用户模式时用户需要设置 的参数
}eq_set_t; //设置eq时的参数
typedef struct{
unsigned fade_out_flag:1; //当前是否在淡出状态
unsigned silence_flag:1; //当前是静音状态;
unsigned AB_play_flag:1; //当前处于ab播放状态
unsigned reach_B_flag:1; //当前已到达B点
unsigned return_A_flag:1; //在B处的等待时间已到,要返回到A点
}status_flag_t; //这些状态flag均是只读数据
typedef struct{
int file_index; //当前播放歌曲的索引
int cur_time; //歌曲当前的播放时间
status_constant_t status; //codec当前的状态
unsigned int err_no;
status_flag_t flag; //ap会用到的状态flag
unsigned int cur_bps; //当前歌曲的比特率信息
unsigned int cur_power; //当前输出的能量值
}music_status_t; //decoder当前需要返回给ap的状态信息,这些状态flag均是只读数据
/*函数接口*/
void *audioDecOpen(void *param);
int audioDecCmd(void *handle,unsigned int cmd,unsigned int param);
int audioDecClose(void *handle,void *param);
/***********************与img decoder相关的常量、数据结构和函数接口定义**************/
/******常量定义,值域0x31~~~~~0x50********/
#define IMG_DECODE 0x31
#define RESIZE 0x32
#define MOVE 0x33
#define ZOOM 0x34
#define ROTATE 0x35
#define MIRROR 0x36
#define SAVE 0x37
#define SET_CONTRAST 0x39
#define SET_BACKGROUND 0x3a
#define GET_ERR 0x3b
#define IMG_TV_OUT 0x3c
#define IMG_PRINT_OUT 0x3d
#define YUV 0x3e
#define RGB 0x3f
/*****数据结构定义************************/
typedef enum{
ZOOMIN, //放大
ZOOMOUT //缩小
}image_zoom_t; //图像缩放模式:放大or缩小
typedef enum{
LEFT90, //顺时针旋转90度
RIGHT90, //逆时针旋转90度
R180 //旋转180度
}image_rotation_t; //旋转方向
typedef enum{
UP_DOWN, //上下颠倒
LEFT_RIGHT //左右颠倒(镜像)
}image_mirror_t;
typedef enum{
UP,
DOWN,
LEFT,
RIGHT
}image_move_direction_t; //移动图片
typedef struct{
unsigned int year;
unsigned int month;
unsigned int day;
}img_date_t;
#define MAX_ASCII_LEN 100
typedef struct {
char make[MAX_ASCII_LEN]; // manufactory name
char model[MAX_ASCII_LEN]; // equitment mode
char software[MAX_ASCII_LEN]; // software note
char datetime[20]; // phototaking date
char artist[MAX_ASCII_LEN]; // photo taker
char copyright[MAX_ASCII_LEN]; // mannufactory copyright note
char imageDescription[MAX_ASCII_LEN]; // photo description
char makernote[MAX_ASCII_LEN]; // maker noter
char exposuretime[MAX_ASCII_LEN]; // exposure time
char F_number[MAX_ASCII_LEN]; // aperture
char exposureProg[MAX_ASCII_LEN]; // exposure Programme
short iso; // iso
char componentConfig[5]; // components description
char shutterSpeed[MAX_ASCII_LEN]; // shutter speed
char meterModel[MAX_ASCII_LEN]; // meter model
char lightSource[MAX_ASCII_LEN];
char flash[MAX_ASCII_LEN];
char focalLength[MAX_ASCII_LEN] ;
long width; // image width
long height; // image height
char exifVersion[4]; // exif version
char GPSVersion[4]; // GPS version
char GPSLatitudeRef[4]; // GPS latitude reference. 'N' for North, 's' for South
char GPSLatitude[MAX_ASCII_LEN];
char GPSLongtitudeRef[4]; // GPS longtitude reference. 'E' for East, 'W' for West
char GPSLongtitude[MAX_ASCII_LEN];
} exif_info_t;
typedef struct{
unsigned int file_index;
char *file_name;
unsigned int file_len;
unsigned int width;
unsigned int height;
img_date_t date;
exif_info_t *exif;
}img_file_info_t;
typedef struct{
unsigned int bpp;
unsigned int formate;
unsigned int rect_width; //要求解码输出的图片的大小
unsigned int rect_height;
unsigned int img_width; //解码输出图片的实际大小
unsigned int img_height;
unsigned char *buf; //输出图片的buffer地址
unsigned int len; //buffer地址的长度
unsigned int time_stamp;
}img_info_t;
/*******函数接口定义***************************/
void *imageDecOpen(void *param);
int imageDecCmd(void *handle,unsigned int cmd,unsigned int param);
int imageDecClose(void *handle,void *param);
/***********************与radio相关的常量、数据结构和函数接口定义**************/
/******常量定义,值域0x31~~~~~0x50********/
#define SET_RADIO_MODE 0x31 //设置电台频段模式
#define SET_RADIO_FREQ 0x32 //设置播放频率
#define SET_RADIO_INTENSITY 0x33 //设置电台的强度
#define GET_RADIO_INFO 0X34 //获取当前radio的一些状态信息
#define SEARCH 0x35 //搜索下一个电台频率
/*John Yi & Hou 2006.10.11*/
/* get radio's signal intensity, we can recognise whether there is a
radio station by it's value. */
#define GET_RADIO_INTENSITY 0x800
/* set radio's info, param is type of (radio_info_t *) */
#define SET_RADIO_INFO 0x801
typedef enum{
US = 0,
JAPAN
}radio_mode_t;
typedef struct{
status_constant_t status; //当前radio的状态
unsigned int freq; //当前正在播放的电台频率
unsigned int search_step; //当前电台的搜索步长
unsigned int stereo_status; //当前播放的立体声信息
unsigned int cur_mode; //当前电台的频段模式
unsigned int cur_volume; //当前的音量值
unsigned int intensity; //当前电台的强度
}radio_info_t;
/*******函数接口定义***************************/
void *radioOpen(void *param);
int radioCmd(void *handle,unsigned int cmd,unsigned int param);
int radioClose(void *handle,void *param);
/***********************end of the file****************************************/
#ifdef __cplusplus
}
#endif
#endif
#endif
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef EVB
#include "act_encoder.h"
#else
/*
********************************************************************************
* linux213x
* actions encoder interface structure
* (c) Copyright 2002-2003, Actions Co,Ld.
* All Right Reserved
*
* File : act_encoder.h
* by : cs/fw
* Version: 1> v1.00 first version 02.24.2006
********************************************************************************
*/
#ifndef ACT_ENCODER_H
#define ACT_ENCODER_H
#ifdef __cplusplus
extern "C" {
#endif
/******************************公用的数据结构及常量***************************************/
/************常量定义,值域0x00~~~~0x30*************/
#define SET_DISPLAY_AREA 0x01 //设置取景时的显示区域
#define SET_CONTRAST 0x02 //设置对比度
#define SET_WHITE_BALANCE 0x03 //设置白平衡
#define SET_SPECIAL_EFFECT 0x04 //设置特殊效果
#define SET_EXPOSURE_MODE 0x05 //设置曝光模式
#define SET_RESOLUTION 0x06 //设置dc或dv的分辨率
#define SET_SAVE_PATH 0x07 //设置保存路径
#define SET_FILE_FMT 0x08 //设置当前的编码格式,为字符串,如"mp3"
#define SET_AUDIO_FMT 0x08 //设置音频格式
#define SET_VIDEO_FMT 0x08 //设置视频格式
#define SET_AUDIO_PARAM 0x09 //设置音频格式
#define SET_VIDEO_PARAM 0x0a //设置视频录音的格式
#define SET_AUDIO_SOURCE 0x0b //设置audio源
#define SET_VIDEO_SOURCE 0x0c //设置video源
#define SET_VOLUME 0x0d //设置录音的音量
#define ZOOM 0x0e //数码变焦,此命令的参数为变焦的级别
#define MARK_A_TAG 0x0f //给当前的录像或录音打上tag
#define GET_STATUS 0x10 //获取当前的状态
#define GET_DISK_INFO 0x11 //获取磁盘信息,让用户知道当前磁盘可录相的时间或可照得照片数
#define START_CAPTURE 0x12 //开始取景
#define STOP_CAPTURE 0x13 //停止取景
#define YUV_CHANNEL_ON 0x14 //开启yuv通道
#define YUV_CHANNEL_OFF 0x15 //关闭yuv通道
#define START_MONITOR 0x16 //开始录音监听
#define STOP_MONITOR 0x17 //停止监听
/***********数据结构定义*************************/
typedef struct{
unsigned int xpos;
unsigned int ypos;
unsigned int width;
unsigned int height;
}display_area_t; //设置取景显示位置时的参数
typedef enum{
AUTO_BALANCE,
INDOOR_BALANCE,
OUTDOOR_BALANCE,
FLUORE_BALANCE
}white_balance_t; //白平衡设置参数
typedef enum{
NONE_SPECIAL,
WHITE_AND_BLACK,
BROWN,
SOLARIZE
}special_effect_t; //特殊效果设置参数
typedef enum{
AUTO_EXPOSURE,
INDOOR_EXPOSURE
}exposure_mode_t; //曝光模式设置参数
typedef struct{
unsigned int space_left; //磁盘剩余空间
unsigned int info; //对于录像与录音此参数为剩余可录时间,对于dc此参数为可照得照片
}disk_info_t; //磁盘信息参数
typedef struct{
unsigned int year;
unsigned int month;
unsigned int day;
}date_t; //录音的日期
typedef enum{
CAPTURING,
MONITORING,
RECORDING,
STOPPED,
PAUSED,
ERROR
}status_constant_t; //当前状态常量定义
typedef enum{
STEREO_AUDIO,
JOINT_STEREO_AUDIO,
DUAL_CHANNEL_AUDIO,
MONO_AUDIO
}encode_mode_t;
typedef struct{
char bpp; //音频采样点的精度,如8bit,16bit,24bit//
char channel; //音频采样的通道数如:1 单声道;2 双声道
unsigned int sample_rate; //采样频率如8000,16000,44100等
unsigned int bitrate; //编码的码率
unsigned int encode_mode; //音频编码的模式
}audio_param_t;
typedef struct{
unsigned mic:1;
unsigned fm:1;
unsigned line_in:1;
unsigned iis:1;
unsigned spdif:1;
unsigned tv:1;
unsigned reserved:26;
}audio_resource_t; //音源输入选择,当有多路bit同时为1时是混合输入
/**************************dv相关的常量、数据结构和函数接口********************************/
/***********常量定义,值域0x31~~~~0x50***********/
#define VIDEO_TIME_ON 0x31 //在录像时需要输出当前时间
#define VIDEO_TIME_OFF 0x32 //在录像时不需要输出当前时间
#define START_VIDEO 0x34 //开始录像,此时需要传入当前需要保存的文件名;
#define STOP_VIDEO 0x35 //停止录像
#define PAUSE_VIDEO 0x36 //暂停录像
/***********数据结构定义***********************/
typedef enum{
DV160X120,
DV320X240
}dv_resolution_t; //dv时的分辨率设置参数
typedef struct{
unsigned int time;
status_constant_t status;
unsigned int err_no;
}dv_status_t; //当前dv时的状态
/**********函数接口定义***********************/
void *videoEncOpen(void *param);
int videoEncCmd(void *handle,unsigned int cmd,unsigned int param);
int videoEncClose(void *handle,void *param);
/*************************dc相关的常量、数据结构和函数接口**********************************/
/**********常量定义,值域0x31~~~~0x50**********/
#define SET_EXIF_INFO 0x31 //设置图片的exif信息,如:制造商等
#define PHOTO_DATE_ON 0x32 //给照片打上日期
#define PHOTO_DATE_OFF 0x33 //不需要给照片打上日期
#define SNAPSHOT 0x34 //拍照,此时需要传入当前需要保存的文件名(文件名+扩展名)
/**********数据结构定义**********************/
typedef enum{
DC320X240,
DC640X480,
DC1024X768,
DC1280X960,
DC1600X1200,
DC2048X1536
}dc_resolution_t; //dc时的分辨率设置参数
typedef struct{
char manufacture[10];
char model[10];
}exif_info_t; //exif设置信息
/**********函数接口定义***********************/
void *imageEncOpen(void *param);
int imageEncCmd(void *handle,unsigned int cmd,unsigned int param);
int imageEncClose(void *handle,void *param);
/*************************record相关的常量、数据结构和函数接口**********************************/
/**********常量定义,值域0x31~~0x50***********/
#define SET_VOR_TIME 0x31 //静音检测时的参数,确定某段时间为静音时静音至少保持的时间
#define SET_VOR_GAIN 0x32 //静音检测时的参数
#define SET_RECORD_TIME 0x33 //设置当前需要录音的时间,时间到时自动关闭
#define SET_ENERGY_LEVEL 0x34 //设置需要显示的能量总级别数
#define SILENCE_DECTECT_ON 0x35 //打开静音检测的功能;返回的静音状态可作自动分区或自动暂停录音功能
#define SILENCE_DECTECT_OFF 0x36 //关闭静音检测的功能
#define START_RECORDING 0x37 //开始录音
#define STOP_RECORDING 0x38 //停止录音
#define PAUSE_RECORDING 0x39 //暂停录音
/**********数据结构定义**********************/
typedef struct{
unsigned int time; //当前的录音时间
status_constant_t status; //当前codec的状态
unsigned char energy_level; //输出当前实时能量级别
unsigned char silence_flag; //当前是否是静音,在静音检测功能开启时有效
unsigned int err_no; //在出错状态时返回的错误号
}record_status_t; //当前dv时的状态
typedef struct{
unsigned int time;
char buf[64];
}tag_info_t; //标签信息
/**********函数接口定义***********************/
void *audioEncOpen(void *param);
int audioEncCmd(void *handle,unsigned int cmd,unsigned int param);
int audioEncClose(void *handle,void *param);
/*****************************end of the file************************************************/
#ifdef __cplusplus
}
#endif
#endif
#endif
/*
* md5.h - header file for ../lib/md5c.c
*
* Copyright (C) 2007 Feynman Software, all rights reserved.
*
* Use of this source package is subject to specific license terms
* from Beijing Feynman Software Technology Co., Ltd.
*
* URL: http://www.minigui.com
*
* Current maintainer: Liu Peng
*/
#ifndef _MD5_H
#define _MD5_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* POINTER defines a generic pointer type */
typedef unsigned char *POINTER;
/* UINT2 defines a two byte word */
typedef unsigned short int UINT2;
/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;
/* MD5 context. */
typedef struct {
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} MD5_CTX;
void pmp_get_md5 (const unsigned char *string, unsigned char digest[16]);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _MD5_H */
/*
** $Id$
**
** pmp.h: Data structure & interface definitions for Feynman PMP
** solution.
**
** Copyright (C) 2007 Feynman Software, all rights reserved.
**
** Use of this source package is subject to specific license terms
** from Beijing Feynman Software Technology Co., Ltd.
**
** URL: http://www.minigui.com
**
** Current maintainer: liupeng.
*/
#ifndef _PMP_H
#define _PMP_H
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include "../config.h"
#ifdef HAVE_CONFIG_H
#include "../config.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define MAINWINDOW_W 320
#define MAINWINDOW_H 240
/*----------------------menu------------------------------------------*/
#define PMP_MI_OP_DEF 0x00
#define PMP_MI_OP_PREV 0x01
#define PMP_MI_OP_NEXT 0x02
#define PMP_MI_OP_ENTER 0x03
#define PMP_MI_OP_CANCEL 0x04
#define PMP_MI_ST_NONE 0x10
#define PMP_MI_ST_UPDATED 0x11
#define PMP_MI_ST_SELECTED 0x12
#define PMP_MI_ST_UPDATED_OTHERS 0x13
#define LEN_ITEM_TEXT 60
typedef int (*CB_MENU_ITEM) (void * context, int id, int op, char *text_buff);
typedef struct _PMP_MENU_ITEM{
int id;
CB_MENU_ITEM cb_menu_item;
BOOL dirty;
} PMP_MENU_ITEM;
/*
* parent: The handle to the parent main window.
* items: The pointer to the PMP_MENU_ITEM structure array.
* context: The context will be passed to the callback function of
* every menu item.
* The return value of this function can be zero (ESCAPE key pressed) or
* the identifier of the menu item which leads to close the menu.
*/
int pmp_show_menu (HWND parent, const char* title,
PMP_MENU_ITEM *items, void *context);
/*---------------------info window--------------------------------*/
/*
* parent: The handle to the parent main window.
* info: The pointer to the text which will be showed.
*/
int pmp_show_info (HWND parent, const char* title,
const char *info, DWORD dwStyle);
/*---------------------caption bar---------------------------------*/
/*
* Create the captionbar window.
*/
void pmp_create_captionbar (HWND hosting);
/*
* Destroy the captionbar window.
*/
void pmp_destroy_captionbar (void);
/*
* show_hide: The flag to show or hide caption bar.
* - TRUE: show caption bar.
* - FALSE: hide caption bar.
*/
void pmp_show_captionbar (BOOL show_hide);
/*
* title: the pointer to the new title text.
*/
void pmp_set_captionbar_title (const char *title);
/*
* Return the pointer to current title text.
*/
const char *pmp_get_captionbar_title (void);
/*-------------------------- tooltip window ----------------------------------*/
/*
* Create the tooltip window.
*/
void pmp_create_tip (HWND hosting);
/*
* Destroy the tooltip window.
*/
void pmp_destroy_tip (void);
/*
* x: The new x coordiate of the left-top corner of the tooltip window.
* y: The new y coordiate of the left-top corner of the tooltip window.
* text: the pointer to the new string which will be displayed on
* the tooltip window
*/
void pmp_update_tip (int x, int y, const char *text);
/*
* Force to show/hide the tooltip window.
*/
void pmp_show_tip (BOOL show);
/*****************************************************************/
/*
* key: The key value to retrive .
* Return the pointer to image data according to index .
* This function will be called when the main window lost the focus.
*/
MG_RWops* pmp_hash_retrive_ds (const char* path);
/*****************************************************************/
/*
* Acquires the data source object according to the image file name.
* file: The name of resource file such as picture etc.
* Return a MG_RWops object, NULL indicates error.
*/
MG_RWops* pmp_image_res_acquire_ds (const char *file);
/*
* Releases the data source object according to the image file name.
* file: The name of resource file such as picture etc.
* Return a MG_RWops object, NULL indicates error.
*/
void pmp_image_res_release_ds (const char *file, MG_RWops* ds);
/*
* Loads a BITMAP object according to the image file name.
* file: The name of resource file such as picture etc.
* Return a BITMAP object, NULL indicates error.
*/
BITMAP* pmp_image_res_acquire_bitmap (const char *file);
/*
* Releases the BITMAP object according to the image file name.
* file: The name of resource file such as picture etc.
* Return a BITMAP object, NULL indicates error.
*/
void pmp_image_res_release_bitmap (const char *file, BITMAP* bmp);
/*
* A helper to link path and filename to get full path.
* full_path: the buffer to store the full path.
* path: The buffer to store path.
* name: The buffer to store file name.
* Return a pointer to the full path.
*/
char* pmp_get_full_path (char *full_path, const char *path,
const char* name);
/*
* A helper to return the suffix of a file name.
* file: The name of resource file such as picture etc.
* Return a BITMAP object, NULL indicates error.
*/
const char* pmp_get_file_suffix (const char *file);
#define LEN_RES_TOP_DIR 126
#define LEN_RES_FILE_NAME 126
int pmp_set_res_top_dir (const char *top_dir);
/*--------------------- Internationalization ---------------------------------*/
#define _(id) pmp_get_string_from_id (id)
#define N_(String) String
BOOL pmp_select_text_domain (const char *text_domain);
const char * pmp_get_string_from_id (int id);
/*---------------------The default PMP window proc ---------------------------*/
#ifdef BITMAPBK
void pmp_set_def_bmpbg(BITMAP* bmpbg);
#endif
void pmp_draw_background (HWND hwnd, HDC hdc, const RECT* clip,
const char* bg_img_file);
int pmp_def_wnd_proc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam);
/*---------------------SelectFileWindow---------------------------------------*/
#ifndef PMP_CFG_PATH
#define PMP_CFG_PATH "/media/cfg/"
#endif
#ifndef PMP_MEDIA_TOP_DIR
#define PMP_MEDIA_TOP_DIR "/media/"
#endif
#define PMP_MEDIA_NAME_MUSIC "music/"
#define PMP_MEDIA_NAME_VIDEO "video/"
#define PMP_MEDIA_NAME_EBOOK "ebook/"
#define PMP_MEDIA_NAME_PICTURE "picture/"
#define PMP_MEDIA_NAME_RECORDER "recorder/"
#define PMP_BROWSER_MODE_LIST 0x00000040
#define PMP_BROWSER_MODE_THUMBNAIL 0x00000041
#define PMP_BROWSER_MODE_MULTIPLE 0x00000100
#define PMP_BROWSER_MODE_DIR 0x00001000
typedef BOOL (*PMP_CB_MEDIA_FILTER) (const char*path,
const char*file_name);
typedef const BITMAP* (*PMP_CB_MEDIA_ICON) (const char*path,
const char* file_name, DWORD mode);
typedef struct _PMP_MEDIA_FILE_LIST {
char dir [PATH_MAX+1];
int nr_files;
/* Pointer to buffer which stores the name of selected files .
* If multiple files are selected, they are seperated by '\0'
* such as "a.mp3\0b.ogg\0c.wav".
*/
char* file_names;
} PMP_MEDIA_FILE_LIST;
typedef struct _PMP_DIR_SHOW_INFO {
const char* dir_name;
const char* show_text;
const BITMAP* icon;
} PMP_DIR_SHOW_INFO;
/*
* parent: The handle to the parent main window.
* root_dir: The root directory of the media file tree.
* initial_dir: The initial directory relative to the root directory.
* cb_media_filter: The filter to determine whether to list a specified
* media file.
* cb_media_icon: The filter to return the icon bitmap object of a specified
* media file.
* dir_show_info: A structure array to define the display text and icon for
* different directory name.
* mode: The browsing mode and selectiong mode, can be one of the following
* value:
* - PMP_FILE_BROWSE_MODE_LIST
* - PMP_FILE_BROWSE_MODE_THUMBNAIL
* and OR'd with:
* - PMP_BROWSER_MODE_MULTIPLE
*
* Return: A PMP_MEDIA_FILE_LIST structure which includes all selected
* media files.
* Note that the caller should take the full responsibility for releasing
* the memory used by the structure.
*/
PMP_MEDIA_FILE_LIST * pmp_select_media_files (HWND parent,
const char *root_dir, const char* initial_dir,
PMP_CB_MEDIA_FILTER cb_media_filter,
PMP_CB_MEDIA_ICON cb_media_icon,
PMP_DIR_SHOW_INFO* dir_show_info, DWORD mode);
#define PMP_RELEASE_MEDIA_FILE_LIST(list) \
do {free (list->file_names); free (list); list = NULL; } while(0)
/*
* A helper to display the LED-style digits.
*
* This function returns zero on success, non-zero on failure.
*/
int pmp_display_led_digits (HDC hdc, int x, int y, const char* digits);
/* Indices of the applications */
#define PMP_APP_DESKTOP 0
#define PMP_APP_MUSIC 1
#define PMP_APP_VIDEO 2
#define PMP_APP_PICTUE 3
#define PMP_APP_RECORDER 4
#define PMP_APP_RADIO 5
#define PMP_APP_EBOOK 6
#define PMP_APP_CALENDAR 7
#define PMP_APP_CALCULATOR 8
#define PMP_APP_STOPWATCH 9
#define PMP_APP_SETUP 10
#define PMP_APP_RUSSIA 11
#define PMP_APP_WORM 12
#define PMP_APP_HOUSEKEEPER 13
#define PMP_APP_NUMBER 14
/*
* Notifies to the desktop window that the application opened or closed.
*
* These two functions are defined in src/main.c file.
*/
void pmp_app_notify_opened (int app_idx, HWND hwnd);
void pmp_app_notify_closed (int app_idx);
#if defined(__GNUC__)
#ifdef _DEBUG_MSG
# define _MY_PRINTF(fmt...) fprintf (stderr, fmt)
#else
# define _MY_PRINTF(fmt...)
#endif
#else /* __GNUC__ */
static inline void _MY_PRINTF(const char* fmt, ...)
{
#ifdef _DEBUG_MSG
va_list ap;
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
va_end(ap);
#endif
}
#endif /* __GNUC__ */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _PMP_H */
/*
** $Id$
**
** res_hash.h: Data structure & interface declaration for incore resource.
**
** Copyright (C) 2007 Feynman Software, all rights reserved.
**
** Use of this source package is subject to specific license terms
** from Beijing Feynman Software Technology Co., Ltd.
**
** URL: http://www.minigui.com
**
** Current maintainer: liupeng.
*/
#ifndef _RES_HASH_H
#define _RES_HASH_H
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define MAX_DUP_KEYS 10
#define NR_HASH_ENTRIES 20
/*
* An element of res hash table.
*
*/
typedef struct _PMP_RES_HASH_UNIT
{
const char* key;
const unsigned char* data;
unsigned int data_size;
BITMAP *bmp;
int ref_count;
} PMP_RES_HASH_UNIT;
PMP_RES_HASH_UNIT* pmp_res_hash_retrive_unit (const char* path);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _RES_HASH_H */
#ifndef _TEXT_ID_H_
#define _TEXT_ID_H_
typedef enum
{
IDS_PMP_DOTDOT = 1000,
IDS_PMP_DESKTOP_CAPTION,
IDS_PMP_TIP_MUSIC,
IDS_PMP_TIP_VIDEO,
IDS_PMP_TIP_PICTURE,
IDS_PMP_TIP_RECORDER,
IDS_PMP_TIP_RADIO,
IDS_PMP_TIP_EBOOK,
IDS_PMP_TIP_CALENDAR,
IDS_PMP_TIP_CALC,
IDS_PMP_TIP_STOPWATCH,
IDS_PMP_TIP_SETUP,
IDS_PMP_TIP_RUSSIA,
IDS_PMP_TIP_WORM,
IDS_PMP_TIP_HOUSEKEEPER,
/*music msgid*/
IDS_PMP_MUSIC_VOLUME,
IDS_PMP_MUSIC_PLAYTYPE,
IDS_PMP_MUSIC_LOOPTYPE,
IDS_PMP_MUSIC_OPERATOR,
IDS_PMP_MUSIC_SPEED,
IDS_PMP_MUSIC_FADE,
IDS_PMP_MUSIC_ABWAITTIME,
IDS_PMP_MUSIC_ABCOUNT,
IDS_PMP_MUSIC_EQMODE,
IDS_PMP_MUSIC_EQUSR1,
IDS_PMP_MUSIC_EQUSR2,
IDS_PMP_MUSIC_EQUSR3,
IDS_PMP_MUSIC_LIST,
IDS_PMP_MUSIC_DIR,
IDS_PMP_MUSIC_PREVIEW,
IDS_PMP_MUSIC_ONLYONE,
IDS_PMP_MUSIC_RANDOM,
IDS_PMP_MUSIC_INORDER,
IDS_PMP_MUSIC_ALL,
IDS_PMP_MUSIC_ABPLAY,
IDS_PMP_MUSIC_NORMAL,
IDS_PMP_MUSIC_ROCK,
IDS_PMP_MUSIC_POP,
IDS_PMP_MUSIC_CLASSIC,
IDS_PMP_MUSIC_SOFT,
IDS_PMP_MUSIC_JAZZ,
IDS_PMP_MUSIC_DBB,
IDS_PMP_MUSIC_SRS,
IDS_PMP_MUSIC_WOW,
IDS_PMP_MUSIC_BASS,
IDS_PMP_MUSIC_USER,
IDS_PMP_MUSIC_OFF,
IDS_PMP_MUSIC_ON,
IDS_PMP_MUSIC_DSPERROR,
IDS_PMP_MUSIC_TITLE,
IDS_PMP_MUSIC_SONGINFO,
IDS_PMP_MUSIC_MENUTITLE,
IDS_PMP_MUSIC_DIRNAME,
/*video msg*/
IDS_PMP_VIDEO_CAPTION,
IDS_PMP_VIDEO_VOLUME,
IDS_PMP_VIDEO_LOOP,
IDS_PMP_VIDEO_SKIP,
IDS_PMP_VIDEO_PROG,
IDS_PMP_VIDEO_FILE_INFO,
IDS_PMP_VIDEO_SEQUENCE,
IDS_PMP_VIDEO_REAPEAT_ONE,
IDS_PMP_VIDEO_REAPEAT_ALL,
IDS_PMP_VIDEO_RANDOM,
IDS_PMP_VIDEO_ON,
IDS_PMP_VIDEO_OFF,
IDS_PMP_VIDEO_INFO,
IDS_PMP_VIDEO_OPTION,
IDS_PMP_VIDEO_INFO_CAPT,
IDS_PMP_VIDEO_DIR_ALIAS,
/*picture msgid*/
IDS_PMP_PIC_CAPTION,
IDS_PMP_PIC_ZOOM,
IDS_PMP_PIC_MOVE,
IDS_PMP_PIC_ROTATE,
IDS_PMP_PIC_INFO,
IDS_PMP_PIC_MUSIC,
IDS_PMP_PIC_MATCH,
IDS_PMP_PIC_SLIDE,
IDS_PMP_PIC_OPTION,
IDS_PMP_PIC_INFOCAPT,
IDS_PMP_PIC_DIR_ALIAS,
/*recorder msgid*/
IDS_PMP_RECORDER_TITLE,
IDS_PMP_RECORDER_MENU_BPP,
IDS_PMP_RECORDER_MENU_BPS,
IDS_PMP_RECORDER_MENU_CHANNEL,
IDS_PMP_RECORDER_MENU_SAMPLE_RATE,
IDS_PMP_RECORDER_MENU_ENCODE_MODE,
IDS_PMP_RECORDER_MENU_FILE_FORMA,
IDS_PMP_RECORDER_MENU_SOUND_SOURCE,
IDS_PMP_RECORDER_MENU_RECORDER_GAIN,
IDS_PMP_RECORDER_MENU_SILENCE_DETECT,
IDS_PMP_RECORDER_MENU_VOR_TIME,
IDS_PMP_RECORDER_MENU_RECORD_VOLUME,
IDS_PMP_RECORDER_MENU_LISTEN,
IDS_PMP_RECORDER_MENU_LISTEN_VOLUME,
IDS_PMP_RECORDER_MENU_LAST_TIME,
IDS_PMP_RECORDER_MENU_AUDIO_PARAM,
IDS_PMP_RECORDER_ON,
IDS_PMP_RECORDER_OFF,
IDS_PMP_RECORDER_SINGLE,
IDS_PMP_RECORDER_DOUBLE,
IDS_PMP_RECORDER_STEREO,
IDS_PMP_RECORDER_JOINT_STEREO,
IDS_PMP_RECORDER_DUAL_CHANNLE,
IDS_PMP_RECORDER_MONO,
IDS_PMP_RECORDER_START_RECORDER,
IDS_PMP_RECORDER_STOP_RECORDER,
IDS_PMP_RECORDER_PAUSED_RECORDER,
IDS_PMP_RECORDER_PRESENT_STATUS,
IDS_PMP_RECORDER_PRESENT_TIME,
IDS_PMP_RECORDER_PRESENT_FORMA,
IDS_PMP_RECORDER_PRESENT_SOURCE,
IDS_PMP_RECORDER_PRESENT_BPS,
IDS_PMP_RECORDER_REST_TIME,
IDS_PMP_RECORDER_WARNING,
IDS_PMP_RECORDER_WARNING_TEXT,
IDS_PMP_RECORDER_DIRNAME,
/*radio msgid*/
IDS_PMP_RADIO_CAPTION,
IDS_PMP_RADIO_MODE,
IDS_PMP_RADIO_GAMSEAR,
IDS_PMP_RADIO_FINETURN,
IDS_PMP_RADIO_GAMLIST,
IDS_PMP_RADIO_SAVEGAM,
IDS_PMP_RADIO_DELGAM,
IDS_PMP_RADIO_RECORD,
IDS_PMP_RADIO_MODE_USA,
IDS_PMP_RADIO_MODE_JAP,
IDS_PMP_RADIO_OPTION,
/*ebook msgid*/
IDS_PMP_EBOOK_TITLE,
IDS_PMP_EBOOK_OFF,
IDS_PMP_EBOOK_ON,
IDS_PMP_EBOOK_AUTOPAGE,
IDS_PMP_EBOOK_PAGETIME,
IDS_PMP_EBOOK_MARKTAG,
IDS_PMP_EBOOK_OPTION,
IDS_PMP_EBOOK_ERROR,
IDS_PMP_EBOOK_ERRORINFO,
IDS_PMP_EBOOK_DIRNAME,
/*calendar msgid*/
IDS_PMP_CALENDAR_TITLE,
IDS_PMP_CALENDAR_JAN,
IDS_PMP_CALENDAR_FEB,
IDS_PMP_CALENDAR_MAR,
IDS_PMP_CALENDAR_APR,
IDS_PMP_CALENDAR_MAY,
IDS_PMP_CALENDAR_JUNE,
IDS_PMP_CALENDAR_JULY,
IDS_PMP_CALENDAR_AUG,
IDS_PMP_CALENDAR_SEP,
IDS_PMP_CALENDAR_OCT,
IDS_PMP_CALENDAR_NOV,
IDS_PMP_CALENDAR_DEC,
IDS_PMP_CALENDAR_SUN,
IDS_PMP_CALENDAR_MON,
IDS_PMP_CALENDAR_TUE,
IDS_PMP_CALENDAR_WED,
IDS_PMP_CALENDAR_THU,
IDS_PMP_CALENDAR_FRI,
IDS_PMP_CALENDAR_SAT,
/*calc msgid*/
IDS_PMP_CALC_TITLE,
/*stopwatch msgid*/
IDS_PMP_STOPWATCH_TITLE,
/*setup msgid*/
IDS_PMP_SETUP_KEYSOUND,
IDS_PMP_SETUP_BKLIGHTTIME,
IDS_PMP_SETUP_OFFTIME,
IDS_PMP_SETUP_LANGUAGE,
IDS_PMP_SETUP_DATE,
IDS_PMP_SETUP_SYSINFO,
IDS_PMP_SETUP_TITLE,
IDS_PMP_SETUP_ON,
IDS_PMP_SETUP_OFF,
IDS_PMP_SETUP_MIN,
IDS_PMP_SETUP_PMPINFO,
/*russis msgid*/
IDS_PMP_RUSSIA_TITLE,
IDS_PMP_RUSSIA_START,
IDS_PMP_RUSSIA_DEAD,
IDS_PMP_RUSSIA_PAUSED,
IDS_PMP_RUSSIA_TEXT,
IDS_PMP_RUSSIA_REFILE_SHOW,
IDS_PMP_RUSSIA_WRFILE_SHOW,
IDS_PMP_RUSSIA_SCORE_INFO,
IDS_PMP_RUSSIA_SET_LEVEL,
IDS_PMP_RUSSIA_SHOW_SCORE,
IDS_PMP_RUSSIA_LEVEL,
IDS_PMP_RUSSIA_SCORE,
/*worm msgid*/
IDS_PMP_WORM_TITLE,
IDS_PMP_WORM_TEXT,
IDS_PMP_WORM_REFILE_SHOW,
IDS_PMP_WORM_WRFILE_SHOW,
IDS_PMP_WORM_START,
IDS_PMP_WORM_SET_LEVEL,
IDS_PMP_WORM_SCORE_INFO,
IDS_PMP_WORM_SCORE,
IDS_PMP_WORM_LEVEL,
IDS_PMP_WORM_RESTART_GAME,
IDS_PMP_WORM_SHOW_SCORE,
/*housekeeper msgid*/
IDS_PMP_HOUSEKEEPER_TITLE,
IDS_PMP_HOUSEKEEPER_TEXT,
IDS_PMP_HOUSEKEEPER_REFILE_SHOW,
IDS_PMP_HOUSEKEEPER_WRFILE_SHOW,
IDS_PMP_HOUSEKEEPER_UNDO,
IDS_PMP_HOUSEKEEPER_RESTART,
IDS_PMP_HOUSEKEEPER_SET_LEVEL,
IDS_PMP_HOUSEKEEPER_SET_RANK,
IDS_PMP_HOUSEKEEPER_SCORE_INFO,
IDS_PMP_HOUSEKEEPER_DISPLAY,
IDS_PMP_HOUSEKEEPER_SHOW_SCORE,
IDS_PMP_HOUSEKEEPER_PREV,
IDS_PMP_HOUSEKEEPER_NEXT,
} MSG_ID;
typedef struct _PMP_TEXT_DOMAIN_INFO
{
char* name;
int id_base;
char** text_array ;
} PMP_TEXT_DOMAIN_INFO;
#endif
noinst_LIBRARIES = libpmp.a
libpmp_a_SOURCES = \
resource.c pmp_res_hash.c md5c.c\
menu.c infowin.c captionbar.c tip.c \
intl.c text_en.c text_zhcn.c \
new_win_callback.c \
decoder.c encoder.c \
sel_win.c sel_win_list.c sel_win_thu.c \
bmplabel.c \
../res/captionbar_bk_gif.c \
../res/captionbar_logo_png.c \
../res/captionbar_power_png.c \
../res/desktop_bk_gif.c \
../res/desktop_calc_png.c \
../res/desktop_calendar_png.c \
../res/desktop_ebook_png.c \
../res/desktop_housekeeper_png.c \
../res/desktop_music_png.c \
../res/desktop_picture_png.c \
../res/desktop_radio_png.c \
../res/desktop_recorder_png.c \
../res/desktop_russia_png.c \
../res/desktop_selected_rec_gif.c \
../res/desktop_setup_png.c \
../res/desktop_stopwatch_png.c \
../res/desktop_tip_gif.c \
../res/desktop_video_png.c \
../res/desktop_worm_png.c \
../res/menu_menu_body_gif.c \
../res/menu_menu_btm_gif.c \
../res/menu_menu_captbg_gif.c \
../res/menu_menu_mid_gif.c \
../res/menu_menu_top_gif.c \
../res/public_bg_gif.c \
../res/public_folder_png.c
libpmp_a_LIBDD= -lminigui -lmgext
INCLUDES = -I../include
This diff is collapsed.
/*
** $Id$
**
** bmplable.c: Draw label with a bitmap.
**
** Copyright (C) 2007 Feynman Software, all rights reserved.
**
** Use of this source package is subject to specific license terms
** from Beijing Feynman Software Technology Co., Ltd.
**
** URL: http://www.minigui.com
**
** Current maintainer: Liu Peng.
*/
#include <string.h>
#include "pmp.h"
typedef struct _PMP_BMPLABEL_INFO {
BITMAP* bmp_chars;
int nr_label_chars;
const char* label_chars;
} PMP_BMPLABEL_INFO;
#define MAX_COL 30
#define SetValue(Var, Value) if (Var) {*Var = Value;}
/* get bmp char's width and height, and total col and row */
static void get_char_bmp_size (const PMP_BMPLABEL_INFO *info, int *w, int *h,
int *col, int *row)
{
int _w, _h, _col, _row;
/* get total number of col and row */
if (info->nr_label_chars > MAX_COL) {
_col = MAX_COL;
_row = (info->nr_label_chars - 1) / MAX_COL + 1;
}
else {
_col = info->nr_label_chars;
_row = 1;
}
_w = info->bmp_chars->bmWidth / _col;
_h = info->bmp_chars->bmHeight/ _row;
SetValue (w, _w);
SetValue (h, _h);
SetValue (col, _col);
SetValue (row, _row);
}
static int get_char_bmp_pos (const PMP_BMPLABEL_INFO* info, char ch,
int* x, int* y, int* w, int* h)
{
int i;
int row, col;
/* searches for the ch */
for (i = 0 ; info->label_chars[i] != '\0' ; i++) {
if (info->label_chars[i] == ch)
break;
}
if (i >= info->nr_label_chars) /* not found */
return 0;
get_char_bmp_size (info, w, h, &col, &row);
*x = (i % col) * (*w);
*y = (i / col) * (*h);
return 1;
}
static void pmp_display_bmp_label (HDC hdc, const PMP_BMPLABEL_INFO *info,
int x, int y, const char* label)
{
int _x, _y, _w, _h;
const char *p;
if (!label) return;
p = label;
while (p && *p != '\0') {
if (get_char_bmp_pos (info, *p, &_x, &_y, &_w, &_h)) {
FillBoxWithBitmapPart (hdc, x, y, _w, _h, 0, 0,
info->bmp_chars, _x, _y);
x += _w;
}
p++;
}
}
#define PMP_DIGITS_IMAGE_FILE "/res/public/digits.gif"
static PMP_BMPLABEL_INFO digits_bmp_info = {NULL, 21, "0123456789ABCDEF:.-+ "};
int pmp_display_led_digits (HDC hdc, int x, int y, const char* digits)
{
if (digits_bmp_info.bmp_chars == NULL) {
digits_bmp_info.bmp_chars
= pmp_image_res_acquire_bitmap (PMP_DIGITS_IMAGE_FILE);
#if 0
digits_bmp_info.bmp_chars->bmType = BMP_TYPE_COLORKEY;
digits_bmp_info.bmp_chars->bmColorKey =
GetPixelInBitmap (digits_bmp_info.bmp_chars, 0, 0);
#endif
}
if (digits_bmp_info.bmp_chars == NULL)
return -1;
pmp_display_bmp_label (hdc, &digits_bmp_info, x, y, digits);
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment