CSurfaceStream Class Reference

class CSurfaceStream : public CBase

CSurfaceStream internal

Inherits from

Public Member Functions
~CSurfaceStream()
SymbianStreamBuffer AcquireReadBuffer()
SymbianStreamBuffer AcquireWriteBuffer()
intAddObserver(SymOwfStreamCallback, void *, MultipleSymbianStreamEventBits)
intAddObserver(SymbianStreamCallback, TInt32, TInt32, void *)
voidAddReference()
TInt BufferHandleToIndex(SymbianStreamBuffer)
TInt BytesPerPixel(TUidPixelFormat)
TInt CheckBufferNumber(TInt, TRequestStatus *, TRequestStatus *, TRequestStatus *)
CSurfaceStream *FromHandle(SymbianStreamType)
void *GetBufferPtrL(SymbianStreamBuffer)
voidGetHeader(khronos_int32_t *, khronos_int32_t *, khronos_int32_t *, SymOwfPixelFormat *, khronos_int32_t *)
CSurfaceStream *NewL(const TSurfaceId &)
CSurfaceStream *NewLC(const TSurfaceId &)
intNotifyObservers(TInt32)
voidProcessNotifications(TInt32, TInt32, TInt32, TInt32, TInt32 *)
TInt ReleaseReadBuffer(SymbianStreamBuffer)
voidReleaseReference()
voidReleaseWriteBuffer(SymbianStreamBuffer)
TBool RemainingReference()
intRemoveObserver(SymOwfStreamCallback, void *, MultipleSymbianStreamEventBits)
intRemoveObserver(TInt32, void *)
voidSetAllNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *)
voidSetFlipState(TBool)
voidSetNewNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *, TInt32)
voidSetProtectionFlag(TBool)
const TSurfaceId &SurfaceId()
SymbianStreamType ToHandle()
Private Member Functions
CSurfaceStream()
TInt AddNewGlobalNotification(TRequestStatus *, TInt)
voidAvailable(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)
voidCancelNotifications()
voidConstructL(const TSurfaceId &)
voidDisplayed(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)
voidDisplayedXTimes(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)
TBool EndUpdateNotifications(TInt, TInt, TInt32, const TRegion *)
TInt GetReadBufferIndex()
COpenWfcStreamMap &GetSingletonL()
TInt GetWriteBufferIndex()
SymbianStreamBuffer IndexToReadHandle(TInt)
SymbianStreamBuffer IndexToWriteHandle(TInt)
TBool NotifyComposerContext(TInt32, TInt, SYMOWF_CONTENT_UPDATED_PARAM *)
voidRequestComplete(TThreadId &, TRequestStatus *&, TInt &, TInt)
voidResetCallBackData(void *, TInt32)
voidSetNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *, TInt32, const TNewGlobalNotifications &)
voidSetReadBufferIndex(TInt)
TBool StartUpdateNotifications(TInt, SYMOWF_CONTENT_UPDATED_PARAM &)
TInt Stride(TInt, TUidPixelFormat)
voidSurfaceInfoL(const TSurfaceId &, RSurfaceManager::TInfoBuf &)
TBool UpdateNotifications(TInt, TInt, TInt32, const TRegion *)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Public Member Enumerations
enumCallBackOperations { EDefaultOperation, ECheckVisibleOperation }
Private Member Enumerations
enumFlippedTarget { EFlipNotSet, EFlippedTargetNormal, EFlippedTargetFlipped }
Private Attributes
const TIntBUFFER_READ_HANDLE_BASE
const TIntBUFFER_WRITE_HANDLE_BASE
const TIntBUFFER_WRITE_UPDATE_OVERWRITE
TInt iAcquiredWriteBuffer
RChunk iBufferChunk
TBufferInfo *iBufferInfo
TAny *iCallBackHighestPriority
RArray< TCallBackEntry >iCallBacks
RFastLock iCallBacksMutex
FlippedTarget iFlipState
RArray< TGlobalNotification >iGlobalNotifications
RSurfaceManager::TSurfaceInfoV01 iInfo
FlippedTarget iNewFlip
TInt iNumberOfScreenAttachedAvailableNotif
TInt iNumberOfScreenAttachedDisplayedNotif
TInt iNumberOfScreenAttachedDisplayedXNotif
TBool iProtected
TInt iReadBuffer
TInt iRefCount
RFastLock iRefCountMutex
TSurfaceId iStreamProxySurfaceId
TSurfaceId iSurfaceId

