blob: 1ea88c47691cd8d4e04360fbc4ff0c012b9df0b3 [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">#define MPVDataSourceBase MDataSource</span>
00156 <span class="preprocessor"></span><span class="preprocessor">#define MPVDataSinkBase MDataSink</span>
00157 <span class="preprocessor"></span>
00158 <span class="preprocessor">#else </span><span class="comment">/* USE_MMF_DATA_PATH */</span>
00159
00160 <span class="comment">// forward declaration</span>
00161 <span class="keyword">class </span><a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>;
00162
<a name="l00168"></a><a class="code" href="classMPVDataSourceBase.html">00168</a> <span class="keyword">class </span><a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>
00169 {
00170 <span class="keyword">public</span>:
<a name="l00171"></a><a class="code" href="classMPVDataSourceBase.html#a0">00171</a> <a class="code" href="classMPVDataSourceBase.html#a0">MPVDataSourceBase</a>(TUid aType): iDataSourceType(aType) {}
<a name="l00172"></a><a class="code" href="classMPVDataSourceBase.html#a1">00172</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSourceBase.html#a1">~MPVDataSourceBase</a>() {}
00173
00194 <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;
00195
00207 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSourceBase.html#a3">BufferEmptiedL</a>(CMMFBuffer* aBuffer) = 0;
00208
00216 <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDataSourceBase.html#a4">CanCreateSourceBuffer</a>() = 0;
00217
00236 <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>)
00237 {
00238 <span class="keywordflow">return</span> NULL;
00239 }
00240
00241
00264 <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>)
00265 {
00266 <span class="keywordflow">return</span> NULL;
00267 }
00268
00269
00290 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a7">SourceThreadLogon</a>(MAsyncEventHandler&amp; <span class="comment">/*aEventHandler*/</span>)
00291 {
00292 <span class="keywordflow">return</span> KErrNone;
00293 }
00294
00305 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSourceBase.html#a8">SourceThreadLogoff</a>() {};
00306
00313 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a9">SourcePrimeL</a>()
00314 {
00315 <span class="keywordflow">return</span> 0;
00316 }
00317
00324 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a10">SourcePlayL</a>()
00325 {
00326 <span class="keywordflow">return</span> 0;
00327 };
00328
00335 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a11">SourcePauseL</a>()
00336 {
00337 <span class="keywordflow">return</span> 0;
00338 };
00339
00346 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSourceBase.html#a12">SourceStopL</a>()
00347 {
00348 <span class="keywordflow">return</span> 0;
00349 };
00350 <span class="keyword">private</span>:
00351 TUid iDataSourceType;
00352 };
00353
00354
<a name="l00360"></a><a class="code" href="classMPVDataSinkBase.html">00360</a> <span class="keyword">class </span><a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>
00361 {
00362 <span class="keyword">public</span>:
<a name="l00363"></a><a class="code" href="classMPVDataSinkBase.html#a0">00363</a> <a class="code" href="classMPVDataSinkBase.html#a0">MPVDataSinkBase</a>(TUid aType): iDataSinkType(aType) {}
<a name="l00364"></a><a class="code" href="classMPVDataSinkBase.html#a1">00364</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSinkBase.html#a1">~MPVDataSinkBase</a>() {}
00365
00386 <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;
00387
00399 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSinkBase.html#a3">BufferFilledL</a>(CMMFBuffer* aBuffer) = 0;
00400
00408 <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDataSinkBase.html#a4">CanCreateSinkBuffer</a>() = 0;
00409
00428 <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>)
00429 {
00430 <span class="keywordflow">return</span> NULL;
00431 }
00432
00453 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a6">SinkThreadLogon</a>(MAsyncEventHandler&amp; <span class="comment">/*aEventHandler*/</span>)
00454 {
00455 <span class="keywordflow">return</span> KErrNone;
00456 };
00457
00468 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDataSinkBase.html#a7">SinkThreadLogoff</a>() {};
00469
00476 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a8">SinkPrimeL</a>()
00477 {
00478 <span class="keywordflow">return</span> 0;
00479 };
00480
00487 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a9">SinkPlayL</a>()
00488 {
00489 <span class="keywordflow">return</span> 0;
00490 };
00491
00498 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a10">SinkPauseL</a>()
00499 {
00500 <span class="keywordflow">return</span> 0;
00501 };
00502
00509 <span class="keyword">virtual</span> TInt <a class="code" href="classMPVDataSinkBase.html#a11">SinkStopL</a>()
00510 {
00511 <span class="keywordflow">return</span> 0;
00512 };
00513 <span class="keyword">private</span>:
00514 TUid iDataSinkType;
00515 };
00516
00517 <span class="preprocessor">#endif</span>
00518 <span class="preprocessor"></span>
00519
00520
<a name="l00527"></a><a class="code" href="classMPVDataSource.html">00527</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>
00528 {
00529 <span class="keyword">public</span>:
<a name="l00530"></a><a class="code" href="classMPVDataSource.html#a0">00530</a> <a class="code" href="classMPVDataSource.html#a0">MPVDataSource</a>(TUid aSourceType) : <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>(aSourceType) {}
<a name="l00531"></a><a class="code" href="classMPVDataSource.html#a1">00531</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSource.html#a1">~MPVDataSource</a>() {}
00532 };
00533
00534
<a name="l00541"></a><a class="code" href="classMPVDataSink.html">00541</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>
00542 {
00543 <span class="keyword">public</span>:
<a name="l00544"></a><a class="code" href="classMPVDataSink.html#a0">00544</a> <a class="code" href="classMPVDataSink.html#a0">MPVDataSink</a>(TUid aSinkType) : <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>(aSinkType) {}
<a name="l00545"></a><a class="code" href="classMPVDataSink.html#a1">00545</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSink.html#a1">~MPVDataSink</a>() {}
00546 };
00547
00548
<a name="l00553"></a><a class="code" href="classMPVDataSourceAndSink.html">00553</a> <span class="keyword">class </span><a class="code" href="classMPVDataSourceAndSink.html">MPVDataSourceAndSink</a> :
00554 <span class="keyword">public</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a>,
00555 <span class="keyword">public</span> <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>,
00556 <span class="keyword">public</span> <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>
00557 {
00558 <span class="keyword">public</span>:
<a name="l00559"></a><a class="code" href="classMPVDataSourceAndSink.html#a0">00559</a> <a class="code" href="classMPVDataSourceAndSink.html#a0">MPVDataSourceAndSink</a>(TUid aSourceType, TUid aSinkType) :
00560 <a class="code" href="classMPVDataSourceBase.html">MPVDataSourceBase</a>(aSourceType),
00561 <a class="code" href="classMPVDataSinkBase.html">MPVDataSinkBase</a>(aSinkType)
00562 {}
<a name="l00563"></a><a class="code" href="classMPVDataSourceAndSink.html#a1">00563</a> <span class="keyword">virtual</span> <a class="code" href="classMPVDataSourceAndSink.html#a1">~MPVDataSourceAndSink</a>() {}
00564 };
00565
00566
<a name="l00581"></a><a class="code" href="classMPVAudioInput.html">00581</a> <span class="keyword">class </span><a class="code" href="classMPVAudioInput.html">MPVAudioInput</a>
00582 {
00583 <span class="keyword">public</span>:
00584 <span class="comment">//To set data format using MIME string.</span>
00585 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;
00586
00587 <span class="comment">//To set sample rate and number of channels using MIME string.</span>
00588 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
00589 , <span class="keyword">const</span> TDesC8&amp; aChannels) = 0;
00590
00591 <span class="comment">//To cancel current command.</span>
00592 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioInput.html#a2">CancelCommand</a>() = 0;
00593
00594 <span class="comment">//To reset hardware.</span>
00595 IMPORT_C <span class="keyword">virtual</span> TInt <a class="code" href="classMPVAudioInput.html#a3">Reset</a>() = 0;
00596 };
00597
00598
00599 <span class="comment">//Additional methods for DevSound audio source.</span>
<a name="l00600"></a><a class="code" href="classMPVDevSoundAudioInput.html">00600</a> <span class="keyword">class </span><a class="code" href="classMPVDevSoundAudioInput.html">MPVDevSoundAudioInput</a>
00601 {
00602 <span class="keyword">public</span>:
00603 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;
00604 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;
00605 IMPORT_C <span class="keyword">virtual</span> TPVAudioOutputSwitch <a class="code" href="classMPVDevSoundAudioInput.html#a2">OutputSwitch</a>() = 0;
00606 IMPORT_C <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDevSoundAudioInput.html#a3">FillAmrBuffersToEnd</a>() = 0;
00607 };
00608
00609
<a name="l00616"></a><a class="code" href="classMPVAudioOutput.html">00616</a> <span class="keyword">class </span><a class="code" href="classMPVAudioOutput.html">MPVAudioOutput</a>
00617 {
00618 <span class="keyword">public</span>:
00619 <span class="comment">//To set data format using MIME string.</span>
00620 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;
00621 <span class="comment">//To set sample rate and number of channels using MIME string.</span>
00622 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
00623 , <span class="keyword">const</span> TDesC8&amp; aChannels) = 0;
00624 <span class="comment">//To cancel current command.</span>
00625 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVAudioOutput.html#a2">CancelCommand</a>() = 0;
00626 <span class="comment">//To reset hardware.</span>
00627 IMPORT_C <span class="keyword">virtual</span> TInt <a class="code" href="classMPVAudioOutput.html#a3">Reset</a>() = 0;
00628 };
00629
00630
00631 <span class="comment">//Additional methods for DevSound audio sink.</span>
<a name="l00632"></a><a class="code" href="classMPVDevSoundAudioOutput.html">00632</a> <span class="keyword">class </span><a class="code" href="classMPVDevSoundAudioOutput.html">MPVDevSoundAudioOutput</a>
00633 {
00634 <span class="keyword">public</span>:
00635 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;
00636 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVDevSoundAudioOutput.html#a1">ConcealErrorForNextBuffer</a>() = 0;
00637 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;
00638 IMPORT_C <span class="keyword">virtual</span> TPVAudioOutputSwitch <a class="code" href="classMPVDevSoundAudioOutput.html#a3">OutputSwitch</a>() = 0;
00639 IMPORT_C <span class="keyword">virtual</span> TBool <a class="code" href="classMPVDevSoundAudioOutput.html#a4">FillAmrBuffersToEnd</a>() = 0;
00640 };
00641
00642
<a name="l00649"></a><a class="code" href="classMPVVideoInput.html">00649</a> <span class="keyword">class </span><a class="code" href="classMPVVideoInput.html">MPVVideoInput</a>
00650 {
00651 <span class="keyword">public</span>:
00652
00658 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;
00659
00666 IMPORT_C <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMPVVideoInput.html#a1">SetFrameRateL</a>(TReal32 aFrameRate) = 0;
00667
00673 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;
00674
00680 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;
00681 };
00682
00683
<a name="l00690"></a><a class="code" href="classMPVVideoOutput.html">00690</a> <span class="keyword">class </span><a class="code" href="classMPVVideoOutput.html">MPVVideoOutput</a>
00691 {
00692 <span class="keyword">public</span>:
00698 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;
00699
00705 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;
00706
00712 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;
00713 };
00714
00715
<a name="l00716"></a><a class="code" href="pv__plugin__interfaces_8h.html#a18">00716</a> <span class="keyword">typedef</span> TAny* <a class="code" href="pv__plugin__interfaces_8h.html#a18">RPvCommServer</a>;
00717
<a name="l00725"></a><a class="code" href="pv__plugin__interfaces_8h.html#a19">00725</a> <span class="keyword">typedef</span> <a class="code" href="classMPVPluginBase.html">MPVPluginBase</a> <a class="code" href="classMPVPluginBase.html">MPVCommServerBase</a>;
00726
<a name="l00727"></a><a class="code" href="classMPVYuvFrameBuffer.html">00727</a> <span class="keyword">class </span><a class="code" href="classMPVYuvFrameBuffer.html">MPVYuvFrameBuffer</a>
00728 {
00729 <span class="keyword">public</span>:
<a name="l00730"></a><a class="code" href="classMPVYuvFrameBuffer.html#a0">00730</a> <span class="keyword">virtual</span> <a class="code" href="classMPVYuvFrameBuffer.html#a0">~MPVYuvFrameBuffer</a>() {}
00731 <span class="keyword">virtual</span> TSize <a class="code" href="classMPVYuvFrameBuffer.html#a1">GetFrameSize</a>()<span class="keyword">const</span> = 0;
00732 };
00733
00734
<a name="l00735"></a><a class="code" href="pv__plugin__interfaces_8h.html#a7">00735</a> <span class="preprocessor">#define PV_YUV_BUFFER_DEF_WIDTH 176</span>
<a name="l00736"></a><a class="code" href="pv__plugin__interfaces_8h.html#a8">00736</a> <span class="preprocessor"></span><span class="preprocessor">#define PV_YUV_BUFFER_DEF_HEIGHT 144</span>
<a name="l00737"></a><a class="code" href="classCPVMMFPointerBuffer.html">00737</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>
00738 {
00739 <span class="keyword">public</span>:
<a name="l00740"></a><a class="code" href="classCPVMMFPointerBuffer.html#d0">00740</a> <span class="keyword">static</span> <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>* <a class="code" href="classCPVMMFPointerBuffer.html#d0">NewL</a>()
00741 {
00742 <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>* buf = <span class="keyword">new</span>(ELeave) <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>();
00743 <span class="keywordflow">return</span> buf;
00744 }
<a name="l00745"></a><a class="code" href="classCPVMMFPointerBuffer.html#a0">00745</a> <a class="code" href="classCPVMMFPointerBuffer.html#a0">~CPVMMFPointerBuffer</a>()
00746 {
00747 }
<a name="l00748"></a><a class="code" href="classCPVMMFPointerBuffer.html#a1">00748</a> <span class="keyword">virtual</span> TDes8&amp; <a class="code" href="classCPVMMFPointerBuffer.html#a1">Data</a>()
00749 {
00750 <span class="keywordflow">return</span> iPtr;
00751 }
<a name="l00752"></a><a class="code" href="classCPVMMFPointerBuffer.html#a2">00752</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>
00753 <span class="keyword"> </span>{
00754 <span class="keywordflow">return</span> iPtr;
00755 }
<a name="l00756"></a><a class="code" href="classCPVMMFPointerBuffer.html#a3">00756</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a3">SetRequestSizeL</a>(TInt aSize)
00757 {
00758 (void)(aSize);
00759 }
<a name="l00760"></a><a class="code" href="classCPVMMFPointerBuffer.html#a4">00760</a> <span class="keyword">virtual</span> TUint <a class="code" href="classCPVMMFPointerBuffer.html#a4">BufferSize</a>()<span class="keyword"> const</span>
00761 <span class="keyword"> </span>{
00762 <span class="keywordflow">return</span> iPtr.Size();
00763 }
<a name="l00764"></a><a class="code" href="classCPVMMFPointerBuffer.html#a5">00764</a> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a5">SetData</a>(TUint8* aData, TInt aLength)
00765 {
00766 iPtr.Set(aData, aLength, aLength);
00767 }
00768
<a name="l00769"></a><a class="code" href="classCPVMMFPointerBuffer.html#a6">00769</a> <span class="keywordtype">void</span> <a class="code" href="classCPVMMFPointerBuffer.html#a6">SetFrameSize</a>(<span class="keyword">const</span> TSize&amp; size)
00770 {
00771 iFrameSize = size;
00772 }
00773
00774 <span class="comment">/* MPVYuvFrameBuffer virtuals */</span>
<a name="l00775"></a><a class="code" href="classCPVMMFPointerBuffer.html#a7">00775</a> <span class="keyword">virtual</span> TSize <a class="code" href="classCPVMMFPointerBuffer.html#a7">GetFrameSize</a>()<span class="keyword">const</span>
00776 {
00777 <span class="keywordflow">return</span> iFrameSize;
00778 }
00779 <span class="keyword">private</span>:
00780 <a class="code" href="classCPVMMFPointerBuffer.html">CPVMMFPointerBuffer</a>() : CMMFDataBuffer(<a class="code" href="pv__plugin__interfaces_8h.html#a17">KPVUidYUVFrameBuffer</a>),
00781 iPtr(0, 0, 0),
00782 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>)) {};
00783
00784 <span class="keyword">private</span>:
00785 TPtr8 iPtr;
00786 TSize iFrameSize;
00787 };
00788 <span class="preprocessor">#endif //</span>
00789 <span class="preprocessor"></span>
00790
</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_20090310 </small>
</small></address>
</body>
</html>