blob: a06c62d4fd821dd6c1182549fb46cf82611a8137 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>pv_plugin_interfaces.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>pv_plugin_interfaces.h</h1><a href="pv__plugin__interfaces_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">* ==============================================================================</span>
00003 <span class="comment">* Name : pv_plugin_interfaces.h</span>
00004 <span class="comment">* Part of :</span>
00005 <span class="comment">* Interface :</span>
00006 <span class="comment">* Description : Defines the general plugin interfaces for the PV engines</span>
00007 <span class="comment">* Version : (see RELEASE field in copyright header above)</span>
00008 <span class="comment">*</span>
00009 <span class="comment">* ==============================================================================</span>
00010 <span class="comment">*/</span>
00011
00012 <span class="preprocessor">#ifndef PV_PLUGIN_INTERFACES_H_INCLUDED</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define PV_PLUGIN_INTERFACES_H_INCLUDED</span>
00014 <span class="preprocessor"></span>
00015
00016 <span class="comment">// INCLUDES</span>
00017 <span class="preprocessor">#include "pv_common_symbian_types.h"</span>
00018
00019 <span class="comment">// CONSTANTS</span>
<a name="l00026"></a><a class="code" href="pv__plugin__interfaces_8h.html#a9">00026</a> <span class="comment"></span><span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a9">KPVUidDataSrcPrime</a> = 0xFFFFFF08;
<a name="l00027"></a><a class="code" href="pv__plugin__interfaces_8h.html#a10">00027</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a10">KPVUidDataSrcPlay</a> = 0xFFFFFF09;
<a name="l00028"></a><a class="code" href="pv__plugin__interfaces_8h.html#a11">00028</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a11">KPVUidDataSrcPause</a> = 0xFFFFFF0A;
<a name="l00029"></a><a class="code" href="pv__plugin__interfaces_8h.html#a12">00029</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a12">KPVUidDataSrcStop</a> = 0xFFFFFF0B;
00030
<a name="l00044"></a><a class="code" href="pv__plugin__interfaces_8h.html#a13">00044</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a13">KPVUidDataSinkPrime</a> = 0xFFFFFF0C;
<a name="l00045"></a><a class="code" href="pv__plugin__interfaces_8h.html#a14">00045</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a14">KPVUidDataSinkPlay</a> = 0xFFFFFF0D;
<a name="l00046"></a><a class="code" href="pv__plugin__interfaces_8h.html#a15">00046</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a15">KPVUidDataSinkPause</a> = 0xFFFFFF0E;
<a name="l00047"></a><a class="code" href="pv__plugin__interfaces_8h.html#a16">00047</a> <span class="keyword">const</span> TInt <a class="code" href="pv__plugin__interfaces_8h.html#a16">KPVUidDataSinkStop</a> = 0xFFFFFF0F;
00048
00049
<a name="l00060"></a><a class="code" href="pv__plugin__interfaces_8h.html#a17">00060</a> <span class="keyword">const</span> TUid <a class="code" href="pv__plugin__interfaces_8h.html#a17">KPVUidYUVFrameBuffer</a> = {0xFFFFFF0d};
00061
00062
00063 <span class="comment">// MACROS</span>
<a name="l00067"></a><a class="code" href="pv__plugin__interfaces_8h.html#a0">00067</a> <span class="comment"></span><span class="preprocessor">#define KPVUidAudioInputInterface TPVUuid(0x194e8655,0x944c,0x402c,0xb0,0xc2,0xf7,0xbd,0xd5,0xe5,0x43,0x2f)</span>
00068 <span class="preprocessor"></span>
<a name="l00071"></a><a class="code" href="pv__plugin__interfaces_8h.html#a1">00071</a> <span class="preprocessor">#define KPVUidDevSoundAudioInputInterface TPVUuid(0x9e2c416e,0x0299,0x4775,0x88,0xfa,0x42,0x53,0xbc,0xbc,0x58,0xbf)</span>
00072 <span class="preprocessor"></span>
<a name="l00075"></a><a class="code" href="pv__plugin__interfaces_8h.html#a2">00075</a> <span class="preprocessor">#define KPVUidAudioOutputInterface TPVUuid(0xf5c5b825,0x90eb,0x4091,0xbe,0xea,0xa0,0xc3,0x9b,0xe2,0x00,0xaf)</span>
00076 <span class="preprocessor"></span>
<a name="l00079"></a><a class="code" href="pv__plugin__interfaces_8h.html#a3">00079</a> <span class="preprocessor">#define KPVUidDevSoundAudioOutputInterface TPVUuid(0x48edb46a,0x60e4,0x4e83,0xb1,0xad,0x92,0xa8,0xd4,0x07,0x04,0x7a)</span>
00080 <span class="preprocessor"></span>
<a name="l00083"></a><a class="code" href="pv__plugin__interfaces_8h.html#a4">00083</a> <span class="preprocessor">#define KPVUidVideoInputInterface TPVUuid(0xfb320151,0x6d06,0x4bd5,0xa2,0x68,0x61,0x01,0xdb,0x25,0x1c,0x0e)</span>
00084 <span class="preprocessor"></span>
<a name="l00087"></a><a class="code" href="pv__plugin__interfaces_8h.html#a5">00087</a> <span class="preprocessor">#define KPVUidVideoOutputInterface TPVUuid(0x0bb9d8a8,0x9623,0x4dec,0x84,0x0b,0xb9,0xf2,0x66,0xf8,0x4e,0x3d)</span>
00088 <span class="preprocessor"></span>
<a name="l00091"></a><a class="code" href="pv__plugin__interfaces_8h.html#a6">00091</a> <span class="preprocessor">#define KPVUidProxiedInterface TPVUuid(0xf7076653,0x6088,0x47c6,0x88,0xc1,0xb7,0xed,0x28,0xe7,0x2b,0xea)</span>
00092 <span class="preprocessor"></span>
00093
00094 <span class="comment">// DATA TYPES</span>
00095
00096
00097 <span class="comment">// FUNCTION PROTOTYPES</span>
00098
00099
00100 <span class="comment">// FORWARD DECLARATIONS</span>
00101
00102
00103
00104 <span class="comment">// CLASS DECLARATION</span>
<a name="l00110"></a><a class="code" href="classMPVPluginBase.html">00110</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classMPVPluginBase.html">MPVPluginBase</a>
00111 {
00112 <span class="keyword">public</span>:
<a name="l00113"></a><a class="code" href="classMPVPluginBase.html#a0">00113</a> <span class="keyword">virtual</span> <a class="code" href="classMPVPluginBase.html#a0">~MPVPluginBase</a>() {}
00114
00121 IMPORT_C <span class="keyword">virtual</span> <span class="keyword">const</span> RArray&lt;TPVMIMEType *&gt;&amp; <a class="code" href="classMPVPluginBase.html#a1">GetMultimediaTypesL</a>() <span class="keyword">const</span> = 0;
00122
00136 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVPluginBase.html#a2">QueryUUID</a>(<span class="keyword">const</span> TPVMIMEType&amp; aMimeType, RArray&lt;TPVUuid&gt;&amp; aUuids, <span class="keywordtype">bool</span> aExactUuidsOnly = <span class="keyword">false</span>) = 0;
00137
00148 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVPluginBase.html#a3">QueryInterface</a>(<span class="keyword">const</span> TPVUuid&amp; aUuid, TPVInterfacePtr&amp; aInterfacePtr) = 0;
00149 };
00150
00151 <span class="comment">//#define USE_MMF_DATA_PATH 1</span>
00152
00153 <span class="preprocessor">#if defined USE_MMF_DATA_PATH</span>
00154 <span class="preprocessor"></span>
00155 <span class="preprocessor">#if 0 </span><span class="comment">/* Causes a compiler warning when deriving from this class */</span>
00156 <span class="keyword">typedef</span> MDataSource <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>;
00157 <span class="keyword">typedef</span> MDataSink <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>;
00158 <span class="preprocessor">#else</span>
00159 <span class="preprocessor"></span><span class="preprocessor">#define MPVDataSourceBase MDataSource</span>
00160 <span class="preprocessor"></span><span class="preprocessor">#define MPVDataSinkBase MDataSink</span>
00161 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00162 <span class="preprocessor"></span>
00163 <span class="preprocessor">#else </span><span class="comment">/* USE_MMF_DATA_PATH */</span>
00164
00165 <span class="comment">// forward declaration</span>
00166 <span class="keyword">class </span><a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>;
00167
<a name="l00173"></a><a class="code" href="classMPVDataSourceBase.html">00173</a> <span class="keyword">class </span><a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>
00174 {
00175 <span class="keyword">public</span>:
<a name="l00176"></a><a class="code" href="classMPVDataSourceBase.html#a0">00176</a> <a class="code" href="classMPVDataSourceBase.html#a0">MPVDataSourceBase</a>(TUid aType): iDataSourceType(aType) {}
<a name="l00177"></a><a class="code" href="classMPVDataSourceBase.html#a1">00177</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSourceBase.html#a1">~MPVDataSourceBase</a>() {}
00178
00199 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSourceBase.html#a2">FillBufferL</a>(CMMFBuffer* aBuffer, <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>* aConsumer, TMediaId <span class="comment">/*aMediaId*/</span>) = 0;
00200
00212 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSourceBase.html#a3">BufferEmptiedL</a>(CMMFBuffer* aBuffer) = 0;
00213
00221 <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDataSourceBase.html#a4">CanCreateSourceBuffer</a>() = 0;
00222
00241 <span class="keyword">virtual</span> CMMFBuffer* <a class="code" href="classMPVDataSourceBase.html#a5">CreateSourceBufferL</a>(TMediaId <span class="comment">/*aMediaId*/</span>, TBool &amp;<span class="comment">/*aReference*/</span>)
00242 {
00243 <span class="keywordflow">return</span> NULL;
00244 }
00245
00246
00269 <span class="keyword">virtual</span> CMMFBuffer* <a class="code" href="classMPVDataSourceBase.html#a5">CreateSourceBufferL</a>(TMediaId <span class="comment">/*aMediaId*/</span>, CMMFBuffer&amp; <span class="comment">/*aSinkBuffer*/</span>, TBool &amp;<span class="comment">/*aReference*/</span>)
00270 {
00271 <span class="keywordflow">return</span> NULL;
00272 }
00273
00274
00295 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a7">SourceThreadLogon</a>(MAsyncEventHandler&amp; <span class="comment">/*aEventHandler*/</span>)
00296 {
00297 <span class="keywordflow">return</span> KErrNone;
00298 }
00299
00310 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSourceBase.html#a8">SourceThreadLogoff</a>() {};
00311
00318 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a9">SourcePrimeL</a>()
00319 {
00320 <span class="keywordflow">return</span> 0;
00321 }
00322
00329 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a10">SourcePlayL</a>()
00330 {
00331 <span class="keywordflow">return</span> 0;
00332 };
00333
00340 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a11">SourcePauseL</a>()
00341 {
00342 <span class="keywordflow">return</span> 0;
00343 };
00344
00351 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a12">SourceStopL</a>()
00352 {
00353 <span class="keywordflow">return</span> 0;
00354 };
00355 <span class="keyword">private</span>:
00356 TUid iDataSourceType;
00357 };
00358
00359
<a name="l00365"></a><a class="code" href="classMPVDataSinkBase.html">00365</a> <span class="keyword">class </span><a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>
00366 {
00367 <span class="keyword">public</span>:
<a name="l00368"></a><a class="code" href="classMPVDataSinkBase.html#a0">00368</a> <a class="code" href="classMPVDataSinkBase.html#a0">MPVDataSinkBase</a>(TUid aType): iDataSinkType(aType) {}
<a name="l00369"></a><a class="code" href="classMPVDataSinkBase.html#a1">00369</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSinkBase.html#a1">~MPVDataSinkBase</a>() {}
00370
00391 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSinkBase.html#a2">EmptyBufferL</a>(CMMFBuffer* aBuffer, <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>* aSupplier, TMediaId <span class="comment">/*aMediaId*/</span>) = 0;
00392
00404 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSinkBase.html#a3">BufferFilledL</a>(CMMFBuffer* aBuffer) = 0;
00405
00413 <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDataSinkBase.html#a4">CanCreateSinkBuffer</a>() = 0;
00414
00433 <span class="keyword">virtual</span> CMMFBuffer* <a class="code" href="classMPVDataSinkBase.html#a5">CreateSinkBufferL</a>(TMediaId <span class="comment">/*aMediaId*/</span>, TBool &amp;<span class="comment">/*aReference*/</span>)
00434 {
00435 <span class="keywordflow">return</span> NULL;
00436 }
00437
00458 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a6">SinkThreadLogon</a>(MAsyncEventHandler&amp; <span class="comment">/*aEventHandler*/</span>)
00459 {
00460 <span class="keywordflow">return</span> KErrNone;
00461 };
00462
00473 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSinkBase.html#a7">SinkThreadLogoff</a>() {};
00474
00481 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a8">SinkPrimeL</a>()
00482 {
00483 <span class="keywordflow">return</span> 0;
00484 };
00485
00492 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a9">SinkPlayL</a>()
00493 {
00494 <span class="keywordflow">return</span> 0;
00495 };
00496
00503 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a10">SinkPauseL</a>()
00504 {
00505 <span class="keywordflow">return</span> 0;
00506 };
00507
00514 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a11">SinkStopL</a>()
00515 {
00516 <span class="keywordflow">return</span> 0;
00517 };
00518 <span class="keyword">private</span>:
00519 TUid iDataSinkType;
00520 };
00521
00522 <span class="preprocessor">#endif</span>
00523 <span class="preprocessor"></span>
00524
00525
<a name="l00532"></a><a class="code" href="classMPVDataSource.html">00532</a> <span class="keyword">class </span><a class="code" href="classMPVDataSource.html">MPVDataSource</a> : <span class="keyword">public</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a>, <span class="keyword">public</span> <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>
00533 {
00534 <span class="keyword">public</span>:
<a name="l00535"></a><a class="code" href="classMPVDataSource.html#a0">00535</a> <a class="code" href="classMPVDataSource.html#a0">MPVDataSource</a>(TUid aSourceType) : <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>(aSourceType) {}
<a name="l00536"></a><a class="code" href="classMPVDataSource.html#a1">00536</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSource.html#a1">~MPVDataSource</a>() {}
00537 };
00538
00539
<a name="l00546"></a><a class="code" href="classMPVDataSink.html">00546</a> <span class="keyword">class </span><a class="code" href="classMPVDataSink.html">MPVDataSink</a> : <span class="keyword">public</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a>, <span class="keyword">public</span> <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>
00547 {
00548 <span class="keyword">public</span>:
<a name="l00549"></a><a class="code" href="classMPVDataSink.html#a0">00549</a> <a class="code" href="classMPVDataSink.html#a0">MPVDataSink</a>(TUid aSinkType) : <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>(aSinkType) {}
<a name="l00550"></a><a class="code" href="classMPVDataSink.html#a1">00550</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSink.html#a1">~MPVDataSink</a>() {}
00551 };
00552
00553
<a name="l00558"></a><a class="code" href="classMPVDataSourceAndSink.html">00558</a> <span class="keyword">class </span><a class="code" href="classMPVDataSourceAndSink.html">MPVDataSourceAndSink</a> :
00559 <span class="keyword">public</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a>,
00560 <span class="keyword">public</span> <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>,
00561 <span class="keyword">public</span> <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>
00562 {
00563 <span class="keyword">public</span>:
<a name="l00564"></a><a class="code" href="classMPVDataSourceAndSink.html#a0">00564</a> <a class="code" href="classMPVDataSourceAndSink.html#a0">MPVDataSourceAndSink</a>(TUid aSourceType, TUid aSinkType) :
00565 <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>(aSourceType),
00566 <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>(aSinkType)
00567 {}
<a name="l00568"></a><a class="code" href="classMPVDataSourceAndSink.html#a1">00568</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSourceAndSink.html#a1">~MPVDataSourceAndSink</a>() {}
00569 };
00570
00571
<a name="l00586"></a><a class="code" href="classMPVAudioInput.html">00586</a> <span class="keyword">class </span><a class="code" href="classMPVAudioInput.html">MPVAudioInput</a>
00587 {
00588 <span class="keyword">public</span>:
00589 <span class="comment">//To set data format using MIME string.</span>
00590 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioInput.html#a0">SetFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat, <span class="keyword">const</span> TDesC8&amp; aFmtSpecific, TInt &amp;aMaxRequestSize) = 0;
00591
00592 <span class="comment">//To set sample rate and number of channels using MIME string.</span>
00593 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioInput.html#a1">SetConfigL</a>(<span class="keyword">const</span> TDesC8&amp; aSampleRate
00594 , <span class="keyword">const</span> TDesC8&amp; aChannels) = 0;
00595
00596 <span class="comment">//To cancel current command.</span>
00597 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioInput.html#a2">CancelCommand</a>() = 0;
00598
00599 <span class="comment">//To reset hardware.</span>
00600 IMPORT_C <span class="keyword">virtual</span> TInt <a class="code" href="classMPVAudioInput.html#a3">Reset</a>() = 0;
00601 };
00602
00603
00604 <span class="comment">//Additional methods for DevSound audio source.</span>
<a name="l00605"></a><a class="code" href="classMPVDevSoundAudioInput.html">00605</a> <span class="keyword">class </span><a class="code" href="classMPVDevSoundAudioInput.html">MPVDevSoundAudioInput</a>
00606 {
00607 <span class="keyword">public</span>:
00608 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioInput.html#a0">SetPrioritySettings</a>(<span class="keyword">const</span> TMMFPrioritySettings &amp;aSettings) = 0;
00609 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioInput.html#a1">SetInputFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat, <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a> *) = 0;
00610 IMPORT_C <span class="keyword">virtual</span> TPVAudioOutputSwitch <a class="code" href="classMPVDevSoundAudioInput.html#a2">OutputSwitch</a>() = 0;
00611 IMPORT_C <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDevSoundAudioInput.html#a3">FillAmrBuffersToEnd</a>() = 0;
00612 };
00613
00614
<a name="l00621"></a><a class="code" href="classMPVAudioOutput.html">00621</a> <span class="keyword">class </span><a class="code" href="classMPVAudioOutput.html">MPVAudioOutput</a>
00622 {
00623 <span class="keyword">public</span>:
00624 <span class="comment">//To set data format using MIME string.</span>
00625 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioOutput.html#a0">SetFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat) = 0;
00626 <span class="comment">//To set sample rate and number of channels using MIME string.</span>
00627 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioOutput.html#a1">SetConfigL</a>(<span class="keyword">const</span> TDesC8&amp; aSampleRate
00628 , <span class="keyword">const</span> TDesC8&amp; aChannels) = 0;
00629 <span class="comment">//To cancel current command.</span>
00630 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioOutput.html#a2">CancelCommand</a>() = 0;
00631 <span class="comment">//To reset hardware.</span>
00632 IMPORT_C <span class="keyword">virtual</span> TInt <a class="code" href="classMPVAudioOutput.html#a3">Reset</a>() = 0;
00633 };
00634
00635
00636 <span class="comment">//Additional methods for DevSound audio sink.</span>
<a name="l00637"></a><a class="code" href="classMPVDevSoundAudioOutput.html">00637</a> <span class="keyword">class </span><a class="code" href="classMPVDevSoundAudioOutput.html">MPVDevSoundAudioOutput</a>
00638 {
00639 <span class="keyword">public</span>:
00640 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioOutput.html#a0">SetPrioritySettings</a>(<span class="keyword">const</span> TMMFPrioritySettings &amp;aSettings) = 0;
00641 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioOutput.html#a1">ConcealErrorForNextBuffer</a>() = 0;
00642 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioOutput.html#a2">SetOutputFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat, <span class="keyword">const</span> TDesC8&amp; aFmtSpecific, <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>* aConsumer, TInt &amp;aMaxRequestSize) = 0;
00643 IMPORT_C <span class="keyword">virtual</span> TPVAudioOutputSwitch <a class="code" href="classMPVDevSoundAudioOutput.html#a3">OutputSwitch</a>() = 0;
00644 IMPORT_C <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDevSoundAudioOutput.html#a4">FillAmrBuffersToEnd</a>() = 0;
00645 };
00646
00647
<a name="l00654"></a><a class="code" href="classMPVVideoInput.html">00654</a> <span class="keyword">class </span><a class="code" href="classMPVVideoInput.html">MPVVideoInput</a>
00655 {
00656 <span class="keyword">public</span>:
00657
00663 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoInput.html#a0">SetFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat) = 0;
00664
00671 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoInput.html#a1">SetFrameRateL</a>(TReal32 aFrameRate) = 0;
00672
00678 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoInput.html#a2">SetVideoFrameSizeL</a>(<span class="keyword">const</span> TSize&amp; aSize) = 0;
00679
00685 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoInput.html#a3">GetVideoFrameSizeL</a>(TSize&amp; aSize) <span class="keyword">const</span> = 0;
00686 };
00687
00688
<a name="l00695"></a><a class="code" href="classMPVVideoOutput.html">00695</a> <span class="keyword">class </span><a class="code" href="classMPVVideoOutput.html">MPVVideoOutput</a>
00696 {
00697 <span class="keyword">public</span>:
00703 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoOutput.html#a0">SetFormatL</a>(<span class="keyword">const</span> TDesC8&amp; aFormat) = 0;
00704
00710 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoOutput.html#a1">SetVideoFrameSizeL</a>(<span class="keyword">const</span> TSize&amp; aSize) = 0;
00711
00717 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoOutput.html#a2">GetVideoFrameSizeL</a>(TSize&amp; aSize) <span class="keyword">const</span> = 0;
00718 };
00719
00720
<a name="l00721"></a><a class="code" href="pv__plugin__interfaces_8h.html#a18">00721</a> <span class="keyword">typedef</span> TAny* <a class="code" href="pv__plugin__interfaces_8h.html#a18">RPvCommServer</a>;
00722
<a name="l00730"></a><a class="code" href="pv__plugin__interfaces_8h.html#a19">00730</a> <span class="keyword">typedef</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a> <a class="code" href="classMPVPluginBase.html">MPVCommServerBase</a>;
00731
<a name="l00732"></a><a class="code" href="classMPVYuvFrameBuffer.html">00732</a> <span class="keyword">class </span><a class="code" href="classMPVYuvFrameBuffer.html">MPVYuvFrameBuffer</a>
00733 {
00734 <span class="keyword">public</span>:
<a name="l00735"></a><a class="code" href="classMPVYuvFrameBuffer.html#a0">00735</a> <span class="keyword">virtual</span> <a class="code" href="classMPVYuvFrameBuffer.html#a0">~MPVYuvFrameBuffer</a>() {}
00736 <span class="keyword">virtual</span> TSize <a class="code" href="classMPVYuvFrameBuffer.html#a1">GetFrameSize</a>()<span class="keyword">const</span> = 0;
00737 };
00738
00739
<a name="l00740"></a><a class="code" href="pv__plugin__interfaces_8h.html#a7">00740</a> <span class="preprocessor">#define PV_YUV_BUFFER_DEF_WIDTH 176</span>
<a name="l00741"></a><a class="code" href="pv__plugin__interfaces_8h.html#a8">00741</a> <span class="preprocessor"></span><span class="preprocessor">#define PV_YUV_BUFFER_DEF_HEIGHT 144</span>
<a name="l00742"></a><a class="code" href="classCPVMMFPointerBuffer.html">00742</a> <span class="preprocessor"></span><span class="keyword">class </span><a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a> : <span class="keyword">public</span> CMMFDataBuffer, <span class="keyword">public</span> <a class="code" href="classMPVYuvFrameBuffer.html">MPVYuvFrameBuffer</a>
00743 {
00744 <span class="keyword">public</span>:
<a name="l00745"></a><a class="code" href="classCPVMMFPointerBuffer.html#d0">00745</a> <span class="keyword">static</span> <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>* <a class="code" href="classCPVMMFPointerBuffer.html#d0">NewL</a>()
00746 {
00747 <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>* buf = <span class="keyword">new</span>(ELeave) <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>();
00748 <span class="keywordflow">return</span> buf;
00749 }
<a name="l00750"></a><a class="code" href="classCPVMMFPointerBuffer.html#a0">00750</a> <a class="code" href="classCPVMMFPointerBuffer.html#a0">~CPVMMFPointerBuffer</a>()
00751 {
00752 }
<a name="l00753"></a><a class="code" href="classCPVMMFPointerBuffer.html#a1">00753</a> <span class="keyword">virtual</span> TDes8&amp; <a class="code" href="classCPVMMFPointerBuffer.html#a1">Data</a>()
00754 {
00755 <span class="keywordflow">return</span> iPtr;
00756 }
<a name="l00757"></a><a class="code" href="classCPVMMFPointerBuffer.html#a2">00757</a> <span class="keyword">virtual</span> <span class="keyword">const</span> TDesC8&amp; <a class="code" href="classCPVMMFPointerBuffer.html#a1">Data</a>()<span class="keyword"> const</span>
00758 <span class="keyword"> </span>{
00759 <span class="keywordflow">return</span> iPtr;
00760 }
<a name="l00761"></a><a class="code" href="classCPVMMFPointerBuffer.html#a3">00761</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a3">SetRequestSizeL</a>(TInt aSize)
00762 {
00763 (void)(aSize);
00764 }
<a name="l00765"></a><a class="code" href="classCPVMMFPointerBuffer.html#a4">00765</a> <span class="keyword">virtual</span> TUint <a class="code" href="classCPVMMFPointerBuffer.html#a4">BufferSize</a>()<span class="keyword"> const</span>
00766 <span class="keyword"> </span>{
00767 <span class="keywordflow">return</span> iPtr.Size();
00768 }
<a name="l00769"></a><a class="code" href="classCPVMMFPointerBuffer.html#a5">00769</a> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a5">SetData</a>(TUint8* aData, TInt aLength)
00770 {
00771 iPtr.Set(aData, aLength, aLength);
00772 }
00773
<a name="l00774"></a><a class="code" href="classCPVMMFPointerBuffer.html#a6">00774</a> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a6">SetFrameSize</a>(<span class="keyword">const</span> TSize&amp; size)
00775 {
00776 iFrameSize = size;
00777 }
00778
00779 <span class="comment">/* MPVYuvFrameBuffer virtuals */</span>
<a name="l00780"></a><a class="code" href="classCPVMMFPointerBuffer.html#a7">00780</a> <span class="keyword">virtual</span> TSize <a class="code" href="classCPVMMFPointerBuffer.html#a7">GetFrameSize</a>()<span class="keyword">const</span>
00781 {
00782 <span class="keywordflow">return</span> iFrameSize;
00783 }
00784 <span class="keyword">private</span>:
00785 <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>() : CMMFDataBuffer(<a class="code" href="pv__plugin__interfaces_8h.html#a17">KPVUidYUVFrameBuffer</a>),
00786 iPtr(0, 0, 0),
00787 iFrameSize(TSize(<a class="code" href="pv__plugin__interfaces_8h.html#a7">PV_YUV_BUFFER_DEF_WIDTH</a>, <a class="code" href="pv__plugin__interfaces_8h.html#a8">PV_YUV_BUFFER_DEF_HEIGHT</a>)) {};
00788
00789 <span class="keyword">private</span>:
00790 TPtr8 iPtr;
00791 TSize iFrameSize;
00792 };
00793 <span class="preprocessor">#endif //</span>
00794 <span class="preprocessor"></span>
00795
</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>PV Author Engine</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090120 </small>
</small></address>
</body>
</html>