Constructor & Destructor Documentation

CSurfaceStream()

CSurfaceStream()[private]

Constructor for performing 1st stage construction

~CSurfaceStream()

~CSurfaceStream()

Destructor.

Member Functions Documentation

AcquireReadBuffer()

SymbianStreamBuffer AcquireReadBuffer()

Acquires read buffer for stream. For > 1 buffer streams this function doesn't block, but simply returns WFC_INVALID_HANDLE if no buffer is available for reading. For 1 buffer stream the caller is blocked until the buffer is ready for reading (the reader has committed the buffer, that is.)

An example sequence for 3 buffer stream where producer produces frames approx. after every ~5th time unit. Consumer consumes buffers at constant rate of 1buf/time unit. Pframe is the number/handle of buffer that is being written by the producer (let's assume that it takes 2 time units for producer to produce a frame/buffer.) Cframe is the number/ handle of the buffer the consumer receives from AcquireReadBuffer(). "i" stands for WFC_INVALID_HANDLE:

Time: 0 5 10 15 20 25 Pframe: 0 1 2 0 1 ... Cframe: ii00000111112222200000111...

An example sequence for 3 buffer stream where producer produces frames approx. after every ~5th time unit. Consumer consumes buffers at constant rate of 1buf/time unit. Pframe is the number/handle of buffer that is being written by the producer (let's assume that it takes 2 time units for producer to produce a frame/buffer.) Cframe is the number/ handle of the buffer the consumer receives from AcquireReadBuffer(). "i" stands for WFC_INVALID_HANDLE:

 Time:   0    5    10   15   20   25
 Pframe: 0    1    2    0    1    ...
 Cframe: ii00000111112222200000111...

AcquireWriteBuffer()

SymbianStreamBuffer AcquireWriteBuffer()

Acquires write buffer for stream.

Returns handle to a buffer that can be used to write data into stream. If no clean buffer is available, invalid handle is returned.

Returns handle to a buffer that can be used to write data into stream. If no clean buffer is available, invalid handle is returned.

AddNewGlobalNotification(TRequestStatus *, TInt)

TInt AddNewGlobalNotification(TRequestStatus *aStatusDisplayed,
TIntaAssociatedScreens
)[private]

Parameters

TRequestStatus * aStatusDisplayed
TInt aAssociatedScreens

AddObserver(SymOwfStreamCallback, void *, MultipleSymbianStreamEventBits)

intAddObserver(SymOwfStreamCallbackobserver,
void *data,
MultipleSymbianStreamEventBitsaEvents
)

Add event observer for stream. Observers are served in first-come-first-serve fashion. That is, newest observer is always placed at the end of the chain. If the observer is already in the chain, it's popped out and moved to the end of the chain.

Parameters

SymOwfStreamCallback observerObserver (callback function) who should be notified when something interesting happens in the stream.
void * dataAdditional data to pass to callback function
MultipleSymbianStreamEventBits aEvents

AddObserver(SymbianStreamCallback, TInt32, TInt32, void *)

intAddObserver(SymbianStreamCallbackaObserver,
TInt32aEvent,
TInt32aScreenNumber,
void *aData
)

Add event observer for stream. Observers are served in first-come-first-serve fashion. That is, newest observer is always placed at the end of the chain.

Parameters

SymbianStreamCallback aObserver
TInt32 aEvent
TInt32 aScreenNumber
void * aData

AddReference()

voidAddReference()

Increase stream's reference count by one.

Available(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)

voidAvailable(TInt32aEvent,
TInt32aSerialNumber,
ContentUpdatedParams *aParams,
void *aCallBackData,
TInt32 *aReturnMask
)[private]

Processes the available observer

Parameters

TInt32 aEventEvents map to identify the operation to be executed.
TInt32 aSerialNumberA number used to identify the composition operation
ContentUpdatedParams * aParams
void * aCallBackDataThe observer data stored in the container of observers
TInt32 * aReturnMaskParameter to be retrieved by composer, representing the event to be processed

BufferHandleToIndex(SymbianStreamBuffer)

TInt BufferHandleToIndex(SymbianStreamBufferaBuff)

Parameters

SymbianStreamBuffer aBuff

BytesPerPixel(TUidPixelFormat)

TInt BytesPerPixel(TUidPixelFormataPixelFormat)[static]

A helper function that returns the bytes per pixel for a given pixel format UID

Parameters

TUidPixelFormat aPixelFormatPixel format UID to convert

CancelNotifications()

voidCancelNotifications()[private]

Cancels all active notifications by completeting the associated requests

CheckBufferNumber(TInt, TRequestStatus *, TRequestStatus *, TRequestStatus *)

TInt CheckBufferNumber(TIntaBuffer,
TRequestStatus *aStatusDisplayed,
TRequestStatus *aStatusDispXTimes,
TRequestStatus *aStatusConsumed
)

A function that checks the validity of the new buffer provided by SUS

When the contents of a surface change, this function gets called by the MCompositionSurfaceUpdate implementation. If the buffer is invalid all request statuses will be completed with KErrArgument

Parameters

TInt aBufferThe buffer of the surface to be used in composition. Integer starting from 0.
TRequestStatus * aStatusDisplayedA request status object or NULL.
TRequestStatus * aStatusDispXTimesA request status object or NULL.
TRequestStatus * aStatusConsumedA request status object or NULL.

ConstructL(const TSurfaceId &)

voidConstructL(const TSurfaceId &aId)[private]

Symbian's default constructor for performing 2nd stage construction

Parameters

const TSurfaceId & aId

Displayed(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)

voidDisplayed(TInt32aEvent,
TInt32aSerialNumber,
ContentUpdatedParams *aParams,
void *aCallBackData,
TInt32 *aReturnMask
)[private]

Processes the available observer

Parameters

TInt32 aEventEvents map to identify the operation to be executed.
TInt32 aSerialNumberA number used to identify the composition operation
ContentUpdatedParams * aParams
void * aCallBackDataThe observer data stored in the container of observers
TInt32 * aReturnMaskParameter to be retrieved by composer, representing the event to be processed

DisplayedXTimes(TInt32, TInt32, ContentUpdatedParams *, void *, TInt32 *)

voidDisplayedXTimes(TInt32aEvent,
TInt32aSerialNumber,
ContentUpdatedParams *aParams,
void *aCallBackData,
TInt32 *aReturnMask
)[private]

Processes the available observer

Parameters

TInt32 aEventEvents map to identify the operation to be executed.
TInt32 aSerialNumberA number used to identify the composition operation
ContentUpdatedParams * aParams
void * aCallBackDataThe observer data stored in the container of observers
TInt32 * aReturnMaskParameter to be retrieved by composer, representing the event to be processed

EndUpdateNotifications(TInt, TInt, TInt32, const TRegion *)

TBool EndUpdateNotifications(TIntaScreenNum,
TIntaBufferNum,
TInt32aUpdatedFlags,
const TRegion *aRegion
)[private]

Notifies the composer that process of updating the content has finisshed

The composer releases the content mutex and triggers a new composition

Parameters

TInt aScreenNum
TInt aBufferNumThe buffer number to be updated
TInt32 aUpdatedFlagsThe events that triggers this function call
const TRegion * aRegionThe sub-area that has the updates. If NULL, the whole surface is considered changed.

FromHandle(SymbianStreamType)

CSurfaceStream *FromHandle(SymbianStreamTypeaNativeStreamHandle)[static]

Helper to resolve handle to stream object

Parameters

SymbianStreamType aNativeStreamHandle

GetBufferPtrL(SymbianStreamBuffer)

void *GetBufferPtrL(SymbianStreamBufferbuffer)

Returns pointer to pixel buffer.

Parameters

SymbianStreamBuffer bufferHandle of buffer

GetHeader(khronos_int32_t *, khronos_int32_t *, khronos_int32_t *, SymOwfPixelFormat *, khronos_int32_t *)

voidGetHeader(khronos_int32_t *width,
khronos_int32_t *height,
khronos_int32_t *stride,
SymOwfPixelFormat *format,
khronos_int32_t *pixelSize
)

Get stream "frame header". Can be used to query all or some of the frame properties.

Passing a NULL pointer implies that particular value is of no interest to caller. E.g. GetHeader(stream, &w, &h, NULL, NULL, NULL); would only fetch width & height parameters.

Passing a NULL pointer implies that particular value is of no interest to caller. E.g. owfNativeStreamGetHeader(stream, &w, &h, NULL, NULL, NULL); would only fetch width & height parameters.

Parameters

khronos_int32_t * widthPointer to location where width parameter should be saved
khronos_int32_t * heightPointer to location where height parameter should be saved
khronos_int32_t * stridePointer to location where stride (row size in bytes) parameter should be saved
SymOwfPixelFormat * format
khronos_int32_t * pixelSizePointer to location where pizelSize (pixel size in bytes) if the format has more than 8 bits. For the formats with fewer than 8 bits per pixel, or ones that do not use packed pixel the parameter is a negative number parameter should be saved

GetReadBufferIndex()

TInt GetReadBufferIndex()[private]

GetSingletonL()

COpenWfcStreamMap &GetSingletonL()[private, static]

GetWriteBufferIndex()

TInt GetWriteBufferIndex()[private]

IndexToReadHandle(TInt)

SymbianStreamBuffer IndexToReadHandle(TIntaIndex)[private, static]

Parameters

TInt aIndex

IndexToWriteHandle(TInt)

SymbianStreamBuffer IndexToWriteHandle(TIntaIndex)[private, static]

Parameters

TInt aIndex

NewL(const TSurfaceId &)

CSurfaceStream *NewL(const TSurfaceId &aId)[static]

Two-phased constructor.

Parameters

const TSurfaceId & aId

NewLC(const TSurfaceId &)

CSurfaceStream *NewLC(const TSurfaceId &aId)[static]

Two-phased constructor.

Parameters

const TSurfaceId & aId

NotifyComposerContext(TInt32, TInt, SYMOWF_CONTENT_UPDATED_PARAM *)

TBool NotifyComposerContext(TInt32aScreenNumber,
TIntaOp,
SYMOWF_CONTENT_UPDATED_PARAM *aParam
)[private]

Notifies the composer that the content has been updated.

Parameters

TInt32 aScreenNumberScreen ID used to identify the target composer
TInt aOpThe Operation expected the callback to execute
SYMOWF_CONTENT_UPDATED_PARAM * aParamParameter containing aaditional information to push/pop from targetet composer

NotifyObservers(TInt32)

intNotifyObservers(TInt32aEvent)

Notifies the observers not associated with a context. The aim is to support legacy SI behavior.

Parameters

TInt32 aEventObserver identifier

ProcessNotifications(TInt32, TInt32, TInt32, TInt32, TInt32 *)

voidProcessNotifications(TInt32aEvent,
TInt32aScreenNumber,
TInt32aOperation,
TInt32aSerialNumber,
TInt32 *aReturnMask
)

Process the notifications by accessing the information stored in the observer container.

This method is expected to be called from the observer context every time composer has finished processing a stream and the rigger condition is met.

Parameters

TInt32 aEventEvents map to identify the observer to be processed.
TInt32 aScreenNumberScreen ID used to identify the target composer that invokes the method
TInt32 aOperationThe Operation expected to be executed
TInt32 aSerialNumberA number used to identify the composition operation
TInt32 * aReturnMaskParameter to be retrieved by composer, representing the event to be processed when composed next time. A new composition is automatically triggered.

ReleaseReadBuffer(SymbianStreamBuffer)

TInt ReleaseReadBuffer(SymbianStreamBufferbuf)

Releases read buffer.

When read buffer is released, it is marked as clean to be written again, unless it is the only committed buffer in which case it is recycled so that the same buffer can be read again (as long as no new buffers are committed by the producer)

When read buffer is released, it is marked as clean to be written again, unless it is the only committed buffer in which case it is recycled so that the same buffer can be read again (as long as no new buffers are committed by the producer)

Parameters

SymbianStreamBuffer bufBuffer handle. Must be valid read buffer handle for given stream.

ReleaseReference()

voidReleaseReference()

Decrease stream's reference count by one and destroy the stream, if the reference count goes to zero.

All acquired read & write buffers must be released before calling WFC_Native_Destroy.

All acquired read & write buffers must be released before calling WFC_Native_Destroy.

ReleaseWriteBuffer(SymbianStreamBuffer)

voidReleaseWriteBuffer(SymbianStreamBufferbuf)

Releases write buffer to stream. Released buffer is made new front buffer, i.e., producer is expected to release buffer is the same order they were acquired.

Parameters

SymbianStreamBuffer bufBuffer handle. Must be valid write buffer handle for given stream.

RemainingReference()

TBool RemainingReference()

internal

RemoveObserver(SymOwfStreamCallback, void *, MultipleSymbianStreamEventBits)

intRemoveObserver(SymOwfStreamCallbackobserver,
void *aData,
MultipleSymbianStreamEventBitsaEvents
)

Remove stream event observer. Observer is removed from the stream's event nofitication chain and won't receive any events from the stream afterwards.

Parameters

SymOwfStreamCallback observerObserver (callback function)
void * aData
MultipleSymbianStreamEventBits aEvents

RemoveObserver(TInt32, void *)

intRemoveObserver(TInt32aEvents,
void *aData
)

Remove stream event observer. Observer is removed from the stream's event nofitication chain and won't receive any events from the stream afterwards.

Parameters

TInt32 aEvents
void * aDataData must uniquely identify the observer

RequestComplete(TThreadId &, TRequestStatus *&, TInt &, TInt)

voidRequestComplete(TThreadId &aThreadId,
TRequestStatus *&aRequestStatus,
TInt &aGlobalIndexArray,
TIntaStatus
)[private]

Parameters

TThreadId & aThreadId
TRequestStatus *& aRequestStatus
TInt & aGlobalIndexArray
TInt aStatus

ResetCallBackData(void *, TInt32)

voidResetCallBackData(void *aCallBackData,
TInt32aEvent
)[private]

Function used to reset observer data fields

Parameters

void * aCallBackDataThe observer data stored in the container of observers
TInt32 aEventEvent identifier for whis the operation is to be executed.

SetAllNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *)

voidSetAllNotifications(TIntaBuffer,
TRequestStatus *aStatusDisplayed,
TUint32 *aTimeStamp,
TRequestStatus *aStatusDispXTimes,
TInt *aDisplayedXTimes,
TRequestStatus *aStatusConsumed,
const TRegion *aRegion
)

Implements surface content notifications.

When the contents of a surface change, this function gets called MCompositionSurfaceUpdate implementation.

Parameters

TInt aBufferThe buffer of the surface to be used in composition. Integer starting from 0.
TRequestStatus * aStatusDisplayedThis is signaled after the composited frame is posted the to display for the first time after the update. After this the value in aTimeStamp is valid, if the value in the status object is KErrNone. Can be NULL, if no signal is desired.
TUint32 * aTimeStampValue of the User::FastCounter() right after the display refresh that signaled aStatusDisplayed.
TRequestStatus * aStatusDispXTimesThis is signaled when the surface has been on the screen for aDisplayedXTimes refreshes, including the update that signaled aStatusDisplayed. Can be NULL, if no signal is wanted.
TInt * aDisplayedXTimesThe number of refreshes after which aStatusDispXTimes is signaled or NULL. If values is provided, it must be >= 1.
TRequestStatus * aStatusConsumedA request status object or NULL. If not NULL, then the request status is completed once the backend does not anymore need the contents of the surface to render the update. This may happen before actually displaying the finished frame.
const TRegion * aRegionThe sub-area that has the updates. If NULL, the whole surface is considered changed.

SetFlipState(TBool)

voidSetFlipState(TBoolaFlip)

internal

Sets flipped state.

Parameters

TBool aFlip

SetNewNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *, TInt32)

