Embedded Linux Based Album Browser System at Music Stores

The goal of this research is the creation of an album browser system at a music store based on embedded Linux. It is expected with this system; it will help the promotion of said music store and make the customers activity at the store simpler and easier. This system uses NFS for networking, database system, ripping software, and GUI development. The research method used are and laboratory experiments to test the system's hardware using TPC-57 (Touch Panel Computer 5.7" SA2410 ARM-9 Medallion CPU Module) and software using QtopiaCore. The result of the research are; 1. The database query process is working properly; 2. The audio data buffering process is working properly. With those experiment results, it can be concluded that the summary of this research is that the system is ready to be implemented and used in the music stores.

Nearly every aspect of life in this world has been enhanced by the development of technology.In addition, the development of information technology has been accompanied by the development of the recent music industry of today.This can be observed from the development of the music producing media all the way to music storage media.The evolution of music storage media has always been very fast indeed; from records to MP3 data.Every corner of malls in Jakarta has been filled with music stores that sell albums in cassettes or CDs.From this perspective (the fast growing music industry), the development of technology can be made to ease the activities that customers will perform at a music store.
The fast growing music industry has an impact of more and more music stores opening up in Indonesia.The collection of these music stores are enormous, ranging from hundreds to thousands of CDs.The arrangements of these CDs are usually grouped by genres, like pop, rock, jazz, etc.It also can be arranged based on the alphabet of the artist, from A to Z.
Generally, the motivation of the consumers of music stores to buy cassettes or CDs are they are fans of the artist, they hear information of the album from various sources; they saw the songs' video clip on television, or references from other sources.Definitely, the consumers dislike to be disappointed by the album that they will buy.When the consumers are at the music store, it will be difficult for them to find information on the album that they want because of the huge amount of CD collection at that store.They want to hear a preview of the album so they wouldn't be disappointed with the album.
With this reason, consumers would need a way to get more information of the album they would like to buy, which is able to preview the songs of the album along with other information of the album.Because of this, we are interested in solving this problem by creating a system of album browser at the music store that utilizes the development of information technology.This system is created using the application of Embedded Linux using a media TPC-57 [1] that will be used in the music stores.

MODEL, ANALYIS, DESIGN, AND IMPLEMENTA-TION Qt and QtopiaCore
Qt is a toolkit for graphic application development which have character across platform.Qt is known as configuration foundation of KDE, a famous graphic environment in Linux.Qt has been configured with C++ and can used in Unix Platform, windows and Mac OS X. Qt also support endorsement toward internationalization, data base access, XML and sheaf handling [2] .
Qt for Embedded Linux (formerly known as Qtopia Core) is the leading application framework for singlepurpose devices powered by embedded Linux.It provides a robust and proven development environment enabling manufacturers to efficiently create devices with applications that are tailored to market needs [3] .
Qt for Embedded Linux inherits the power and advantages of Qt 4, Trolltech's leading C++ cross-platform application framework.Trolltech has always demonstrated both commitment and ability to remain ahead of the technology curve, freeing customers to focus on front-end valueadding innovation rather than maintaining the software infrastructure [3,4,5].
In Qt, signals and slots are used.A signal is emitted when a particular event occurs.Qt's widgets have many predefined signals, but user can always subclass widgets to add his/ her own signals to them.A slot is a function that is called in response to a particular signal.Qt's widgets have many pre-defined slots, but it is common practice to subclass widgets and add his/ her own slots so that he/she can handle the signals that he/she are interested in.
The signals and slots mechanism is type safe: The signature of a signal must match the signature of the receiving slot (see Figure 1).(In fact, a slot may have a shorter signature than the signal it receives because it can ignore extra arguments.)Since the signatures are compatible, the compiler can help us detect mismatch type.Signals and slots are loosely coupled: A class which emits a signal neither knows nor cares which slots receive the signal.Qt's signals and slots mechanism ensures that if you connect a signal All classes that inherit from QObject or one of its subclasses (e.g., QWidget) can contain signals and slots.Signals are emitted by objects when they change their state in a way that may be interesting to other objects.This is all the object does to communicate.It does not know or care whether anything is receiving the signals it emits.This is true information encapsulation, and ensures that the object can be used as a software component.
Slots can be used for receiving signals, but they are also normal member functions.Just as an object does not know if anything receives its signals, a slot does not know if it has any signals connected to it.This ensures that truly independent components can be created with Qt.
User can connect as many signals as he/she want to a single slot, and a signal can be connected to as many slots as he/she need.It is even possible to connect a signal directly to another signal.(This will emit the second signal immediately whenever the first is emitted).Together, signals and slots make up a powerful component programming mechanism.
With full source code and documentation provided, Qt for Embedded Linux offers the flexibility to create and innovate.Device and application developers using Qt for Embedded Linux can efficiently differentiate their products by taking control of the user experience.
Qt for Embedded Linux not only has minimal hardware dependencies and will run unchanged on most standard embedded Linux set-ups, but can also be easily customized to take advantage of hardware specific accelerations.

