SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
HELSINKI UNIVERSITY OF TECHNOLOGY                       3.12.2004
Telecommunications Software and Multimedia Laboratory
T-111.550 Multimedia Seminar
Fall 2004: Mobile Multimedia Application Platforms




  Microsoft Windows Mobile vs. Symbian Multimedia

                           Juhani Nokela, 49539H

                          Onni Valkeapää, 51505T
Abstract

     This paper introduces the Windows Mobile and Symbian OS platforms and
     compares their multimedia capabilities. It shows that although both
     platforms can perform basic tasks related to multimedia (e.g. audio
     playback) their features are more constrained when it comes to playing
     video or drawing more than just basic graphics. The paper also shows that
     the basic working model behind the platforms is fundamentally different
     from each other; being a company owned by six large mobile phone
     manufacturers, Symbian targets at more open software development, while
     Windows Mobile is strictly controlled by one company, that is, Microsoft. In
     the beginning of the paper a broad overview of the background of the
     technologies is given and after that a more detailed technological
     description is provided. The comparison of the technologies is done using
     simple programming examples. Finally main findings are summarized.


TABLE OF CONTENTS

 1  Introduction .......................................................................................................... 2
 2  Background........................................................................................................... 2
  2.1     Microsoft Windows Mobile ......................................................................... 2
  2.2     Symbian OS .................................................................................................. 2
 3 Technology description ........................................................................................ 3
  3.1     Microsoft Windows Mobile ......................................................................... 3
     3.1.1    .NET Compact Framework................................................................... 3
     3.1.2    Microsoft Smartphone .......................................................................... 4
     3.1.3    APIs for Microsoft Smartphone............................................................ 5
     3.1.4    Windows Media Player......................................................................... 5
  3.2     Symbian OS .................................................................................................. 5
     3.2.1    Symbian OS v7.0s ................................................................................ 5
     3.2.2    Multimedia Framework (MMF) ........................................................... 7
     3.2.3    Future: Symbian OS v8.0 ..................................................................... 8
 4 Comparisons, Programming examples ................................................................. 9
  4.1     Audio ............................................................................................................ 9
     4.1.1    Microsoft Smartphone: Playing and Recording Sounds....................... 9
     4.1.2    Symbian OS v.7.0: Playing and Recording Sounds............................ 10
  4.2     Video .......................................................................................................... 12
     4.2.1    Video playback in Microsoft Smartphone.......................................... 12
     4.2.2    Video playback in Symbian OS v.7.0................................................. 13
  4.3     Graphics...................................................................................................... 13
     4.3.1    Graphics in Microsoft Smartphone..................................................... 13
     4.3.2    Graphics in Symbian OS v.7.0s.......................................................... 13
  4.4     Games ......................................................................................................... 14
     4.4.1    Smartphone Game Programming ....................................................... 14
     4.4.2    Symbian OS v.7.0 game programming............................................... 15
 5 Summary............................................................................................................. 16




                                                            1
1 INTRODUCTION

   This paper gives an overview of the technologies used in Microsoft Windows Mobile
and Symbian OS software platforms. It focuses on the multimedia features of both
systems and provides a comparison between them. Because the Symbian OS is primarily
used in devices closely resembling more conventional mobile phones, the paper focuses
on Windows Mobile’s Smartphone platform, which is targeted at the same kind of
devices. The paper first discusses the operating system related features and after that,
moves on to multimedia. At the end of the paper, simple programming examples are
used to demonstrate the multimedia capabilities of systems.

2 BACKGROUND


2.1 Microsoft Windows Mobile

   Windows Mobile [14] is Microsoft' software platform for Pocket PCs and
                                          s
Smartphones. It is designed to extend the familiarity of the Windows desktop
environment to mobile devices, in terms of system development and usability. Windows
Mobile is based on Windows CE operating system [34], which has been a stepping-
stone for Microsoft to mobile systems.

   There are currently three versions of Windows Mobile on the market: Windows
Mobile 2002, Windows Mobile 2003 and Windows Mobile 2003 Second Edition. The
most significant difference between the versions 2002 and 2003 is the latter’s support
for Microsoft’s .NET Framework [12], which is a managed execution environment for
applications. In mobile devices, a scaled-down version of .NET Framework is used. The
newest version of Windows Mobile, i.e. Windows Mobile 2003 Second Edition, is
based on Windows CE version 4.21. At the time of writing, Windows CE 5.0 is on its
way to markets. Along with the new version, comes an updated version of .NET
Compact Framework [21].

2.2 Symbian OS

   Symbian OS is an open operating system for mobile phones. It is designed to work in
environment set by 2G, 2,5G and 3G mobile phone requirements. The operating system
is owned by a software licensing company called Symbian and in this is owned by some
of the leading mobile phone manufacturers with following shares: [26]
   - Nokia 47,9 %
   - Ericsson 15,6 %
   - Sony Ericsson 13,1 %
   - Panasonic 10,5 %
   - Siemens 8,4 %
   - Samsung 4,5 %

   In addition to its owners the operating system has been licensed to six other
companies that develop mobile phones around the world. Altogether these companies
promote 21 phones and more is coming out all the time. Maybe the most well known
Symbian phones are Nokia Communicator 9290, Nokia 7650, Sony Ericsson P800 and
Siemens SX1.



                                           2
At the moment there are three versions of Symbian shipping out in phones. The older
one, version 6.0 is slowly fading away, but still in use for example in Nokia
Communicators. More relevant versions for today’s mobile communication are version
7.0 and especially version 7.0s. The biggest difference between versions 7 is that the s-
version supports Java MIDP 2.0 and a completely new Multimedia Framework (MMF)
is included [29]. Symbian has also released two new versions of the operating system,
which are known as versions 8.0 and 8.1. For these versions there are only Nokia 6630
phone out that include version 8.0.

3 TECHNOLOGY DESCRIPTION


3.1 Microsoft Windows Mobile


3.1.1 .NET Compact Framework

   .NET Framework [12] is an integral Windows component for building and running
different kinds of software, including web-based applications and XML Web services.
Various programming languages can be used in .NET development by using compilers
designed for .NET Framework. Core of the .NET Framework is composed of the
Common Language Runtime (CLR) and the Framework Class Libraries (FCL). The
former is a programming language independent development and managed execution
environment and the latter a set of prewritten services, which provide the basic
functionality used in applications [37].

   Fundamental working model of the .NET Framework and its CLR resembles
concepts used e.g. in Java Virtual Machine [12]. CLR’s purpose is to execute the code
written for it – no matter what programming language is used. In other words, each
CLR-compatible programming tool compiles its source code to a .NET executable,
standardized Microsoft Intermediate Language (MSIL). When the application is finally
executed, .NET Framework transforms the semi-compiled MSIL-code into a native
code. This phase is called just in time compilation [32].

   The Common Language Runtime is a key element of .NET Framework. It serves as a
mediator that manages code at runtime and provides applications with basic services,
ranging from memory management to security issues [37]. Applications developed for
.NET Framework are knit together with the runtime, and their code is called managed
[37]. Code that does not target the runtime, i.e. unmanaged code, can also benefit from
the managed features by loading CLR into its processes [37].

   .NET Compact Framework [21] is a mobile-oriented version of the full .NET
Framework. It uses a subset of .NET Framework’s FCL, which is adapted to be used
with mobile devices with constrained features and resources. To minimize the battery
consumption, .NET Compact Framework is optimized to avoid heavy use of RAM and
CPU cycles [37]. CLR of .NET Compact Framework is approximately 12 percent the
size of that used in full .NET Framework [22]. It is estimated, that Microsoft
Smartphone, which uses the .NET Compact Framework, holds about one third of the
1500 interfaces used in traditional desktop Windows [32].


                                           3
Being a subset of .NET Framework, .NET Compact Framework allows the
programming tools of desktop environments to be used in mobile system development.
Clear benefit of this relationship is the ability to exploit more wide-spread programming
skills of desktop environments in mobile platform programming. On the contrary, as the
.NET Compact Framework is more or less scaled-down version of the desktop system,
some of the distinctive characteristics of mobile environment may not receive sufficient
attention due to the changed purpose of use [32].

3.1.2 Microsoft Smartphone

   Smartphone is a mobile device, which combines features and functionality of mobile
phone and personal digital assistant (PDA). Microsoft Smartphone [36] is a software
platform, which is built on Windows Mobile and .NET Compact Framework. Microsoft
also offers a platform called Pocket PC, which is targeted at the PDAs and is similar to
the Microsoft Smartphone. The difference between a Smartphone and PDA stems from
their usage characteristics. Smartphone is primarily used as a mobile phone and
therefore the Microsoft Smartphone is well tuned for tasks such as messaging and
making calls [21]. Unlike the PDA, it is also designed to be used with one hand.

   Currently, there are two development options available by Microsoft for
programming Smartphone 2003. One is to write native code using Microsoft’s
embedded Visual C++ 4.0 and the other is to write managed code through Visual Studio
.NET 2003. In both cases, a Smartphone 2003 software developer kit (SDK) is needed.
Figure 1 show the Smartphone emulator, which can be used to test applications.




Figure 1: Microsoft Smartphone emulator




                                           4
3.1.3 APIs for Microsoft Smartphone

   Microsoft Smartphone platform provides system developers with set of APIs
especially designed to exploit the capabilities of Smartphone devices. Smartphone API
[37] provides tools, among other things, for connectivity, messaging, telephony and
multimedia. Microsoft Smartphone’s multimedia-related APIs are listed in the table 1
[37]. For each API, a short description of its key features is given.