voidSetNewNotifications(TIntaBuffer,
TRequestStatus *aStatusDisplayed,
TUint32 *aTimeStamp,
TRequestStatus *aStatusDispXTimes,
TInt *aDisplayedXTimes,
TRequestStatus *aStatusConsumed,
const TRegion *aRegion,
TInt32aScreenNumber
)

Implements surface content notifications.

When the contents of a surface change, this function gets called MCompositionSurfaceUpdate implementation.

Parameters

TInt aBufferThe buffer of the surface to be used in composition. Integer starting from 0.
TRequestStatus * aStatusDisplayedThis is signaled after the composited frame is posted the to display for the first time after the update. After this the value in aTimeStamp is valid, if the value in the status object is KErrNone. Can be NULL, if no signal is desired.
TUint32 * aTimeStampValue of the User::FastCounter() right after the display refresh that signaled aStatusDisplayed.
TRequestStatus * aStatusDispXTimesThis is signaled when the surface has been on the screen for aDisplayedXTimes refreshes, including the update that signaled aStatusDisplayed. Can be NULL, if no signal is wanted.
TInt * aDisplayedXTimesThe number of refreshes after which aStatusDispXTimes is signaled or NULL. If values is provided, it must be >= 1.
TRequestStatus * aStatusConsumedA request status object or NULL. If not NULL, then the request status is completed once the backend does not anymore need the contents of the surface to render the update. This may happen before actually displaying the finished frame.
const TRegion * aRegionThe sub-area that has the updates. If NULL, the whole surface is considered changed.
TInt32 aScreenNumberUniquelly identifies the context (composer)

