Design and Implementation of Embedded Media Player Based on MiniGUI

This article refers to the address: http://

Abstract : With the continuous development of embedded systems, the performance of processors continues to increase, the capacity of storage systems continues to expand, and various multimedia applications are ported to embedded systems. Multimedia components have become an indispensable part of them. Based on the comparison of several popular embedded graphics systems, this paper proposes a design and implementation method of embedded media player based on MiniGUI.
Keywords : embedded system; embedded graphics system; MiniGUI; media player

1 Introduction

With the continuous development of embedded systems, the continuous improvement of processor performance, the expansion of storage system capacity, and the transplantation of various multimedia applications into embedded systems, multimedia components have become an indispensable part of them. The development of embedded multimedia players is one of the hotspots of the current IT industry, presenting a huge market demand. At the same time, the complexity and popularity of the player function puts higher demands on the interactive interface of the product. Multimedia players are now available on many high-end mobile phones and PDAs, but the capabilities of these existing players are still to be enhanced compared to players on PCs.

Bringing modern window and graphics technology to the MiniGUI of embedded devices, it is an efficient, reliable, customizable, compact and flexible cross-operating system graphical user interface support system suitable for real-time embedded devices. It uses a Win32-like API interface and is a multi-window GUI support system. This paper first compares various embedded graphics systems, and then proposes a design and implementation method of embedded media player based on MiniGUI.

2 Comparison of various embedded graphics systems

Currently, popular graphics systems for embedded systems include MicoroWindows/NanoX, Qt/Embedded, MiniGUI, DirectFB, PicoGUI, and GTK+/FB. Most of them follow the LGPL terms, while MicoroWindows/NanoX follows the MGPL and Qt/Embedded is released under the QGPL terms.

MicroWindows/NanoX runs without any operating system or other graphics system, and it can operate directly on bare display devices. In this way, MicroWindows is very compact and easy to port to a variety of hardware and software systems. However, the free version of MicroWindows/NanoX is slow to develop and lacks comprehensive professional technical support.

Qt/Embedded is powerful, but because it is based on the C++ class library, it consumes a lot of resources compared to other GUIs and is generally used in handheld high-end information products.

GTK+/FB is similar to Qt/Embedded. Skip the X layer and communicate directly with FrameBuffer. It also has several advantages of Qt/Embedded, but the development speed is slow.

DirectFB is a graphics library that focuses on Linux FrameBuffer acceleration and attempts to build a GTK-compatible embedded GUI system.

PicoGUI is a new type of compact embedded graphics system. It has the same flexible client-side architecture as the X Windows system. PicoGUI builds fonts, bitmaps, widgets, and other applications directly on the server. Compared to X Windows, although the flexibility is reduced, the speed is significantly improved and the size is greatly reduced.

MiniGUI provides very complete graphics and user interface support for real-time embedded operating systems. MiniGUI's own portability design allows MiniGUI to provide a consistent application programming interface (API) for upper-level applications regardless of which hardware platform or operating system. MiniGUI is small, flexible and has the best support for Chinese.

3 Design and implementation

3.1 player overall structure

The player in this article uses MiniGUI as the underlying graphics library for generating user interfaces and reading and writing FrameBuffer. The overall architecture of the embedded system based on MiniGUI is shown in Figure 1.


Figure 1 The overall architecture of the embedded system based on MiniGUI

The overall structure of the player software is shown in Figure 2. It consists of three parts: a graphical user interface module, a system management main control module, and an audio/video decoder. The three-part function design is as follows:

The graphical user interface module interacts with the system management master module via an event/message mechanism.

The audio/video decoder module can be regarded as a plug-in of the system management main control module, and obtains the encoded audio/video data from the system management main control module and decodes the decoded audio/video data. System management master module.

The system management master module is responsible for the reception and parsing of network data, the work coordination of the graphical user interface module and the audio/video decoder module, and the output of audio/video data. This module is a very important module in the player software.


Figure 2 player application structure

3.2 User Graphic Interface Design

MiniGUI provides a wealth of GUI elements, such as common control classes, dialog boxes and message boxes, and menus. In addition, MiniGUI supports interface skins. Therefore, using MiniGUI, it is very convenient to design a beautiful user graphical interface.

The human-computer interaction interface of the player mainly includes two parts: playback control and file list management. The play control is used to play/pause, stop, and schedule control of the selected media file; the file list management is used to implement functions such as adding and deleting media files to the playlist and sorting the files in the list.

3.3 main functions and specific implementation

(1) Play control event callback function

Static int main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)

{ ...

If (event==SIE_BUTTON_CLICKED) {

Switch (item->id) {

Case SIID_PLAY:

...

Case SIID_PAUSE:

...

Case SIID_STOP:

...

Case SIID_CLOSE:

...

}

}

Else if (event==SIE_SLIDER_CHANGED && item->id!=SIID_VOLUME) {

...

}

Return 1;

}