Table 1. Multimedia-related APIs of Microsoft Smartphone
API                           Key features
Game API (GAPI)               Game API provides functions and structures which are
                              specially needed in games-programming. The most
                              important features of GAPI are related to handling the
                              device’s display and hardware keys.
MIDI API                      MIDI API is used to play MIDI file in Smartphone
                              device. File is played by converting it to a specific
                              WAV-format.
Vibrate API                   Vibrate API provides functions to control the vibration
                              feature of the device. In Smartphone, vibration is
                              defined as song, and with vibrate API song’s
                              amplitude, frequency and duration can be controlled.
Voice Recorder Control API Voice Recorder Control API is used to record voice
                              and sounds. It contains a function, which is used to
                              start and stop the recording as well as playing the
                              sound recorded.

3.1.4 Windows Media Player

   Windows Mobile 2003 includes Microsoft’s Windows Media Player (WMP) [35],
which is an application used to play different kinds of audio and video files. There are
different versions of WMP, Smartphone 2003 uses the version 9 [35]. The WMP in
Smartphone supports the Windows Media audio and video playback as well as MP3
playback, but for example MPEG1 and AVI playback are not supported.

  Windows Media Player control is a set of APIs that can be used to add the
multimedia playback capabilities of Windows Media Player to applications and web
pages [35]. Windows Mobile 2003 supports the WMP ActiveX controls embedded in
web pages, but does not offer any WMP APIs to be used with applications [35].

3.2 Symbian OS


3.2.1 Symbian OS v7.0s

   Symbian operating system v.7.0s is an improved version of 7.0. Especially
multimedia capabilities have been improved to the s-version. Some of they key aspects
of the whole operating system is, that it is fully multi-tasking and has an open
application environment that supports some of the most common standards in the
industry (for example Java’s J2ME) [29]. The user interface has not been standardized
in Symbian, so all the manufacturers can develop their own. The most used user


                                           5
interface in Symbian phones is Nokia’s Series 60 that has been licensed also outside
Nokia [33].

   Symbian has been designed especially for mobile phones, so all the different parts of
the architecture have been thought that in mind. The architecture Symbian uses can be
found from figure 2 [29] and from there can be seen, that telephony part has been
isolated from the other parts, so they won’t interfere with it.




Figure 2: Symbian OS architecture

    For the developers the native language of Symbian is C++ and there is available for
example a development environment from Borland called C++BuilderX Mobile Edition
1.5. In addition to C++ Symbian also supports Java in the Application framework [27].
This framework supports different kind of user interfaces, internationalization and runs
all the applications as separate processes as the operating system is fully multi-tasking
[29].

    Symbian offers to its licensees and development partners Symbian OS kit that is
focused for developing the applications with C++. The C++ used in Symbian is not a
pure C++, but its dialect called Symbian C++. For most of the users this is not a
problem, but with some old gcc versions there might be problems. Also some
differences are in the memory allocation as the standard C++ is not efficient enough due
to the constraints in mobile devices [32].

   In Java world Symbian supports MIDP v.2.0 with CLDC and in Communicators also
PersonalJava with JavaPhone. The MIDP (The Mobile Information Device Profile) with
the CLDC (Connected Limited Device Configuration) are an integral part of Java 2
Platforms Mobile Edition (J2ME) [24]. Together these ensure that standard Java
runtime environment can be used in Symbian phones and this gives wide range of


                                           6
different Java APIs available to developers. MIDP also offers wide range of multimedia
support that will make developing different multimedia applications and games much
easier.

   Sun has made a preannouncement that PersonalJava with JavaPhone will be soon in
the End Of Life (EOL) [25] and in the Symbian world it has been just in the
Communicators as it is much too heavy for lightweight mobile phones.

   In addition to C++ and Java supports OPL (Open Programming Language) that
Symbian has made open source. This language is supposed to be a powerful but
relatively easy programming language. It is a basic like language that has been used for
over 60 applications in the open source community [16]. Also a company named
AppForge has made a development tool called CrossFire that makes possible to write
.NET applications to Symbian [34]. However, major part of the application development
in Symbian world is concentrated to C++ and Java.

3.2.2 Multimedia Framework (MMF)

   The Multimedia Framework (MMF) in Symbian OS v.7.0s was totally new compared
to old versions. This framework is lightweight and provides multi-threaded environment
for handling different kind of multimedia data. As today’s phones need a lot of
multimedia capabilities MMF was made to support audio and video playback, streaming
and recording. It also includes Image Conversion Library (ICL) that supports the most
basic image types and more types can be added later through the third party plug-ins
[29]. Architecture of MMF is illustrated in figure 3 [29].




Figure 3: Architecture of MMF in Symbian OS v7.0s



                                           7
As from the figure 3’s ICL can be seen, the framework has been made so that third
parties can add supports to new file types later and therefore the framework is very
extensible. To support the plug-in architecture there are different kinds of abstract and
concrete classes that would help to create new plug-ins to support new media types. In
here one can see the nature of Symbian as it is made to support the standards and is
suppose to be an open environment for everyone. The framework nature also makes
possible a concurrent processing of multiple multimedia data streams [29].

   Lowest level in the framework is Media Support Library that at the moment only
supports audio through the DevSound. This level only supports streaming and some
coded media formats that need hardware accelerator [32]. DevSound API offers wide
range of different playbacks due to historical reasons as it can play tones for example.

   In the next level there are different plug-ins for midi, audio, video, speech
recognition and camera. The plug-in for camera only makes available a small API to use
onboard camera so the basic camera functions can be used. Midi client is just a
straightforward API to support playback and Midi events. The difference between audio
and video is that the Symbian provides an audio engine that support some of the audio
types historical used in phone industry (WAV, AU, AIFF, PCM, A-Law, u-Law, GSM
6.10 etc), for the other types like MP3 and AAC there is an interface for third party
engines, for the video support there is no engine supported by Symbian so it is
completely dependent on RealOne’s, PV’s or some other vendors engine [32].

3.2.3 Future: Symbian OS v8.0

   Symbian has released two new versions of its operating system that are 8.0 and 8.1.
Nokia’s new 6630 phones have the 8.0 version but no other phones are shipping out yet.
The difference between these two versions is not in the multimedia side, so the focus is
in 8.0 in this paper.

   The key updates in 8.0 are hard realtime capabilities in kernel, major upgrade in Java
to support for example 3D, OpenGL support and addition of Media Device Framework
(MDF), which provides Hardware Abstraction Layer for multimedia hardware
acceleration. Also some other enchantments have been made [30].

   The improvements in kernel have been made so the performance of the Symbian OS
is improved and the manufacturers can use “single core” processors that integrate
telephony and application processing. With this improvement the manufacturing costs
of the phones can be reduced [30].

   In Java side there are made a lot of improvements. New version of CLDC 1.1 and
some JSRs that include for example Mobile Media and 3D graphics are provided, so the
functionality of Java is increased a lot. At the same time that the capabilities of Java are
improved it is also made possible to scale applications, better than before, to different
devices as the performance of the mobile phones can vary a lot [30].

  3D support for mobile gaming and multimedia is also offered by offering OpenGL
ES API support. This probably is especially interesting for game manufacturers as this


                                             8
improves a lot the graphical capabilities of mobile phones.

   The Media Device Framework offers an abstraction layer for hardware so
manufacturers can easily take advantages of the new hardware technologies without
fearing that the investments made in software is lost. This framework offers support for
video, audio and voice recognition, so it is seen as a major improvement in the industry
by accelerating the time to market for new devices [22].

4 COMPARISONS, PROGRAMMING EXAMPLES


4.1 Audio


4.1.1 Microsoft Smartphone: Playing and Recording Sounds

   There are two different ways of playing waveform sounds in applications designed
for Windows CE based Smartphones. One is to use PlaySound-function [33] which
provides basic and simple way for playing sounds. The other is to exploit the Waveform
Audio API interface [21], which gives an exact control over possible audio I/O devices.
It allows both playback and recording of sounds. The following code examples
demonstrate the use of PlaySound-function:

// plays the sound-file “sound.wav” stored in device’s memory:
PlaySound (TEXT("SOUND.WAV"), NULL, SND_SYNC);

// plays the sound which is associated with the event “ButtonClick” in
// system registry:
PlaySound (TEXT("ButtonClick"), NULL, SND_SYNC);

   Waveform Audio Interface provides another way to play sounds. It gives an extensive
control over the audio devices available, but is to a certain extent more complex to use
than PlaySound. Waveform Audio Interface uses Platform Invoke (P/Invoke)
mechanism [21] to access the sound playing features provided by Windows CE, not
available directly through .NET Compact Framework. The process of playing or
recording a sound with Waveform Audio Interface can be divided into separate stages.
First step is to determine which audio I/O devices are available at the current system.
After that a waveform device for playback or recording must be opened. Before the file
can be played or sound recorded, memory must be allocated for audio data blocks. After
that the playback or recording can begin. The following simplified example demonstrate
the use of Waveform Audio Interface:

// Wave file is played using the WaveOut-class, which provides a
// simple interface for playing audio-files:
WaveOut wo = new WaveOut();

// File is played using the Play-method. Parameters are: file name to
// be played, audio buffer size, volume for the left/right channel:
wo.Play(fileName, 512*1024, 0xffff, 0xffff);




                                            9
// Recording of a sound is done using the WaveIn-class, which is
// similar to the WaveOut:
WaveIn wi = new WaveIn();

// Before the recording can begin, the Preload function must be called
// to initialize the buffers and sound system. Parameters are: maximum
// recording length (ms), buffer size:
wi.Preload(3000, 256*1024);