SetNotifications(TInt, TRequestStatus *, TUint32 *, TRequestStatus *, TInt *, TRequestStatus *, const TRegion *, TInt32, const TNewGlobalNotifications &)

voidSetNotifications(TIntaBuffer,
TRequestStatus *aStatusDisplayed,
TUint32 *aTimeStamp,
TRequestStatus *aStatusDispXTimes,
TInt *aDisplayedXTimes,
TRequestStatus *aStatusConsumed,
const TRegion *aRegion,
TInt32aScreenNumber,
const TNewGlobalNotifications &aGlobalNotifications
)[private]

Parameters

TInt aBuffer
TRequestStatus * aStatusDisplayed
TUint32 * aTimeStamp
TRequestStatus * aStatusDispXTimes
TInt * aDisplayedXTimes
TRequestStatus * aStatusConsumed
const TRegion * aRegion
TInt32 aScreenNumber
const TNewGlobalNotifications & aGlobalNotifications

SetProtectionFlag(TBool)

voidSetProtectionFlag(TBoolflag)

Undocumented protection flag

Parameters

TBool flagenable disable protection

SetReadBufferIndex(TInt)

voidSetReadBufferIndex(TIntaIndex)[private]

Parameters

TInt aIndex

StartUpdateNotifications(TInt, SYMOWF_CONTENT_UPDATED_PARAM &)

