root/applications/osmo4_sym/osmo4_view.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
 *                      GPAC - Multimedia Framework C SDK
 *
 *                      Authors: Jean Le Feuvre
 *                      Copyright (c) Telecom ParisTech 2006-2012
 *                                      All rights reserved
 *
 *  This file is part of GPAC / Symbian GUI player
 *
 *  GPAC is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *
 *  GPAC is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; see the file COPYING.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */


#ifndef __OSMO4_VIEW_H__
#define __OSMO4_VIEW_H__

// INCLUDES
#include <coecntrl.h>

#if defined(__SERIES60_3X__)
#include <remconcoreapitargetobserver.h>
#include <remconcoreapitarget.h>
#include <remconinterfaceselector.h>
#endif


#include <gpac/terminal.h>
#include <gpac/thread.h>


// CLASS DECLARATION
class COsmo4AppView : public CCoeControl
#if defined(__SERIES60_3X__)
        ,MRemConCoreApiTargetObserver
#endif

{
public: // New methods

        /**
        * NewL.
        * Two-phased constructor.
        * Create a COsmo4AppView object, which will draw itself to aRect.
        * @param aRect The rectangle this view will be drawn to.
        * @return a pointer to the created instance of COsmo4AppView.
        */
        static COsmo4AppView* NewL( const TRect& aRect );

        /**
        * NewLC.
        * Two-phased constructor.
        * Create a COsmo4AppView object, which will draw itself
        * to aRect.
        * @param aRect Rectangle this view will be drawn to.
        * @return A pointer to the created instance of COsmo4AppView.
        */
        static COsmo4AppView* NewLC( const TRect& aRect );

        /**
        * ~COsmo4AppView
        * Virtual Destructor.
        */
        virtual ~COsmo4AppView();

public:  // Functions from base classes

        /**
        * From CCoeControl, Draw
        * Draw this COsmo4AppView to the screen.
        * @param aRect the rectangle of this view that needs updating
        */
        void Draw( const TRect& aRect ) const;

        /**
        * From CoeControl, SizeChanged.
        * Called by framework when the view size is changed.
        */
        virtual void SizeChanged();

#ifndef GPAC_GUI_ONLY
        GF_User *GetUser() {
                return &m_user;
        }
#else
        GF_User *GetUser() {
                return NULL;
        }
#endif
        void SetupLogs();
        void MessageBox(const char *text, const char *title);

        virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);

#if defined(__SERIES60_3X__)
        void MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct);
#endif

        TInt OnTick();

        void Shutdown();

        void Connect(const char *url);
        void ShowHide(Bool show);
        Bool EventProc(GF_Event *evt);

#ifndef GPAC_GUI_ONLY
        GF_Terminal *m_term;
#endif

private: // Constructors

        /**
        * ConstructL
        * 2nd phase constructor.
        * Perform the second phase construction of a
        * COsmo4AppView object.
        * @param aRect The rectangle this view will be drawn to.
        */
        void ConstructL(const TRect& aRect);

        void DisplayRTI();

        /**
        * COsmo4AppView.
        * C++ default constructor.
        */
        COsmo4AppView();

        CPeriodic *m_pTimer;

        RWindow m_window;
        RWsSession m_session;
#ifndef GPAC_GUI_ONLY
        GF_SystemRTInfo m_rti;
#endif

#if defined(__SERIES60_3X__)
        CRemConInterfaceSelector *selector;
        CRemConCoreApiTarget *target;
#endif


public:
        u32 last_title_update;
        FILE *m_Logs;
        Bool do_log;
        Bool show_rti;
#ifndef GPAC_GUI_ONLY
        GF_Mutex *m_mx;
        GF_User m_user;
#endif
};


#endif // __OSMO4_VIEW_H__

// End of File


/* [<][>][^][v][top][bottom][index][help] */