// The recording is started using Start method and stopped/saved using
// the Save method:
wi.Start();
wi.Save(fileName);

4.1.2 Symbian OS v.7.0: Playing and Recording Sounds

   Symbian offers a various ways to play different types of audio even without third-
party plugins. WAV-files can be easily played with C++ application as the operating
system does most of the work. However, the more interesting part for Symbian is the
Java support so here it is shown how an audio file is played using the Mobile Media
API. [35]

  import javax.microedition.media.*;
  import javax.microedition.media.control.*;
  import java.io.*;

  public class    AudioPlayer implements Runnable {
       private    MIDletController controller;
       private    Player player;
       private    VolumeControl volumeControl;
       private    String url;

        // This makes reference to controller so AudioPlayer can
        // make call backs

        public AudioPlayer(MIDletController controller)
        {
          this.controller = controller;
        }

        // This initialization puts the player to separate thread

        public void initializeAudio(String url)
        {
          this.url = url;
          Thread initializer = new Thread(this);
          initializer.start();
        }

        // In the run method the actual moving of the player through


                                         10
//   its states is done. First a player is created to with a
//   source url. Then additional initializations are done
//   including setting the volume and finally the player is
//   started

public void run()
{
  try {
        player = Manager.createPlayer(url);
        controller.updateProgressGauge();
        player.addPlayerListener(controller);
        player.realize();
        controller.updateProgressGauge();
        player.prefetch();
        controller.updateProgressGauge();
        volumeControl =
            (VolumeControl)player.getControl("VolumeControl");
        volumeControl.setLevel(50);
        controller.updateProgressGauge();
        player.start();
  } catch (IOException ioe) {
        controller.showAlert("Unable to connect to resource"
        , ioe.getMessage());
  } catch (MediaException me) {
        controller.showAlert("Unable to create media player"
        , me.getMessage());
  }
}

// This is for a restart of the player if needed

public void replay()
{
  try{
       player.start();
  } catch (MediaException me) {
       controller.showAlert("MediaException thrown",
                            me.getMessage());
  }
}

// This is for setting the volume right

public void setVolume(int level)
{
  volumeControl.setLevel(level);
}

// This is for closing the player



                             11
public void close()
        {
          player.close();
          controller = null;
          url = null;
        }
  }

   MIDP also offers a way for capturing audio from an onboard hardware. The record of
a media is from any input and the media playback does not necessary have to be
supported. Here is a short fragment of a code that records five seconds from audio
device. [35]

  try {
    // Create a Player that captures live audio.
    Player player = Manager.createPlayer("capture://audio");
    player.realize();

      // Here a recordcontrol is obtained from the player and used
      // for to record audio from device

      RecordControl rc =
         (RecordControl)player.getControl(“RecordControl”);
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      rc.setRecordStream(output);
      player.prefetch();

      // this will start recording if the player has started already
      // otherwise it waits for the player to start
      rc.startRecord();

    player.start();
    Thread.currentThread().sleep(5000);
    rc.commit();
    player.close();
  } catch (IOException ioe) {
  } catch (MediaException me) {
  } catch (InterruptedException ie) {
  }

4.2 Video


4.2.1 Video playback in Microsoft Smartphone

   Windows Mobile supports video playback in Smartphone devices through the
Windows Media Player (WMP) [35]. It supports video formats, which are encoded
using Windows Media format (.wmv) or Advanced System Format (.asf). The latter is a
specification, which allows video content, compressed with a wide variety of different


                                         12
codecs, to be stored in ASF-file and played back in WMP [14].

   Playback of AVI and MPEG-1 video files is not supported in WMP of Microsoft
Smartphones. There is however some third-party video player applications, which can
be installed in Smartphone. PocketTV [21] is a movie player for PocketPC and
Smartphone devices, which enables the playback of MPEG-1 video. DVD-to-
Smartphone [6] is software, which can be used to watch DVD-movies in Smartphone. It
converts and compresses the DVD-video to MPEG-4 format, allowing the data of
original video to fit in small capacity memory cards used in Smartphones.

4.2.2 Video playback in Symbian OS v.7.0

    As mentioned earlier Symbian, does not support native video playback. There are
still third-party plugins for example RealOne’s player, Packet Videos pvPlayer and an
open-source project Helix. These players support variety of media types for example
realvideo, MPEG-4, H.263 etc. There is also a SmartMovie video player and converter
where one can convert the video in computer and then watch it in Symbian phone. This
player uses Xvid codec and the converter uses DirectShow codecs so one can download
any codec from Internet to create a video for Symbian. [23]

   It is also possible to make a MIDlet as in audio part that creates a video player by
using the Mobile Media API. However, the 7.0s version includes only a subset of
Mobile Media API and that does only support audio playback, volume control and tone
generator [35]. The version 8.0 however includes the full support for Mobile Media
API.

4.3 Graphics


4.3.1 Graphics in Microsoft Smartphone

    .NET Compact Framework’s graphics-related features are constrained compared to
those in full .NET Framework. Although .NET Compact Framework supports basic
drawing primitives and their fill methods (i.e. ellipse, line, image, polygon, rectangle,
string, and region) [36], more complicated methods for drawing, filling and
transforming, as well as 3d are not supported. .NET Compact Framework is able to
create transparency using the color key, but neither alpha blending nor pixel-by-pixel
blending of source and background colors is supported.

   Smartphone’s game API (GAPI) [31] enables direct access to device’s display and
video frame buffer memory, which provides a way to create faster animated graphics
(see section 4.4.1). Although it is originally designed for games development, it is
equally useful in applications, which require fast graphics and ability to use the entire
display area.

4.3.2 Graphics in Symbian OS v.7.0s

   Symbian uses shared heap to share applications access to screen, keyboard, pointing
devices, scalable fonts, and bitmaps. Also a generic framework, the Graphics Device
Interface (GDI), is provided for drawing to any graphics device. It can be also used to
drawing to windows, bitmaps or printers [29].


                                           13
For mobile phones the readability of the text is very important, as many times the
size of the display is small, in Symbian this problem is solved by supporting anti-
aliasing for all text types. As there is no 3D support in version 7.0s the 2D graphics has
still a hardware accelerator support in HAL (Hardware Abstract Layer). This feature
supports for example following operations: rectangle fill, polygon drawing and rectangle
invert [29].

   Prior to Symbian 7.0 there was not a direct screen access implemented to Symbian. In
the version 7.0 this enchantment was made so no tricks are needed anymore to bypass
the window server. Symbian has two ways for easy direct screen access.
CdirectScreenAccess is a classic way, which hides the complexity and gives structured
callbacks. Another way is to use RdirectScreenAccess that is not an active object so
developer has to develop a way to handle asynchronous nature of the Window server
that CdirectScreenAccess does automatically [28].

4.4 Games


4.4.1 Smartphone Game Programming

   Microsoft Smartphone’s game API (GAPI) [37] provides functions to be used
especially in games programming. It can also be exploited in applications where the
whole display area is needed or in applications, which need the exact control over the
device’s hardware keys. GAPI addresses the need for fast graphics by allowing direct
access to the display’s video frame buffer memory. It hides the operating system’s menu
bar and thus allows the whole display to be used for game application. For controlling
the game, GAPI allows applications to take control of the hardware keys. Smartphone
APIs can also be used to add effects, such as flashing display’s backlight and vibrating
the device.

   The following code example shows how the most common GAPI functions are used
in game application. Comments explain the purpose of each function:

// Device’s display can be set to full screen mode by using the
// GXOpenDisplay function. The same function ensures exclusive access
// to the video frame buffer. When the GX_FULLSCREEN parameter is
// used, hWnd is a handle to full screen mode:
GXOpenDisplay(hWnd, GX_FULLSCREEN);

// Device’s display-properties can be accessed using the
// GXGetDisplayProperties-function, which returns a structure with
// detailed information about the display hardware:
GXDisplayProperties gx_displayprop;
gx_displayprop = GXGetDisplayProperties();

// Button-handling can be taken over by using GXOpenInput-function.
// All hardware button presses generate appropriate messages to the
// application instead of being sent to shell:
GXOpenInput();



                                           14
// Most suitable control layout for a game can be switched on
// using the GXGetDefaultKeys-function, which returns a list of
// virtual key codes. For example, the virtual key “vKA” is a key
// code of the best key to use for “shoot” or “jump” button in a game.
// Parameters define the orientation of the device;
// GX_NORMALKEYS corresponds to portrait orientation, GX_LANDSKAPEKEYS
// to landscape orientation
GXKeyList gx_keylist;
gx_keylist = GXGetDefaultKeys(GX_NORMALKEYS);

// The GXBeginDraw function prepares the display for drawing. It
// returns a pointer to the start of display memory:
unsigned short *buffer = (unsigned short*)GXBeginDraw();

// GAPI operations can be suspended and resumed using GXSuspend and
// GXResume functions respectively:
GXSuspend();
GXResume();

// The drawing can be finished and resources released using the
// following functions:
GXEndDraw();
GXCloseInput();
GXCloseDisplay();



4.4.2 Symbian OS v.7.0 game programming

   For Symbian the release of version 7.0s was a major when thinking about the support
to gaming. MIDP 2.0 and MMF offer a various ways to make games for any Symbian
phone. Even a pure handheld console Nokia N-Gage is based on Symbian architecture.
However the operating system in that is the older version 6.1.

   As Symbian does not offer any API just for game developing the Java support is big
boost for game developing. There are a lot of games even today that can be easily ported
to Symbian, thanks to its Java capabilities.

   As Symbian’s native language is C++ there are many games developed in that