TBool StartUpdateNotifications(TIntaScreenNumber,
SYMOWF_CONTENT_UPDATED_PARAM &param
)[private]

Notifies the composer that the content is in process to be updated. The composer will have to not access observer related information

Note that while calling the callback the context update mutex is acquired.

Parameters

TInt aScreenNumberScreen ID used to identify the target composer
SYMOWF_CONTENT_UPDATED_PARAM & param

Stride(TInt, TUidPixelFormat)

TInt Stride(TIntaWidth,
TUidPixelFormataPixelFormat
)[private]

Parameters

TInt aWidth
TUidPixelFormat aPixelFormat

SurfaceId()

const TSurfaceId &SurfaceId()const

Returns internal surface ID.

SurfaceInfoL(const TSurfaceId &, RSurfaceManager::TInfoBuf &)

voidSurfaceInfoL(const TSurfaceId &aSurface,
RSurfaceManager::TInfoBuf &aInfo
)[private]

Parameters

const TSurfaceId & aSurface
RSurfaceManager::TInfoBuf & aInfo

ToHandle()

SymbianStreamType ToHandle()

Helper to resolve handle to stream object

UpdateNotifications(TInt, TInt, TInt32, const TRegion *)

TBool UpdateNotifications(TIntaScreenNum,
TIntaBufferNum,
TInt32aUpdatedFlags,
const TRegion *aRegion
)[private]

