devsoundextensions/effects/EffectTest/EffectConsoleTest.h
author hgs
Mon, 18 Oct 2010 12:47:26 +0100
changeset 4 9d4397b300d1
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk44_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:  Effects console test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#ifndef EFFECTSCONSOLETEST
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#define EFFECTSCONSOLETEST
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
//  INCLUDES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <e32svr.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include <e32cons.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <mdaaudiosampleplayer.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
#include <MdaAudioSampleEditor.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
#include <AudioEffectBase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
#include <MAudioEffectObserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
#include <AudioEqualizerBase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
#include <MAudioEqualizerObserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
#include <EnvironmentalReverbBase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
#include <MEnvironmentalReverbObserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
#include <StereoWideningBase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
#include <MStereoWideningObserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
#include <customInterfaceUtility.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
_LIT(KAMRTestFile,"c:\\test.amr");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
_LIT(KWAVTestFile,"c:\\test.wav");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
// -----> CmyActiveScheduler (definition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
class CmyActiveScheduler : public CActiveScheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	void Error (TInt aError) const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
// -----> CActiveConsole (definition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
// An abstract class which provides the facility to issue key requests.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
class CActiveConsole : public CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	  // Construction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
	CActiveConsole(CConsoleBase* aConsole);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	static CActiveConsole* NewLC(CConsoleBase* aConsole) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
	~CActiveConsole();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
	  // Issue request
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
	void RequestCharacter();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
	  // Cancel request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	  // Defined as pure virtual by CActive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	  // implementation provided by this class.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	void DoCancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	  // Service completed request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	  // Defined as pure virtual by CActive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	  // implementation provided by this class,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	void RunL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	  // Called from RunL() - an implementation must be provided
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	  // by derived classes to handle the completed request
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	virtual void ProcessKeyPress(TChar aChar) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	  // Data members defined by this class
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	CConsoleBase* iConsole; // A console for reading from
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
// -----> CConsoleTest (definition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
// This class is derived from CActiveConsole.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
// Request handling: accepts input from the keyboard and outputs the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
// test result through test harness.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
class CConsoleTest : public CActiveConsole,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
				     public MMdaAudioPlayerCallback,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
				     public MMdaObjectStateChangeObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
 					 public MAudioEffectObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
					 //public MAudioEqualizerObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	enum TMenu
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
		EMain,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
		EPlay,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
		ERecord,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		EConvert,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		EEqualizer,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
		EBandId,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		EBandLevel,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		EEnvironmentalReverb1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
		EEnvironmentalReverb2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
		EStereoWidening,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
		EStereoWideningLevel
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	// Destruction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	~CConsoleTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	  // Static constuction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
	static CConsoleTest *NewLC (CConsoleBase* aConsole);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	static CConsoleTest *NewL(CConsoleBase* aConsole);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	virtual void MapcPlayComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	virtual void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorcCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
	virtual void EffectChanged( const CAudioEffect* aAudioEffect, TUint8 aEvent );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	  // Service request
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	void ProcessKeyPress(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
	void ShowMenu();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	CConsoleTest(CConsoleBase* aConsole);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	void ProcessMain(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	void ProcessPlayL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	void ProcessEqualizerL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	void ProcessBandId(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	void ProcessBandLevelL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	void InitializeTestData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	void ProcessEnvironmentalReverbL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	void TestCase1();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	void TestCase2();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	void TestCase3();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	void ProcessStereoWideningL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	void ProcessStereoWideningLevelL(TChar aChar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	TInt iInitStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	TMenu iMenu;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	TMenu iParentMenu;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	TUint32 iBandId;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	CCustomInterfaceUtility* iCIUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	CMdaAudioPlayerUtility* iAudioPlayer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	CAudioEqualizer* iPlayerAudioEqualizer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	CEnvironmentalReverb* iPlayerEnvironmentalReverb;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	CStereoWidening* iPlayerStereoWidening;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	CMdaAudioRecorderUtility* iAudioRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
	CAudioEqualizer* iRecorderAudioEqualizer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	CEnvironmentalReverb* iRecorderEnvironmentalReverb;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
	CStereoWidening* iRecorderStereoWidening;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
	CMdaAudioConvertUtility* iAudioConverter;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	CAudioEqualizer* iEqualizer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	CEnvironmentalReverb* iEnvironmentalReverb;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	CStereoWidening* iStereoWidening;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	CAudioEqualizer* iAudioEqualizer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	TBuf<100> iSampleFilePath;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	RFs  iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
	RArray<TInt> iGoodData;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	RArray<TInt> iBadData;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
// Main
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
//////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
_LIT(KTxtDBTest, "Effects Console Test");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
LOCAL_C void doTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
GLDEF_C TInt E32Main() // main function called by E32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	__UHEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	TRAPD(error, doTestL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
	__ASSERT_ALWAYS(!error,User::Panic(KTxtDBTest, error));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
	delete cleanup; // destroy clean-up stack
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
	__UHEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	return 0; // and return
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
#endif