environment too. Especially as the C++ code is more efficient, as its native to Symbian,
there is also a lot of development done in that side. Of course the trouble in that, is that
there is no common user interface, but at the moment Nokia’s Series 60 has gained
popularity, so this is a possible solution for the problem.

  The following code is an example from a bouncing ball application. In this short code
we do the following things: [28]
  - clean up the previous position of our ball on screen
  - update the position of the ball
  - copy the image of the ball to the new position
  - flush the screen buffer


                                            15
-   reset the timer


  void CDDBouncingBallEngine::RunL()
  {
    // Force screen update: this required for WINS, but may
    // not be for all hardware
    iDirectScreenAccess->ScreenDevice()->Update();

      TRect sourceRect(iPosition,iBallImage->SizeInPixels());

      iGc->Clear(sourceRect);

      // Update the balls position
      MoveBall();

      // and draw ball
      iGc->BitBlt(iPosition, iBallImage);
      iClient.Flush();

      // Renew request
      After(TTimeIntervalMicroSeconds32(KGenerationInterval));
  }

5 SUMMARY

   There is a big difference in the way of thinking between the Symbian and Microsoft
world. As the Symbian is very modular and support wide variety of plugins and even
promotes the third parties to do these, Microsoft wants to keep as much as possible to
their own. Of course, this is partly due also to their different ownership. As the
Microsoft is a normal limited company the Symbian is a joint-company of six big
mobile phone companies.

   Both sides of these have their pros and cons. With open standards the Symbian lures
the open source community and small businesses to develop a lot of different
applications. In the other hand, Microsoft way of protecting its own software also makes
application developers safer as they have to follow just one company, not many smaller
ones.

    The other big difference comes from the developing environment. Microsoft
promotes its own .NET architecture also in the mobile side as the Symbian tries to get
all the best from the Java world, by following the latest standards in that. Symbian also
has other developing environments, but these are not promoted as much as the Java. One
could even say, that Symbian is trying to get the lead with so fashionable J2EE, J2ME
and other Java speak. As a minor notice the open standards idea of Symbian can be seen
from the Appforges Crossfire application that will bring .NET developing to Symbian.

  The support for audio is in decent level already in mobile phones. Both systems have
ways to play different audio files and complete control through APIs to audio devices
onboard. In a future there will not probably be any big differences in this side, as most


                                           16
of the limitations are due the mass memory and headphones that are not the issues of
operating system.

   In the graphics side the battle is just going to begin. As in the past there have not
really been 3D graphics, but for the future versions it is coming. Symbian already has a
full steam promoting its OpenGL support in the 8.0 versions and Microsoft is probably
very close too especially in its Windows CE 5.0 operating system. For consumers it is
interesting to see, do we get the same kind competition as in the PC market where the
difference is made in the hardware. The safer bet for direction is the way gaming
consoles are coming. For few years there is always some kind of standard before the
evolution takes a leap.

    Video has been said to be the killer application in 3G mobile phoning. It is not yet
reclaimed its promises as the display side and the size of the video file has been too big
for video. From today’s phones this can be seen also, as neither of the systems offer
native support for example MPEG-video. This support is however supported through
third party applications and for the both there is also a way to convert DVDs to mobile
phones This can be seen mainly just a geek playing with the latest technology, but sure it
is some kind of mark for what is coming.

   In gaming there is one big difference. Symbian doesn’t offer anything just for the
game developing, even though it is promoting all kind of development in that side. In
the contrast Microsoft is offering an API just for games in Smartphone. Symbian is still
not weaponless in this issue as its offers Java support that makes available a lot of
features that support game development.

   It can be said, that both systems offer more common features especially in
multimedia side than differences. It can be seen, that Microsoft still believes its own
power, but not as much as in the computer side. Of course, this is due the fact that
Microsoft is the challenger with its Smartphone to the old mobile phone companies that
try to keep Microsoft away from the phone industry.

REFERENCES

[1] Advanced Systems Format (ASF) Specification
http://www.microsoft.com/windows/windowsmedia/format/asfspec.aspx

[2] Appforge
http://www.appforge.com/

[3] Crooks, Clayton E. 2003. Developing Tablet PC applications. Charles River Media.
pp 37-38

[4] Developing Applications for Windows Mobile: FAQ
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dnppcgen/html/devmobfaq.asp

[5] Differences between the .NET Compact Framework and the full .NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dv_evtuv/html/etcondifferenceswithnetframework.asp


                                           17
[6] DVD-to-Smartphone
http://www.smartphone.net/software_detail.asp?id=724

[7] Hiipakka, J. 2004. Symbian OS 7.0S - Multimedia Framework
http://www.tml.hut.fi/Opinnot/T-111.550/T-111.550-20041019-Symbian.pdf

[8] How to Create a Microsoft .NET Compact Framework-based Image Button
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dnnetcomp/html/ImageButton.asp

[9] Jakl, A. The workflow of C++ game development
http://www.symbian.com/developer/techlib/papers/workflowcppgame/WorkflowOfGam
eDevelopment.pdf

[10] Joende, M. Working with the Mobile Media API – Part 1 and 2
Part 1:
http://www.symbian.com/developer/techlib/papers/Working_with_Mobile_Media_API.
pdf
Part 2:
http://www.symbian.com/developer/techlib/papers/midptools/MobileMediapart2_v1.1.p
df

[11] Microsoft .NET Compact Framework
http://msdn.microsoft.com/smartclient/understanding/netcf/

[12] Microsoft .NET Framework Developer Center
http://msdn.microsoft.com/netframework/

[13] Microsoft .NET Framework Technology Overview
http://msdn.microsoft.com/netframework/technologyinfo/overview/default.aspx

[14] Mobile and Embedded Application Developer Center
http://msdn.microsoft.com/mobility/windowsmobile/default.aspx

[15] NewLC - The Symbian OS C++ Developer Community
http://www.newlc.com/

[16] OPL-dev project
http://opl-dev.sourceforge.net/

[17] Overview of the .NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/cpguide/html/cpovrintroductiontonetframeworksdk.asp

[18] Overview of Windows Media 9 Series
http://www.microsoft.com/windows/windowsmedia/technologies/overview.aspx

[19] PocketTV


                                           18
http://www.pockettv.com/

[20] Series60 platform
http://www.series60.com/

[21] Recording and Playing Sound with the Waveform Audio Interface
http://msdn.microsoft.com/mobility/samples/default.aspx?pull=/library/en-
us/dnnetcomp/html/waveinout.asp#waveinout_topic_002

[22] Similarities between the .NET Compact Framework and the full .NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dv_evtuv/html/etconsimilaritieswithnetframework.asp

[23] SmartMovie
http://www.lonelycatgames.com/mobile/smartmovie/smartmovie.html

[24] Sun: J2ME Mobile Information Device Profile (MIDP)
http://java.sun.com/products/midp/

[25] Sun: PersonalJava
http://java.sun.com/products/personaljava/

[26] Symbian OS - the mobile operating system
http://www.symbian.com/index.jsp

[27] Symbian Developer Network
http://www.symbian.com/developer/index.html

[28] Symbian: Implementing Direct Screen Access
http://www.symbian.com/developer/techlib/papers/dsa/direct_screen_access.pdf

[29] Symbian OS Version 7.0s functional description
http://www.symbian.com/technology/symbos-v7s-det.htm

[30] Symbian OS Version 8.0 functional description
http://www.symbian.com/technology/symbos-v8x-det.html

[31] Technical Documentation for Windows Mobile
http://msdn.microsoft.com/mobility/windowsmobile/howto/documentation/default.aspx

[32] Mikkonen, T. 2004. Mobiiliohjelmointi. Gummerrus Kirjapaino Oy. pp. 13-15

[33] Using the PlaySound Function
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/wcewave/html/_wcesdk_using_the_playsound_function.asp

[34] Windows CE Product Information
http://msdn.microsoft.com/mobility/othertech/windowsce/default.aspx




                                             19
[35] Windows Media Overview and Optimization for Windows CE .NET 4.2
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dncenet/html/conwindowsmediaoverviewoptimizationforwindowscenet42.asp

[36] Windows Mobile-based Smartphones
http://www.microsoft.com/windowsmobile/smartphone/default.mspx

[37] Windows Mobile-Based Smartphone API Reference
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/apisp/html/sp__windowsmobile_api_reference.asp




                                           20

Mais conteúdo relacionado

Semelhante a WindowsMobile_vs_SymbianOS

DINESH SEMINAR 1 SYMBIAN OS landscape.pdf
DINESH SEMINAR 1 SYMBIAN OS landscape.pdfDINESH SEMINAR 1 SYMBIAN OS landscape.pdf
DINESH SEMINAR 1 SYMBIAN OS landscape.pdfamiti dinesh
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile PhonesSasukeJUchiha
 
Network and Mobile Operating System
Network and Mobile Operating SystemNetwork and Mobile Operating System
Network and Mobile Operating SystemEdwin S. Garcia
 
Seminar report on Symbian OS
Seminar report on Symbian OSSeminar report on Symbian OS
Seminar report on Symbian OSDarsh Kotecha
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting systemAj Maurya
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting systemAj Maurya
 
Dia 1 intro to mobile and xamarin
Dia 1   intro to mobile and xamarinDia 1   intro to mobile and xamarin
Dia 1 intro to mobile and xamarinHernan Zaldivar
 
Application development for mobile phones
Application development for mobile phonesApplication development for mobile phones
Application development for mobile phonesSanjeev Kumar Jaiswal
 
889448 634356855122132416
889448 634356855122132416889448 634356855122132416
889448 634356855122132416zxdrtyu
 
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeRao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeMario B.
 
Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02AvniKumari1
 