Notifies the composer that content has been updated

It is used to support old SI behaviour. The content update mutex is acuired and released while a new composition is triggered

Parameters

TInt aScreenNum
TInt aBufferNumThe buffer number to be updated
TInt32 aUpdatedFlagsThe events that triggers this function call
const TRegion * aRegionThe sub-area that has the updates. If NULL, the whole surface is considered changed.

Member Enumerations Documentation

Enum CallBackOperations

Enumerators

EDefaultOperation
ECheckVisibleOperation

Enum FlippedTarget

Enumerators

EFlipNotSet
EFlippedTargetNormal
EFlippedTargetFlipped

Member Data Documentation

const TInt BUFFER_READ_HANDLE_BASE

const TIntBUFFER_READ_HANDLE_BASE[private, static]

const TInt BUFFER_WRITE_HANDLE_BASE

const TIntBUFFER_WRITE_HANDLE_BASE[private, static]

const TInt BUFFER_WRITE_UPDATE_OVERWRITE

const TIntBUFFER_WRITE_UPDATE_OVERWRITE[private, static]

TInt iAcquiredWriteBuffer

TInt iAcquiredWriteBuffer[private]

RChunk iBufferChunk

RChunk iBufferChunk[private]

TBufferInfo * iBufferInfo

TBufferInfo *iBufferInfo[private]

