应用程序主要分为主程序mainplay.c和Mp3play,Ftplib,Song_select,Song_list,Config_data这5个模块。mainplay.c主要用于生成主界面和下级界面、各菜单的管理、接收和传递用户的请求,并调用各模块完成相应的任务。设计中采用MilaiGUI实现界面编程。MiniGUI是一个图形用户界面支持系统,键盘和鼠标动作,产生由应用程序不断轮询的事件,这些事件发送到具有焦点的窗口,而且应用程序把这些事件交由与该窗口联系的例程来处理。<minigui/minigui.h>,<minigui/comm..h>和<minigui/window.h>是所有的MiniGUI应用程序都必须包括的头文件。MiniGUI程序的入口点为MiniGUIMain,即:
int MiniGUIMain (int argc, const char* argv[])
main函数已经在MiniGUI中定义,该函数在MiniGUI初始化工作后调用MiniGUIMain函数。所以,每个MiniGUI应用程序中无论是server端程序MGINIT,还是客户端应用程序.其入口点都为MiniGUIMain函数。其参数argc和argv与C程序main函数的参数argc和argv的含义是一样的。
Config data为配置数据管理模块,用于实现配置参数的输入和管理.同时实现配置界面的生成。FTP电控柜议库函数存放在Ftplib模块中,通过该模块可建立套接字,与服务器连接、通信,并下载文件。Song_list负责歌曲列表的管理,实现目录的切换,以完成循环播放歌曲、随机播放歌曲、单首循环播放歌曲的管理功能。
这5个模块中的核心为Mp3play模块。它包含了MP3的解码代码,通过该模块调用解码驱动程序,实现歌曲的解码播放、前进、后退、音量控制等,以完成MP3音乐文件的最终播放。
5 结语
嵌入式网络MP3播放终端集成了网络化和数字化的优点,是嵌入式系统在音频领域中的一个典型应用。从系统实现及效果看,该系统达到了设计要求,且操作简单,适合于各种层次的用户。若改用无线方式进行设计,可通过无线网络随时随地下载、收听信息,这种播放器必将更受用户的欢迎。