Semelhante a WindowsMobile_vs_SymbianOS (20)

DINESH SEMINAR 1 SYMBIAN OS landscape.pdf
DINESH SEMINAR 1 SYMBIAN OS landscape.pdfDINESH SEMINAR 1 SYMBIAN OS landscape.pdf
DINESH SEMINAR 1 SYMBIAN OS landscape.pdf
 
Mobile Operating System
Mobile Operating SystemMobile Operating System
Mobile Operating System
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile Phones
 
Manish solanki
Manish solankiManish solanki
Manish solanki
 
Network and Mobile Operating System
Network and Mobile Operating SystemNetwork and Mobile Operating System
Network and Mobile Operating System
 
Symbian Os
Symbian OsSymbian Os
Symbian Os
 
Seminar report on Symbian OS
Seminar report on Symbian OSSeminar report on Symbian OS
Seminar report on Symbian OS
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting system
 
Handheld operting system
Handheld operting systemHandheld operting system
Handheld operting system
 
Dia 1 intro to mobile and xamarin
Dia 1   intro to mobile and xamarinDia 1   intro to mobile and xamarin
Dia 1 intro to mobile and xamarin
 
MeeGo Mobile OS
MeeGo Mobile OSMeeGo Mobile OS
MeeGo Mobile OS
 
Mobile computing
Mobile computingMobile computing
Mobile computing
 
Application development for mobile phones
Application development for mobile phonesApplication development for mobile phones
Application development for mobile phones
 
889448 634356855122132416
889448 634356855122132416889448 634356855122132416
889448 634356855122132416
 
Ospf
OspfOspf
Ospf
 
Symbain5
Symbain5Symbain5
Symbain5
 
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeRao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
 
Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02Mobileoperatingsystem ppt-130522194611-phpapp02
Mobileoperatingsystem ppt-130522194611-phpapp02
 
Symbian
SymbianSymbian
Symbian
 
Symbian os
Symbian osSymbian os
Symbian os
 

Último

Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130Suhani Kapoor
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...kumaririma588
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130Suhani Kapoor
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
The Art of Batik, template ppt aesthetic
The Art of Batik, template ppt aestheticThe Art of Batik, template ppt aesthetic
The Art of Batik, template ppt aestheticTiaFebriani
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsCharles Obaleagbon
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxTusharBahuguna2
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...Pooja Nehwal
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...Call Girls in Nagpur High Profile
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneLukeKholes
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdshivubhavv
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptxVanshNarang19
 

Último (20)

Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
The Art of Batik, template ppt aesthetic
The Art of Batik, template ppt aestheticThe Art of Batik, template ppt aesthetic
The Art of Batik, template ppt aesthetic
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past Questions
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
B. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdfB. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdf
 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, Pune
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcd
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptx
 