TAny * iCallBackHighestPriority

TAny *iCallBackHighestPriority[private]

RArray< TCallBackEntry > iCallBacks

RArray< TCallBackEntry >iCallBacks[private]

RFastLock iCallBacksMutex

RFastLock iCallBacksMutex[private]

FlippedTarget iFlipState

FlippedTarget iFlipState[private]

RArray< TGlobalNotification > iGlobalNotifications

RArray< TGlobalNotification >iGlobalNotifications[private]

RSurfaceManager::TSurfaceInfoV01 iInfo

RSurfaceManager::TSurfaceInfoV01 iInfo[private]

FlippedTarget iNewFlip

FlippedTarget iNewFlip[private]

TInt iNumberOfScreenAttachedAvailableNotif

TInt iNumberOfScreenAttachedAvailableNotif[private]

TInt iNumberOfScreenAttachedDisplayedNotif

TInt iNumberOfScreenAttachedDisplayedNotif[private]

TInt iNumberOfScreenAttachedDisplayedXNotif

TInt iNumberOfScreenAttachedDisplayedXNotif[private]

TBool iProtected

TBool iProtected[private]

TInt iReadBuffer

TInt iReadBuffer[private]

TInt iRefCount

TInt iRefCount[private]

RFastLock iRefCountMutex

RFastLock iRefCountMutex[private]

TSurfaceId iStreamProxySurfaceId

TSurfaceId iStreamProxySurfaceId[private]

TSurfaceId iSurfaceId

TSurfaceId iSurfaceId[private]