Cross Compiling
Cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is run.Cross compiler tools are generally found in use to generate compiles for embedded system or multiple platforms [6].
It is a tool that one must use for a platform where it is inconvenient or impossible to compile on that platform, like microcontrollers that run with a minimal amount of memory for their own purpose.It has become more common to use this tool for paravirtualization where a system may have one or more platforms in use.The fundamental use of a cross compiler is to separate the build environment from the target environment.

Bitbake
Bitbake is a simple tool for the execution of tasks.It is derived from Portage, which is the package management system used by the Gentoo Linux distribution.It is most commonly used to build packages, and is used as the basis of the OpenEmbedded project.Bitbake is used as a tool to automate the compilation process.For example, a MySQL program compiled using Bitbake to be used on an embedded device such as the TPC-57 [7].

NFS
Network File System (NFS) is a network file system protocol originally jointly developed by Sun Microsystems and IBM in 1984, allowing a user on a client computer to access files over a network as easily as if the network devices were attached to its local disks.NFS, like many other protocols, is built on the Open Network Computing Remote Procedure Call (ONC RPC) system.The NFS Client will then import the Remote Archive System from the NFS server, while the NFS server exports the Local Archive System to the client.

Hardware Development
The functions of each part of the module in Figure 2 are as following.Personal computer(PC) is used as a

Software Development
The diagram of the running system is shown in Figure 3.This display is the interface that displays all the activities of all the clients in real time.There are 6 clients, each with its own status for client standby, client ID, the song that is being played, and the shopping cart list for that particular client.
For example on client 1, the client is being used by the user "radip", on which the user is not hearing any song for the moment nor have any list in the shopping cart.Client 2 is on standby state, while clients 3, 4, 5, and 6 are not active.

Software Processing Using Bitbake for Use on the TPC-57 Module
The MP Client application that is used on the TPC-57 (see Figure 4) need a MySQL program, thus the MP Client will get the database information from the MP Manager.Whereas the default programs inside the TPC-57 that came from Techsol did not include the MySQL program.Therefore, MySQL can be used on the TPC-57, a source file ipkg (Debian installer) is needed.
It is done by compiling the MySQL source to be used on embedded ARM using the Bitbake software.For the compiling process using Bitbake, prepare the files that are needed: -build-chroot-dallas_branch-svn-734.tar.bz2containing chroot setup directory, where the Bitbake compiling process will take place.
Put the source files that have already been downloaded into the directory /build-chroot-dallas_branch-svn-0734 /rootfs/home/devel/tsidist-dallas_branch-svn-734/build/ and extract the tarball file with the following command: user@suse: /build-chroot-dallas_branch-svn-734> ./suidexec"./tsioe-utils.shbuild" Wait until the extraction process is finished as the process takes quite a long time to finish (at least 4 hours on some systems).If the computer is connected to the internet then the process will automatically download the newest sources so that the process will take more time and require more hard disk space.
After the extracting process is finished, the result will be a burnable image of the OS that can be installed on the TPC-57 and ipkg files that are located at the directory build-chroot-dallas_branch-svn-734/rootfs/home/devel /tsidist-dallas_branch-svn-734/build/tmp-glibc-stable/ deploy.
The result of extracting the source tarball does not have the MySQL ipkg files yet, to get those files do a Bitbake process for MySQL as follows: Set the proc mount for MySQL with the following command: mount -t proc none $(pwd)/proc/ pwd is the directory inside rootfs.
Set the working directory to chroot with the following command: user@suse: /build-chroot-dallas_branch-svn-734> ./suid-exec"./tsioe-utils.shchroot_login" The operation is now down inside the chroot: devel@suse: /tsidist-dallas_branch-svn-734/build$ MySQL Bitbake command: devel@suse: /tsidist-dallas_branch-svn-734 /build$ Bitbake MySQL The result of the MySQL Bitbake process is an ipkg file located at the following directory: /build-chroot-dallas_branchsvn-734/rootfs/home/devel/tsidist-dallas_branch-svn-734/build/tmp-glibc-stable/ deploy/ipk Cross platforming is used so that the MenuClient application that was developed using a Linux OS with a x86 processor can be used on a TPC-57 with a ARM processor.The following are the steps to cross compile using Qtopia Core: Prepare the latest version Qtopia Core tarball file, for example: qtopia-core-opensource-src-4. 3