WindowsMobile_vs_SymbianOS

  • 1. HELSINKI UNIVERSITY OF TECHNOLOGY 3.12.2004 Telecommunications Software and Multimedia Laboratory T-111.550 Multimedia Seminar Fall 2004: Mobile Multimedia Application Platforms Microsoft Windows Mobile vs. Symbian Multimedia Juhani Nokela, 49539H Onni Valkeapää, 51505T
  • 2. Abstract This paper introduces the Windows Mobile and Symbian OS platforms and compares their multimedia capabilities. It shows that although both platforms can perform basic tasks related to multimedia (e.g. audio playback) their features are more constrained when it comes to playing video or drawing more than just basic graphics. The paper also shows that the basic working model behind the platforms is fundamentally different from each other; being a company owned by six large mobile phone manufacturers, Symbian targets at more open software development, while Windows Mobile is strictly controlled by one company, that is, Microsoft. In the beginning of the paper a broad overview of the background of the technologies is given and after that a more detailed technological description is provided. The comparison of the technologies is done using simple programming examples. Finally main findings are summarized. TABLE OF CONTENTS 1 Introduction .......................................................................................................... 2 2 Background........................................................................................................... 2 2.1 Microsoft Windows Mobile ......................................................................... 2 2.2 Symbian OS .................................................................................................. 2 3 Technology description ........................................................................................ 3 3.1 Microsoft Windows Mobile ......................................................................... 3 3.1.1 .NET Compact Framework................................................................... 3 3.1.2 Microsoft Smartphone .......................................................................... 4 3.1.3 APIs for Microsoft Smartphone............................................................ 5 3.1.4 Windows Media Player......................................................................... 5 3.2 Symbian OS .................................................................................................. 5 3.2.1 Symbian OS v7.0s ................................................................................ 5 3.2.2 Multimedia Framework (MMF) ........................................................... 7 3.2.3 Future: Symbian OS v8.0 ..................................................................... 8 4 Comparisons, Programming examples ................................................................. 9 4.1 Audio ............................................................................................................ 9 4.1.1 Microsoft Smartphone: Playing and Recording Sounds....................... 9 4.1.2 Symbian OS v.7.0: Playing and Recording Sounds............................ 10 4.2 Video .......................................................................................................... 12 4.2.1 Video playback in Microsoft Smartphone.......................................... 12 4.2.2 Video playback in Symbian OS v.7.0................................................. 13 4.3 Graphics...................................................................................................... 13 4.3.1 Graphics in Microsoft Smartphone..................................................... 13 4.3.2 Graphics in Symbian OS v.7.0s.......................................................... 13 4.4 Games ......................................................................................................... 14 4.4.1 Smartphone Game Programming ....................................................... 14 4.4.2 Symbian OS v.7.0 game programming............................................... 15 5 Summary............................................................................................................. 16 1
  • 3. 1 INTRODUCTION This paper gives an overview of the technologies used in Microsoft Windows Mobile and Symbian OS software platforms. It focuses on the multimedia features of both systems and provides a comparison between them. Because the Symbian OS is primarily used in devices closely resembling more conventional mobile phones, the paper focuses on Windows Mobile’s Smartphone platform, which is targeted at the same kind of devices. The paper first discusses the operating system related features and after that, moves on to multimedia. At the end of the paper, simple programming examples are used to demonstrate the multimedia capabilities of systems. 2 BACKGROUND 2.1 Microsoft Windows Mobile Windows Mobile [14] is Microsoft' software platform for Pocket PCs and s Smartphones. It is designed to extend the familiarity of the Windows desktop environment to mobile devices, in terms of system development and usability. Windows Mobile is based on Windows CE operating system [34], which has been a stepping- stone for Microsoft to mobile systems. There are currently three versions of Windows Mobile on the market: Windows Mobile 2002, Windows Mobile 2003 and Windows Mobile 2003 Second Edition. The most significant difference between the versions 2002 and 2003 is the latter’s support for Microsoft’s .NET Framework [12], which is a managed execution environment for applications. In mobile devices, a scaled-down version of .NET Framework is used. The newest version of Windows Mobile, i.e. Windows Mobile 2003 Second Edition, is based on Windows CE version 4.21. At the time of writing, Windows CE 5.0 is on its way to markets. Along with the new version, comes an updated version of .NET Compact Framework [21]. 2.2 Symbian OS Symbian OS is an open operating system for mobile phones. It is designed to work in environment set by 2G, 2,5G and 3G mobile phone requirements. The operating system is owned by a software licensing company called Symbian and in this is owned by some of the leading mobile phone manufacturers with following shares: [26] - Nokia 47,9 % - Ericsson 15,6 % - Sony Ericsson 13,1 % - Panasonic 10,5 % - Siemens 8,4 % - Samsung 4,5 % In addition to its owners the operating system has been licensed to six other companies that develop mobile phones around the world. Altogether these companies promote 21 phones and more is coming out all the time. Maybe the most well known Symbian phones are Nokia Communicator 9290, Nokia 7650, Sony Ericsson P800 and Siemens SX1. 2
  • 4. At the moment there are three versions of Symbian shipping out in phones. The older one, version 6.0 is slowly fading away, but still in use for example in Nokia Communicators. More relevant versions for today’s mobile communication are version 7.0 and especially version 7.0s. The biggest difference between versions 7 is that the s- version supports Java MIDP 2.0 and a completely new Multimedia Framework (MMF) is included [29]. Symbian has also released two new versions of the operating system, which are known as versions 8.0 and 8.1. For these versions there are only Nokia 6630 phone out that include version 8.0. 3 TECHNOLOGY DESCRIPTION 3.1 Microsoft Windows Mobile 3.1.1 .NET Compact Framework .NET Framework [12] is an integral Windows component for building and running different kinds of software, including web-based applications and XML Web services. Various programming languages can be used in .NET development by using compilers designed for .NET Framework. Core of the .NET Framework is composed of the Common Language Runtime (CLR) and the Framework Class Libraries (FCL). The former is a programming language independent development and managed execution environment and the latter a set of prewritten services, which provide the basic functionality used in applications [37]. Fundamental working model of the .NET Framework and its CLR resembles concepts used e.g. in Java Virtual Machine [12]. CLR’s purpose is to execute the code written for it – no matter what programming language is used. In other words, each CLR-compatible programming tool compiles its source code to a .NET executable, standardized Microsoft Intermediate Language (MSIL). When the application is finally executed, .NET Framework transforms the semi-compiled MSIL-code into a native code. This phase is called just in time compilation [32]. The Common Language Runtime is a key element of .NET Framework. It serves as a mediator that manages code at runtime and provides applications with basic services, ranging from memory management to security issues [37]. Applications developed for .NET Framework are knit together with the runtime, and their code is called managed [37]. Code that does not target the runtime, i.e. unmanaged code, can also benefit from the managed features by loading CLR into its processes [37]. .NET Compact Framework [21] is a mobile-oriented version of the full .NET Framework. It uses a subset of .NET Framework’s FCL, which is adapted to be used with mobile devices with constrained features and resources. To minimize the battery consumption, .NET Compact Framework is optimized to avoid heavy use of RAM and CPU cycles [37]. CLR of .NET Compact Framework is approximately 12 percent the size of that used in full .NET Framework [22]. It is estimated, that Microsoft Smartphone, which uses the .NET Compact Framework, holds about one third of the 1500 interfaces used in traditional desktop Windows [32]. 3
  • 5. Being a subset of .NET Framework, .NET Compact Framework allows the programming tools of desktop environments to be used in mobile system development. Clear benefit of this relationship is the ability to exploit more wide-spread programming skills of desktop environments in mobile platform programming. On the contrary, as the .NET Compact Framework is more or less scaled-down version of the desktop system, some of the distinctive characteristics of mobile environment may not receive sufficient attention due to the changed purpose of use [32]. 3.1.2 Microsoft Smartphone Smartphone is a mobile device, which combines features and functionality of mobile phone and personal digital assistant (PDA). Microsoft Smartphone [36] is a software platform, which is built on Windows Mobile and .NET Compact Framework. Microsoft also offers a platform called Pocket PC, which is targeted at the PDAs and is similar to the Microsoft Smartphone. The difference between a Smartphone and PDA stems from their usage characteristics. Smartphone is primarily used as a mobile phone and therefore the Microsoft Smartphone is well tuned for tasks such as messaging and making calls [21]. Unlike the PDA, it is also designed to be used with one hand. Currently, there are two development options available by Microsoft for programming Smartphone 2003. One is to write native code using Microsoft’s embedded Visual C++ 4.0 and the other is to write managed code through Visual Studio .NET 2003. In both cases, a Smartphone 2003 software developer kit (SDK) is needed. Figure 1 show the Smartphone emulator, which can be used to test applications. Figure 1: Microsoft Smartphone emulator 4
  • 6. 3.1.3 APIs for Microsoft Smartphone Microsoft Smartphone platform provides system developers with set of APIs especially designed to exploit the capabilities of Smartphone devices. Smartphone API [37] provides tools, among other things, for connectivity, messaging, telephony and multimedia. Microsoft Smartphone’s multimedia-related APIs are listed in the table 1 [37]. For each API, a short description of its key features is given. Table 1. Multimedia-related APIs of Microsoft Smartphone API Key features Game API (GAPI) Game API provides functions and structures which are specially needed in games-programming. The most important features of GAPI are related to handling the device’s display and hardware keys. MIDI API MIDI API is used to play MIDI file in Smartphone device. File is played by converting it to a specific WAV-format. Vibrate API Vibrate API provides functions to control the vibration feature of the device. In Smartphone, vibration is defined as song, and with vibrate API song’s amplitude, frequency and duration can be controlled. Voice Recorder Control API Voice Recorder Control API is used to record voice and sounds. It contains a function, which is used to start and stop the recording as well as playing the sound recorded. 3.1.4 Windows Media Player Windows Mobile 2003 includes Microsoft’s Windows Media Player (WMP) [35], which is an application used to play different kinds of audio and video files. There are different versions of WMP, Smartphone 2003 uses the version 9 [35]. The WMP in Smartphone supports the Windows Media audio and video playback as well as MP3 playback, but for example MPEG1 and AVI playback are not supported. Windows Media Player control is a set of APIs that can be used to add the multimedia playback capabilities of Windows Media Player to applications and web pages [35]. Windows Mobile 2003 supports the WMP ActiveX controls embedded in web pages, but does not offer any WMP APIs to be used with applications [35]. 3.2 Symbian OS 3.2.1 Symbian OS v7.0s Symbian operating system v.7.0s is an improved version of 7.0. Especially multimedia capabilities have been improved to the s-version. Some of they key aspects of the whole operating system is, that it is fully multi-tasking and has an open application environment that supports some of the most common standards in the industry (for example Java’s J2ME) [29]. The user interface has not been standardized in Symbian, so all the manufacturers can develop their own. The most used user 5
  • 7. interface in Symbian phones is Nokia’s Series 60 that has been licensed also outside Nokia [33]. Symbian has been designed especially for mobile phones, so all the different parts of the architecture have been thought that in mind. The architecture Symbian uses can be found from figure 2 [29] and from there can be seen, that telephony part has been isolated from the other parts, so they won’t interfere with it. Figure 2: Symbian OS architecture For the developers the native language of Symbian is C++ and there is available for example a development environment from Borland called C++BuilderX Mobile Edition 1.5. In addition to C++ Symbian also supports Java in the Application framework [27]. This framework supports different kind of user interfaces, internationalization and runs all the applications as separate processes as the operating system is fully multi-tasking [29]. Symbian offers to its licensees and development partners Symbian OS kit that is focused for developing the applications with C++. The C++ used in Symbian is not a pure C++, but its dialect called Symbian C++. For most of the users this is not a problem, but with some old gcc versions there might be problems. Also some differences are in the memory allocation as the standard C++ is not efficient enough due to the constraints in mobile devices [32]. In Java world Symbian supports MIDP v.2.0 with CLDC and in Communicators also PersonalJava with JavaPhone. The MIDP (The Mobile Information Device Profile) with the CLDC (Connected Limited Device Configuration) are an integral part of Java 2 Platforms Mobile Edition (J2ME) [24]. Together these ensure that standard Java runtime environment can be used in Symbian phones and this gives wide range of 6
  • 8. different Java APIs available to developers. MIDP also offers wide range of multimedia support that will make developing different multimedia applications and games much easier. Sun has made a preannouncement that PersonalJava with JavaPhone will be soon in the End Of Life (EOL) [25] and in the Symbian world it has been just in the Communicators as it is much too heavy for lightweight mobile phones. In addition to C++ and Java supports OPL (Open Programming Language) that Symbian has made open source. This language is supposed to be a powerful but relatively easy programming language. It is a basic like language that has been used for over 60 applications in the open source community [16]. Also a company named AppForge has made a development tool called CrossFire that makes possible to write .NET applications to Symbian [34]. However, major part of the application development in Symbian world is concentrated to C++ and Java. 3.2.2 Multimedia Framework (MMF) The Multimedia Framework (MMF) in Symbian OS v.7.0s was totally new compared to old versions. This framework is lightweight and provides multi-threaded environment for handling different kind of multimedia data. As today’s phones need a lot of multimedia capabilities MMF was made to support audio and video playback, streaming and recording. It also includes Image Conversion Library (ICL) that supports the most basic image types and more types can be added later through the third party plug-ins [29]. Architecture of MMF is illustrated in figure 3 [29]. Figure 3: Architecture of MMF in Symbian OS v7.0s 7
  • 9. As from the figure 3’s ICL can be seen, the framework has been made so that third parties can add supports to new file types later and therefore the framework is very extensible. To support the plug-in architecture there are different kinds of abstract and concrete classes that would help to create new plug-ins to support new media types. In here one can see the nature of Symbian as it is made to support the standards and is suppose to be an open environment for everyone. The framework nature also makes possible a concurrent processing of multiple multimedia data streams [29]. Lowest level in the framework is Media Support Library that at the moment only supports audio through the DevSound. This level only supports streaming and some coded media formats that need hardware accelerator [32]. DevSound API offers wide range of different playbacks due to historical reasons as it can play tones for example. In the next level there are different plug-ins for midi, audio, video, speech recognition and camera. The plug-in for camera only makes available a small API to use onboard camera so the basic camera functions can be used. Midi client is just a straightforward API to support playback and Midi events. The difference between audio and video is that the Symbian provides an audio engine that support some of the audio types historical used in phone industry (WAV, AU, AIFF, PCM, A-Law, u-Law, GSM 6.10 etc), for the other types like MP3 and AAC there is an interface for third party engines, for the video support there is no engine supported by Symbian so it is completely dependent on RealOne’s, PV’s or some other vendors engine [32]. 3.2.3 Future: Symbian OS v8.0 Symbian has released two new versions of its operating system that are 8.0 and 8.1. Nokia’s new 6630 phones have the 8.0 version but no other phones are shipping out yet. The difference between these two versions is not in the multimedia side, so the focus is in 8.0 in this paper. The key updates in 8.0 are hard realtime capabilities in kernel, major upgrade in Java to support for example 3D, OpenGL support and addition of Media Device Framework (MDF), which provides Hardware Abstraction Layer for multimedia hardware acceleration. Also some other enchantments have been made [30]. The improvements in kernel have been made so the performance of the Symbian OS is improved and the manufacturers can use “single core” processors that integrate telephony and application processing. With this improvement the manufacturing costs of the phones can be reduced [30]. In Java side there are made a lot of improvements. New version of CLDC 1.1 and some JSRs that include for example Mobile Media and 3D graphics are provided, so the functionality of Java is increased a lot. At the same time that the capabilities of Java are improved it is also made possible to scale applications, better than before, to different devices as the performance of the mobile phones can vary a lot [30]. 3D support for mobile gaming and multimedia is also offered by offering OpenGL ES API support. This probably is especially interesting for game manufacturers as this 8
  • 10. improves a lot the graphical capabilities of mobile phones. The Media Device Framework offers an abstraction layer for hardware so manufacturers can easily take advantages of the new hardware technologies without fearing that the investments made in software is lost. This framework offers support for video, audio and voice recognition, so it is seen as a major improvement in the industry by accelerating the time to market for new devices [22]. 4 COMPARISONS, PROGRAMMING EXAMPLES 4.1 Audio 4.1.1 Microsoft Smartphone: Playing and Recording Sounds There are two different ways of playing waveform sounds in applications designed for Windows CE based Smartphones. One is to use PlaySound-function [33] which provides basic and simple way for playing sounds. The other is to exploit the Waveform Audio API interface [21], which gives an exact control over possible audio I/O devices. It allows both playback and recording of sounds. The following code examples demonstrate the use of PlaySound-function: // plays the sound-file “sound.wav” stored in device’s memory: PlaySound (TEXT("SOUND.WAV"), NULL, SND_SYNC); // plays the sound which is associated with the event “ButtonClick” in // system registry: PlaySound (TEXT("ButtonClick"), NULL, SND_SYNC); Waveform Audio Interface provides another way to play sounds. It gives an extensive control over the audio devices available, but is to a certain extent more complex to use than PlaySound. Waveform Audio Interface uses Platform Invoke (P/Invoke) mechanism [21] to access the sound playing features provided by Windows CE, not available directly through .NET Compact Framework. The process of playing or recording a sound with Waveform Audio Interface can be divided into separate stages. First step is to determine which audio I/O devices are available at the current system. After that a waveform device for playback or recording must be opened. Before the file can be played or sound recorded, memory must be allocated for audio data blocks. After that the playback or recording can begin. The following simplified example demonstrate the use of Waveform Audio Interface: // Wave file is played using the WaveOut-class, which provides a // simple interface for playing audio-files: WaveOut wo = new WaveOut(); // File is played using the Play-method. Parameters are: file name to // be played, audio buffer size, volume for the left/right channel: wo.Play(fileName, 512*1024, 0xffff, 0xffff); 9
  • 11. // Recording of a sound is done using the WaveIn-class, which is // similar to the WaveOut: WaveIn wi = new WaveIn(); // Before the recording can begin, the Preload function must be called // to initialize the buffers and sound system. Parameters are: maximum // recording length (ms), buffer size: wi.Preload(3000, 256*1024); // The recording is started using Start method and stopped/saved using // the Save method: wi.Start(); wi.Save(fileName); 4.1.2 Symbian OS v.7.0: Playing and Recording Sounds Symbian offers a various ways to play different types of audio even without third- party plugins. WAV-files can be easily played with C++ application as the operating system does most of the work. However, the more interesting part for Symbian is the Java support so here it is shown how an audio file is played using the Mobile Media API. [35] import javax.microedition.media.*; import javax.microedition.media.control.*; import java.io.*; public class AudioPlayer implements Runnable { private MIDletController controller; private Player player; private VolumeControl volumeControl; private String url; // This makes reference to controller so AudioPlayer can // make call backs public AudioPlayer(MIDletController controller) { this.controller = controller; } // This initialization puts the player to separate thread public void initializeAudio(String url) { this.url = url; Thread initializer = new Thread(this); initializer.start(); } // In the run method the actual moving of the player through 10
  • 12. // its states is done. First a player is created to with a // source url. Then additional initializations are done // including setting the volume and finally the player is // started public void run() { try { player = Manager.createPlayer(url); controller.updateProgressGauge(); player.addPlayerListener(controller); player.realize(); controller.updateProgressGauge(); player.prefetch(); controller.updateProgressGauge(); volumeControl = (VolumeControl)player.getControl("VolumeControl"); volumeControl.setLevel(50); controller.updateProgressGauge(); player.start(); } catch (IOException ioe) { controller.showAlert("Unable to connect to resource" , ioe.getMessage()); } catch (MediaException me) { controller.showAlert("Unable to create media player" , me.getMessage()); } } // This is for a restart of the player if needed public void replay() { try{ player.start(); } catch (MediaException me) { controller.showAlert("MediaException thrown", me.getMessage()); } } // This is for setting the volume right public void setVolume(int level) { volumeControl.setLevel(level); } // This is for closing the player 11
  • 13. public void close() { player.close(); controller = null; url = null; } } MIDP also offers a way for capturing audio from an onboard hardware. The record of a media is from any input and the media playback does not necessary have to be supported. Here is a short fragment of a code that records five seconds from audio device. [35] try { // Create a Player that captures live audio. Player player = Manager.createPlayer("capture://audio"); player.realize(); // Here a recordcontrol is obtained from the player and used // for to record audio from device RecordControl rc = (RecordControl)player.getControl(“RecordControl”); ByteArrayOutputStream output = new ByteArrayOutputStream(); rc.setRecordStream(output); player.prefetch(); // this will start recording if the player has started already // otherwise it waits for the player to start rc.startRecord(); player.start(); Thread.currentThread().sleep(5000); rc.commit(); player.close(); } catch (IOException ioe) { } catch (MediaException me) { } catch (InterruptedException ie) { } 4.2 Video 4.2.1 Video playback in Microsoft Smartphone Windows Mobile supports video playback in Smartphone devices through the Windows Media Player (WMP) [35]. It supports video formats, which are encoded using Windows Media format (.wmv) or Advanced System Format (.asf). The latter is a specification, which allows video content, compressed with a wide variety of different 12
  • 14. codecs, to be stored in ASF-file and played back in WMP [14]. Playback of AVI and MPEG-1 video files is not supported in WMP of Microsoft Smartphones. There is however some third-party video player applications, which can be installed in Smartphone. PocketTV [21] is a movie player for PocketPC and Smartphone devices, which enables the playback of MPEG-1 video. DVD-to- Smartphone [6] is software, which can be used to watch DVD-movies in Smartphone. It converts and compresses the DVD-video to MPEG-4 format, allowing the data of original video to fit in small capacity memory cards used in Smartphones. 4.2.2 Video playback in Symbian OS v.7.0 As mentioned earlier Symbian, does not support native video playback. There are still third-party plugins for example RealOne’s player, Packet Videos pvPlayer and an open-source project Helix. These players support variety of media types for example realvideo, MPEG-4, H.263 etc. There is also a SmartMovie video player and converter where one can convert the video in computer and then watch it in Symbian phone. This player uses Xvid codec and the converter uses DirectShow codecs so one can download any codec from Internet to create a video for Symbian. [23] It is also possible to make a MIDlet as in audio part that creates a video player by using the Mobile Media API. However, the 7.0s version includes only a subset of Mobile Media API and that does only support audio playback, volume control and tone generator [35]. The version 8.0 however includes the full support for Mobile Media API. 4.3 Graphics 4.3.1 Graphics in Microsoft Smartphone .NET Compact Framework’s graphics-related features are constrained compared to those in full .NET Framework. Although .NET Compact Framework supports basic drawing primitives and their fill methods (i.e. ellipse, line, image, polygon, rectangle, string, and region) [36], more complicated methods for drawing, filling and transforming, as well as 3d are not supported. .NET Compact Framework is able to create transparency using the color key, but neither alpha blending nor pixel-by-pixel blending of source and background colors is supported. Smartphone’s game API (GAPI) [31] enables direct access to device’s display and video frame buffer memory, which provides a way to create faster animated graphics (see section 4.4.1). Although it is originally designed for games development, it is equally useful in applications, which require fast graphics and ability to use the entire display area. 4.3.2 Graphics in Symbian OS v.7.0s Symbian uses shared heap to share applications access to screen, keyboard, pointing devices, scalable fonts, and bitmaps. Also a generic framework, the Graphics Device Interface (GDI), is provided for drawing to any graphics device. It can be also used to drawing to windows, bitmaps or printers [29]. 13
  • 15. For mobile phones the readability of the text is very important, as many times the size of the display is small, in Symbian this problem is solved by supporting anti- aliasing for all text types. As there is no 3D support in version 7.0s the 2D graphics has still a hardware accelerator support in HAL (Hardware Abstract Layer). This feature supports for example following operations: rectangle fill, polygon drawing and rectangle invert [29]. Prior to Symbian 7.0 there was not a direct screen access implemented to Symbian. In the version 7.0 this enchantment was made so no tricks are needed anymore to bypass the window server. Symbian has two ways for easy direct screen access. CdirectScreenAccess is a classic way, which hides the complexity and gives structured callbacks. Another way is to use RdirectScreenAccess that is not an active object so developer has to develop a way to handle asynchronous nature of the Window server that CdirectScreenAccess does automatically [28]. 4.4 Games 4.4.1 Smartphone Game Programming Microsoft Smartphone’s game API (GAPI) [37] provides functions to be used especially in games programming. It can also be exploited in applications where the whole display area is needed or in applications, which need the exact control over the device’s hardware keys. GAPI addresses the need for fast graphics by allowing direct access to the display’s video frame buffer memory. It hides the operating system’s menu bar and thus allows the whole display to be used for game application. For controlling the game, GAPI allows applications to take control of the hardware keys. Smartphone APIs can also be used to add effects, such as flashing display’s backlight and vibrating the device. The following code example shows how the most common GAPI functions are used in game application. Comments explain the purpose of each function: // Device’s display can be set to full screen mode by using the // GXOpenDisplay function. The same function ensures exclusive access // to the video frame buffer. When the GX_FULLSCREEN parameter is // used, hWnd is a handle to full screen mode: GXOpenDisplay(hWnd, GX_FULLSCREEN); // Device’s display-properties can be accessed using the // GXGetDisplayProperties-function, which returns a structure with // detailed information about the display hardware: GXDisplayProperties gx_displayprop; gx_displayprop = GXGetDisplayProperties(); // Button-handling can be taken over by using GXOpenInput-function. // All hardware button presses generate appropriate messages to the // application instead of being sent to shell: GXOpenInput(); 14
  • 16. // Most suitable control layout for a game can be switched on // using the GXGetDefaultKeys-function, which returns a list of // virtual key codes. For example, the virtual key “vKA” is a key // code of the best key to use for “shoot” or “jump” button in a game. // Parameters define the orientation of the device; // GX_NORMALKEYS corresponds to portrait orientation, GX_LANDSKAPEKEYS // to landscape orientation GXKeyList gx_keylist; gx_keylist = GXGetDefaultKeys(GX_NORMALKEYS); // The GXBeginDraw function prepares the display for drawing. It // returns a pointer to the start of display memory: unsigned short *buffer = (unsigned short*)GXBeginDraw(); // GAPI operations can be suspended and resumed using GXSuspend and // GXResume functions respectively: GXSuspend(); GXResume(); // The drawing can be finished and resources released using the // following functions: GXEndDraw(); GXCloseInput(); GXCloseDisplay(); 4.4.2 Symbian OS v.7.0 game programming For Symbian the release of version 7.0s was a major when thinking about the support to gaming. MIDP 2.0 and MMF offer a various ways to make games for any Symbian phone. Even a pure handheld console Nokia N-Gage is based on Symbian architecture. However the operating system in that is the older version 6.1. As Symbian does not offer any API just for game developing the Java support is big boost for game developing. There are a lot of games even today that can be easily ported to Symbian, thanks to its Java capabilities. As Symbian’s native language is C++ there are many games developed in that environment too. Especially as the C++ code is more efficient, as its native to Symbian, there is also a lot of development done in that side. Of course the trouble in that, is that there is no common user interface, but at the moment Nokia’s Series 60 has gained popularity, so this is a possible solution for the problem. The following code is an example from a bouncing ball application. In this short code we do the following things: [28] - clean up the previous position of our ball on screen - update the position of the ball - copy the image of the ball to the new position - flush the screen buffer 15
  • 17. - reset the timer void CDDBouncingBallEngine::RunL() { // Force screen update: this required for WINS, but may // not be for all hardware iDirectScreenAccess->ScreenDevice()->Update(); TRect sourceRect(iPosition,iBallImage->SizeInPixels()); iGc->Clear(sourceRect); // Update the balls position MoveBall(); // and draw ball iGc->BitBlt(iPosition, iBallImage); iClient.Flush(); // Renew request After(TTimeIntervalMicroSeconds32(KGenerationInterval)); } 5 SUMMARY There is a big difference in the way of thinking between the Symbian and Microsoft world. As the Symbian is very modular and support wide variety of plugins and even promotes the third parties to do these, Microsoft wants to keep as much as possible to their own. Of course, this is partly due also to their different ownership. As the Microsoft is a normal limited company the Symbian is a joint-company of six big mobile phone companies. Both sides of these have their pros and cons. With open standards the Symbian lures the open source community and small businesses to develop a lot of different applications. In the other hand, Microsoft way of protecting its own software also makes application developers safer as they have to follow just one company, not many smaller ones. The other big difference comes from the developing environment. Microsoft promotes its own .NET architecture also in the mobile side as the Symbian tries to get all the best from the Java world, by following the latest standards in that. Symbian also has other developing environments, but these are not promoted as much as the Java. One could even say, that Symbian is trying to get the lead with so fashionable J2EE, J2ME and other Java speak. As a minor notice the open standards idea of Symbian can be seen from the Appforges Crossfire application that will bring .NET developing to Symbian. The support for audio is in decent level already in mobile phones. Both systems have ways to play different audio files and complete control through APIs to audio devices onboard. In a future there will not probably be any big differences in this side, as most 16
  • 18. of the limitations are due the mass memory and headphones that are not the issues of operating system. In the graphics side the battle is just going to begin. As in the past there have not really been 3D graphics, but for the future versions it is coming. Symbian already has a full steam promoting its OpenGL support in the 8.0 versions and Microsoft is probably very close too especially in its Windows CE 5.0 operating system. For consumers it is interesting to see, do we get the same kind competition as in the PC market where the difference is made in the hardware. The safer bet for direction is the way gaming consoles are coming. For few years there is always some kind of standard before the evolution takes a leap. Video has been said to be the killer application in 3G mobile phoning. It is not yet reclaimed its promises as the display side and the size of the video file has been too big for video. From today’s phones this can be seen also, as neither of the systems offer native support for example MPEG-video. This support is however supported through third party applications and for the both there is also a way to convert DVDs to mobile phones This can be seen mainly just a geek playing with the latest technology, but sure it is some kind of mark for what is coming. In gaming there is one big difference. Symbian doesn’t offer anything just for the game developing, even though it is promoting all kind of development in that side. In the contrast Microsoft is offering an API just for games in Smartphone. Symbian is still not weaponless in this issue as its offers Java support that makes available a lot of features that support game development. It can be said, that both systems offer more common features especially in multimedia side than differences. It can be seen, that Microsoft still believes its own power, but not as much as in the computer side. Of course, this is due the fact that Microsoft is the challenger with its Smartphone to the old mobile phone companies that try to keep Microsoft away from the phone industry. REFERENCES [1] Advanced Systems Format (ASF) Specification http://www.microsoft.com/windows/windowsmedia/format/asfspec.aspx [2] Appforge http://www.appforge.com/ [3] Crooks, Clayton E. 2003. Developing Tablet PC applications. Charles River Media. pp 37-38 [4] Developing Applications for Windows Mobile: FAQ http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dnppcgen/html/devmobfaq.asp [5] Differences between the .NET Compact Framework and the full .NET Framework http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dv_evtuv/html/etcondifferenceswithnetframework.asp 17
  • 19. [6] DVD-to-Smartphone http://www.smartphone.net/software_detail.asp?id=724 [7] Hiipakka, J. 2004. Symbian OS 7.0S - Multimedia Framework http://www.tml.hut.fi/Opinnot/T-111.550/T-111.550-20041019-Symbian.pdf [8] How to Create a Microsoft .NET Compact Framework-based Image Button http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dnnetcomp/html/ImageButton.asp [9] Jakl, A. The workflow of C++ game development http://www.symbian.com/developer/techlib/papers/workflowcppgame/WorkflowOfGam eDevelopment.pdf [10] Joende, M. Working with the Mobile Media API – Part 1 and 2 Part 1: http://www.symbian.com/developer/techlib/papers/Working_with_Mobile_Media_API. pdf Part 2: http://www.symbian.com/developer/techlib/papers/midptools/MobileMediapart2_v1.1.p df [11] Microsoft .NET Compact Framework http://msdn.microsoft.com/smartclient/understanding/netcf/ [12] Microsoft .NET Framework Developer Center http://msdn.microsoft.com/netframework/ [13] Microsoft .NET Framework Technology Overview http://msdn.microsoft.com/netframework/technologyinfo/overview/default.aspx [14] Mobile and Embedded Application Developer Center http://msdn.microsoft.com/mobility/windowsmobile/default.aspx [15] NewLC - The Symbian OS C++ Developer Community http://www.newlc.com/ [16] OPL-dev project http://opl-dev.sourceforge.net/ [17] Overview of the .NET Framework http://msdn.microsoft.com/library/default.asp?url=/library/en- us/cpguide/html/cpovrintroductiontonetframeworksdk.asp [18] Overview of Windows Media 9 Series http://www.microsoft.com/windows/windowsmedia/technologies/overview.aspx [19] PocketTV 18
  • 20. http://www.pockettv.com/ [20] Series60 platform http://www.series60.com/ [21] Recording and Playing Sound with the Waveform Audio Interface http://msdn.microsoft.com/mobility/samples/default.aspx?pull=/library/en- us/dnnetcomp/html/waveinout.asp#waveinout_topic_002 [22] Similarities between the .NET Compact Framework and the full .NET Framework http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dv_evtuv/html/etconsimilaritieswithnetframework.asp [23] SmartMovie http://www.lonelycatgames.com/mobile/smartmovie/smartmovie.html [24] Sun: J2ME Mobile Information Device Profile (MIDP) http://java.sun.com/products/midp/ [25] Sun: PersonalJava http://java.sun.com/products/personaljava/ [26] Symbian OS - the mobile operating system http://www.symbian.com/index.jsp [27] Symbian Developer Network http://www.symbian.com/developer/index.html [28] Symbian: Implementing Direct Screen Access http://www.symbian.com/developer/techlib/papers/dsa/direct_screen_access.pdf [29] Symbian OS Version 7.0s functional description http://www.symbian.com/technology/symbos-v7s-det.htm [30] Symbian OS Version 8.0 functional description http://www.symbian.com/technology/symbos-v8x-det.html [31] Technical Documentation for Windows Mobile http://msdn.microsoft.com/mobility/windowsmobile/howto/documentation/default.aspx [32] Mikkonen, T. 2004. Mobiiliohjelmointi. Gummerrus Kirjapaino Oy. pp. 13-15 [33] Using the PlaySound Function http://msdn.microsoft.com/library/default.asp?url=/library/en- us/wcewave/html/_wcesdk_using_the_playsound_function.asp [34] Windows CE Product Information http://msdn.microsoft.com/mobility/othertech/windowsce/default.aspx 19
  • 21. [35] Windows Media Overview and Optimization for Windows CE .NET 4.2 http://msdn.microsoft.com/library/default.asp?url=/library/en- us/dncenet/html/conwindowsmediaoverviewoptimizationforwindowscenet42.asp [36] Windows Mobile-based Smartphones http://www.microsoft.com/windowsmobile/smartphone/default.mspx [37] Windows Mobile-Based Smartphone API Reference http://msdn.microsoft.com/library/default.asp?url=/library/en- us/apisp/html/sp__windowsmobile_api_reference.asp 20