(2) List event handler

Void playlist_handle_event(PEvent *event, void *data)

{

...

Switch(event->type) {

Case ButtonPress:

...

Case ButtonRelease:

...

Case KeyPress:

If(!playlist)

Return;

Mykeyevent = event->xkey;

LockDisplay(gGui->display);

Len=LookupString(&mykeyevent, kbuf, sizeof(kbuf), &mykey, NULL);

UnlockDisplay(gGui->display);

Switch (mykey) {

Case K_Down:

Case K_Next:

Browser_step_up(playlist->playlist, NULL);

Break;

Case K_Up:

Case K_Prior:

Browser_step_down(playlist->playlist, NULL);

Break;

Default:

Gui_handle_event(event, data);

Break;

}

Break;

Case MappingNotify:

LockDisplay(gGui->display);

RefreshKeyboardMapping((MappingEvent *) event);

UnlockDisplay(gGui->display);

Break;

}

}

(3) main function

Int MiniGUIMain(int argc, const char* argv[])

{

...

PlayerHandle=PlayerNew();

...

Free(buffer);

PlayerGetInfo(PlayerHandle, &fi);

...

InitCreateInfo(&CreateInfo);

hMainWnd=CreateMainWindow(&CreateInfo);

If (hMainWnd==HWND_INVALID)

Return -1;

...

While( GetMessage(&Msg, hMainWnd) )

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);

...

}

PlayerClose(PlayerHandle);

...

MainWindowThreadCleanup(hMainWnd);

Return 0;

}

4 Conclusion

With the continuous improvement of the hardware performance of embedded systems, users have put forward higher requirements for the friendliness of the application interface and the completeness of the functions. The MiniGUI-based embedded media player described in this paper has the characteristics of simple design and low system resources. It can be used as a reference for developing application software based on embedded graphical interface system.

references

[1] Wei Yongming. M in iGUI User Manual v1.6 [M]. Beijing: Beijing Feynman Software Technology Co., Ltd., 2006.

[2] Wei Yongming. M in iGUI Programming Guide v1.6 [M]. Beijing: Beijing Feynman Software Technology Co., Ltd., 2006.

[3] Yang Xiaojun. Research on Interface of Embedded Linux System[J]. Modern Electronic Technology, 2004, 27 (IS): 89-91.

[4] BarrM. C/C++ Embedded System Programming [M]. Shi Zhihong Translation. Beijing: China Electric Power Press, 2001.

Foli Vape Pod

FOLI FRESH PODS


1.The 3rd Generation Ceramic Coil; The taste is highly restored;
The atomization performance are improved, the output is stable, and the taste is highly restored.
2.Reflux Condensation Technology; The Balance Between Pressure & Resistance;
Combined with aerodynamics, condensation always has under pressure.
3.Leak-Resistant Design; Perfect Separation of E-juice& Air Path;

According to this design and arrangement of labyrinth to make the probability of oil leakage is close to 0.

FOLI Pro Vape Pod is a new series of pods launched by the foli brand, Foli Vape pod stands out for its tiny and cute size, it can be conveniently displayed in the shop with display box. With its 2ml pre-filled e-juice using a 3% nicotin level, FOLI Vape Pod enlivens your tip of the tongue and gains a good throat hit, you will have no annoyance and it avoids the problem of having to compromise on performance or flavor. The black shell of the Foli pods is more stable for business and more suitable for social occasions such as office work in the daytime.

This pod can not only match Foli Vape Kit, but also match Relx Vape kit to meet various needs.

Flavors:


SOUL MENTHOL: Give your taste bud a fresh taste of mint. The mint will uplift your mood and soul and give you an instant coolness.


LYCHEE ICE: Lychee is a kind of food that can only be eaten by the royal family in ancient China. It has a fresh and unique taste,it is refreshing with cool ice cubes.


LEMON TEA: Want to taste something cool and refreshing? Taste the lemon-Tea flavor and give your throat an instant kick of coolness.


BLUEBERRY BLAST: He arrays of wild berries are infused in the pod, and then it is served to the vapors


LONGJING TEA:One of the most popular flavors, the traditional Chinese Longjing tea has a delicate fragrance, leaving you sweet and greasy and restoring the delicate taste


WATERMELON ICE: Try this ripe watermelon flavor with the smooth kick of Ice, you'll be a dedicated lover of watermelon.


GREEN GRAPE: This green grape vape flavor is popular among the vapors because of the juicy grape mixed with the fresh green.


Introduction Of Foli 11



Foli Vape Pod,The 3rd Generation Ceramic Coil Vape Pod,Pod Salt Core E-Liquids,Good Flavour Vape Pod

TSVAPE Wholesale/OEM/ODM , https://www.tsecigarette.com