.3.tar.gz
Rename the folder resulting from the extract to the desired folder name, for example: QtopiaCore-4.3

3.3-arm/
The prefix functions here are used to determine the location of the Qtopia Core installation, where the default location is at /usr/local/Trolltech.

3.3arm/ -qt-libjpeg -qt-libpng -qt-mouse-tslib -qt-kbd-usb -embedded arm
The options above are used according to the needs.In this case the options for JPEG library, PNG library, tslib driver for the mouse and touch screen, USB driver for the keyboard are needed.For further instructions on how to configure the Qtopia Core with the desired/needed options can be seen at ./configure -help After the above process has been completed, the Qtopia Core program is successfully installed and the application code that was developed using Qt can be cross compiled.So the executable program that has been created can be made into binary that can be processed on a ARM processor.The commands for cross compiling are as follows: (Qt application code folder)#qmake -project (Qt application code folder)#qmake (Qt application code folder)#make After the above process has been completed, copy the library folder and the plug-ins that are located at the folder QtopiaCore-4.3.3-arminto the TPC-57 module with the same folder directories.In this case, /opt/cross/tpc57/ QtopiaCore-4.3.3-arm.Then create a .soformat link file in the folder /opt/cross/tpc57/QtopiaCore-4.3.3-arm/lib according to the needed library files.For example: # ln -s libQtGui.so.4.3.3 libQtGui.so.4 Copy the resulting executable file into the TPC-57, and run the program with the optional -qws.

Creating A MySQL Plug-In Library In Qtopia Core
This system uses a MySQL program to get data from the client program on the TPC-57.So Qtopia Core can access the MySQL database.It would be needed to install a Qt MySQL plug-in library for the Qtopia Core.
This system uses a MySQL program to get data from the client application on the TPC-57.So Qtopia Core can access that MySQL database.The Qtopia Core program needs to have a Qt plug-in library for MySQL.The method accomplish this task is the same as the cross compile from the above explanation.With the work folder that is being used is /QtopiaCore-4.3.3-arm/src/plugins/sqldrivers/MySQL.For example: suse:/opt/QtopiaCore-4.

3.3-arm/src/plugins/sqldrivers /MySQL#make
With that command, Qt will ask for the MySQL include file, with the MySQL include file already been crosscompiled using Bitbake beforehand.For example the location of the MySQL include file that has been cross-compiled using Bitbake can be found at the following folder: /home/radip/build-chroot-dallas_branch-svn-734/rootfs/ home/devel/tsidist-dallas_branch-svn-734/build/tmpglibc-stable/work/arm-linux/MySQL-4.1.20-r0/MySQL-4.1.20/include/The next step is copy all the MySQL include files that has a *.h format from the above folder into the folder /opt/ QtopiaCore-4.3.3-arm/src/sql/drivers/MySQL.Inside this folder there is a file named qsql_MySQL.hthat needs a header file named MySQL.hwith the code #include <MySQL.h>,edit this code into #include </opt/QtopiaCore-4.3.3-arm/src/sql/drivers/MySQL/MySQL.h>to get the correct path.
Finally, after the above steps, then do another make in the MySQL plug-in, with the following command: suse:/opt/QtopiaCore-4.3.3-arm/src/plugins/sqldri-vers/MySQL#make ARM Processor Based TPC-57 Module As MP Client TPC-57 is the album browser and the interface media for the MP Client application of the system.The TPC-57 has a touch-screen feature that will make it easy for users to operate and maximize the features that are available.This will make the album browser more attractive.A Linux based Operating System will be used on the TPC-57, will have the MP Client application for user interface.
This album browser will be connected to the database so it will expect for the MP Client to run smoothly even when there is interaction between the MP Manager and the MP Client.The process that happen here are the MP Client will request and send data to the database server.The data here is the data containing the information and location of a particular song.The requested *.ogg song file and file image will be placed on the TPC-57 on a folder created for NFS transfers.

MP Manager Development
The processes that happens at the MP Manager are processes that involves the database data; adding, changing, deleting a portion or the whole database; and to call an external program for CD ripping process.The database processes of this application will be connected to the database server.After the operator connects the application through the connection menu.
The databases that will be used are those for showing the album and song information, the registered user information, the transaction information, and the client status information.
For the processes of editing a song, an album, or a user data, the MP Manager operator will have to search the desired song, album, or user information.After finding the data that the operator wants to edit, the MP Manager will display an editing form that provides the selected song/album/user information to be edited or deleted.The process of deleting a song/album/user information on the MP Manager will empty the appropriate entry on the database table that is contained within the data-base server.The transactions information menu on the MP Manager is divided into two parts.The first part is the transactions history that is made by all the clients.The second part is the transactions history that was made by each of the clients.These transactions histories are recorded whenever a client user presses the icon "Buy" at the shopping cart menu on the MP Client.
The ripping process here is that the MP Manager application has a feature to call an external program with *.exe extensions, which the MP Manager operator need to locate to folder in which the external program is placed, for example "/home/user_name/grip", then the MP Manager will call the selected Grip program that is located inside the folder "/home/user_name/".The MP Manager is also capable of closing or terminating said called program.

Database Development
In this system, a database server is used.So the MP Client and MP Manager are able to interact with each other.In this way, the MP Client will have access to the database; to add users when they register, to request or to send the data for the News menu, Most Favorite Album menu, Album Searching menu, Shopping Cart menu, changing the status of the clients on the Client Information menu on the MP Manager, and to get the file path information of the files that will be played or displayed.
The database server is MySQL program query.The ERD of the database can be seen in the Figure 5 (At the end of this paper) [8].

RESULT MusicPalace Manager Experiment
MusicPalace manager main menu display The display in Figure 6 is the interface that displays all the activities of all the clients in real time.There are 6 clients, each with its own status.Each cliet has status for client standby, client ID, the song     For example on client 1, the client is being used by the user "radip", on which the user is not hearing any song for the moment nor have any list in the shopping cart.Client 2 is on standby state, while clients 3, 4, 5, and 6 are not active.

MusicPalace Client Experiment
MusicPalace client main menu display is shown in Figure 7.

Log in menu
Query to send to database when a user log in is : Main menu Searching Process: Type in the desired keyword on the menu, then on the available table it will begin searching the database based on album name, artist name, and song name, according to the given keyword.The result can be seen on the Album Information screen that contains a picture of the cover of the chosen album, the name of the album, the artist, and the price of the album.For example if the given keyword is "a", then the result table will show all the albums, artists, and songs that contains the keyword "a" (see Figure 8).
Query on search process is :

Figure 1 :
Figure 1: Signal and slot mechanism

Figure 5 :
Figure 5: ERD of music palace system Hardware minimum specification a) MusicPalace Manager and Database Server: Pentium III 1000 MHz, RAM 128 Mb, Hard disk 80 GB minimum, DVD-CD ROM, LAN CARD b) Techsol TPC-57 Arm Processor for MusicPalace Client (www.medallionsystem.com/products/News/TechsolProductNews\_TPC57.html) c) Networking: LAN Cable and Switch d) Input device for Client: USB Keyboard and USB Barcode Reader e) Output device for Client: Headphone Software specification The specification of the Software that is used on this system is as follows: a) PC Operating System using Linux SUSE 10.3 b) Qt 4 for developing the MP Client and MP Manager applications c) MySQL for the database application d) Qtopia Core 4.3.3e) Bitbake 1.6.0f) Ogg123 for playing song Ogg g) Grip for CD Ripping

Figure 8 :
Figure 8: Searching process at MP client

Table 1 :
Search query result table

Table 2 :
User information query result table

Table 3 :
News query result table

Table 4 :
Most favourite album query result table