static DFBResult __CoreLayerRegionDispatch__Dispatch( CoreLayerRegion *obj, FusionID caller, int method, void *ptr, unsigned int length, void *ret_ptr, unsigned int ret_size, unsigned int *ret_length ) { D_UNUSED DFBResult ret; DirectFB::ILayerRegion_Real real( core_dfb, obj ); switch (method) { case CoreLayerRegion_GetSurface: { CoreSurface *surface = NULL; D_UNUSED CoreLayerRegionGetSurface *args = (CoreLayerRegionGetSurface *) ptr; CoreLayerRegionGetSurfaceReturn *return_args = (CoreLayerRegionGetSurfaceReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreLayerRegion, "=-> CoreLayerRegion_GetSurface\n" ); return_args->result = real.GetSurface( &surface ); if (return_args->result == DFB_OK) { CoreSurface_Throw( surface, caller, &return_args->surface_id ); return_args->surface_ptr = (void*) surface; } *ret_length = sizeof(CoreLayerRegionGetSurfaceReturn); return DFB_OK; } case CoreLayerRegion_FlipUpdate: { D_UNUSED CoreLayerRegionFlipUpdate *args = (CoreLayerRegionFlipUpdate *) ptr; CoreLayerRegionFlipUpdateReturn *return_args = (CoreLayerRegionFlipUpdateReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreLayerRegion, "=-> CoreLayerRegion_FlipUpdate\n" ); return_args->result = real.FlipUpdate( args->update_set ? &args->update : NULL, args->flags ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreLayerRegionFlipUpdateReturn); return DFB_OK; } case CoreLayerRegion_FlipUpdateStereo: { D_UNUSED CoreLayerRegionFlipUpdateStereo *args = (CoreLayerRegionFlipUpdateStereo *) ptr; CoreLayerRegionFlipUpdateStereoReturn *return_args = (CoreLayerRegionFlipUpdateStereoReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreLayerRegion, "=-> CoreLayerRegion_FlipUpdateStereo\n" ); return_args->result = real.FlipUpdateStereo( args->left_set ? &args->left : NULL, args->right_set ? &args->right : NULL, args->flags ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreLayerRegionFlipUpdateStereoReturn); return DFB_OK; } case CoreLayerRegion_FlipUpdate2: { D_UNUSED CoreLayerRegionFlipUpdate2 *args = (CoreLayerRegionFlipUpdate2 *) ptr; CoreLayerRegionFlipUpdate2Return *return_args = (CoreLayerRegionFlipUpdate2Return *) ret_ptr; D_DEBUG_AT( DirectFB_CoreLayerRegion, "=-> CoreLayerRegion_FlipUpdate2\n" ); return_args->result = real.FlipUpdate2( args->left_update_set ? &args->left_update : NULL, args->right_update_set ? &args->right_update : NULL, args->flags, args->pts ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreLayerRegionFlipUpdate2Return); return DFB_OK; } } return DFB_NOSUCHMETHOD; }
static DFBResult __CoreDFBDispatch__Dispatch( CoreDFB *obj, FusionID caller, int method, void *ptr, unsigned int length, void *ret_ptr, unsigned int ret_size, unsigned int *ret_length ) { D_UNUSED DFBResult ret; DirectFB::ICore_Real real( core_dfb, obj ); switch (method) { case CoreDFB_Initialize: { D_UNUSED CoreDFBInitialize *args = (CoreDFBInitialize *) ptr; CoreDFBInitializeReturn *return_args = (CoreDFBInitializeReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_Initialize\n" ); return_args->result = real.Initialize( ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBInitializeReturn); return DFB_OK; } case CoreDFB_Register: { D_UNUSED CoreDFBRegister *args = (CoreDFBRegister *) ptr; CoreDFBRegisterReturn *return_args = (CoreDFBRegisterReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_Register\n" ); return_args->result = real.Register( args->slave_call ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBRegisterReturn); return DFB_OK; } case CoreDFB_CreateSurface: { CorePalette *palette = NULL; CoreSurface *surface = NULL; D_UNUSED CoreDFBCreateSurface *args = (CoreDFBCreateSurface *) ptr; CoreDFBCreateSurfaceReturn *return_args = (CoreDFBCreateSurfaceReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_CreateSurface\n" ); if (args->palette_set) { ret = (DFBResult) CorePalette_Lookup( core_dfb, args->palette_id, caller, &palette ); if (ret) { D_DERROR( ret, "%s: Looking up palette by ID %u failed!\n", __FUNCTION__, args->palette_id ); return_args->result = ret; return ret; } } return_args->result = real.CreateSurface( &args->config, args->type, args->resource_id, args->palette_set ? palette : NULL, &surface ); if (return_args->result == DFB_OK) { CoreSurface_Throw( surface, caller, &return_args->surface_id ); return_args->surface_ptr = (void*) surface; } *ret_length = sizeof(CoreDFBCreateSurfaceReturn); if (palette) CorePalette_Unref( palette ); return DFB_OK; } case CoreDFB_CreatePalette: { CorePalette *palette = NULL; D_UNUSED CoreDFBCreatePalette *args = (CoreDFBCreatePalette *) ptr; CoreDFBCreatePaletteReturn *return_args = (CoreDFBCreatePaletteReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_CreatePalette\n" ); return_args->result = real.CreatePalette( args->size, &palette ); if (return_args->result == DFB_OK) { CorePalette_Throw( palette, caller, &return_args->palette_id ); return_args->palette_ptr = (void*) palette; } *ret_length = sizeof(CoreDFBCreatePaletteReturn); return DFB_OK; } case CoreDFB_CreateState: { CoreGraphicsState *state = NULL; D_UNUSED CoreDFBCreateState *args = (CoreDFBCreateState *) ptr; CoreDFBCreateStateReturn *return_args = (CoreDFBCreateStateReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_CreateState\n" ); return_args->result = real.CreateState( &state ); if (return_args->result == DFB_OK) { CoreGraphicsState_Throw( state, caller, &return_args->state_id ); return_args->state_ptr = (void*) state; } *ret_length = sizeof(CoreDFBCreateStateReturn); return DFB_OK; } case CoreDFB_WaitIdle: { D_UNUSED CoreDFBWaitIdle *args = (CoreDFBWaitIdle *) ptr; CoreDFBWaitIdleReturn *return_args = (CoreDFBWaitIdleReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_WaitIdle\n" ); return_args->result = real.WaitIdle( ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBWaitIdleReturn); return DFB_OK; } case CoreDFB_CreateImageProvider: { D_UNUSED CoreDFBCreateImageProvider *args = (CoreDFBCreateImageProvider *) ptr; CoreDFBCreateImageProviderReturn *return_args = (CoreDFBCreateImageProviderReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_CreateImageProvider\n" ); return_args->result = real.CreateImageProvider( args->buffer_call, &return_args->call ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBCreateImageProviderReturn); return DFB_OK; } case CoreDFB_AllowSurface: { CoreSurface *surface = NULL; D_UNUSED CoreDFBAllowSurface *args = (CoreDFBAllowSurface *) ptr; CoreDFBAllowSurfaceReturn *return_args = (CoreDFBAllowSurfaceReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_AllowSurface\n" ); ret = (DFBResult) CoreSurface_Lookup( core_dfb, args->surface_id, caller, &surface ); if (ret) { D_DERROR( ret, "%s: Looking up surface by ID %u failed!\n", __FUNCTION__, args->surface_id ); return_args->result = ret; return ret; } return_args->result = real.AllowSurface( surface, (char*) ((char*)(args + 1)), args->executable_length ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBAllowSurfaceReturn); if (surface) CoreSurface_Unref( surface ); return DFB_OK; } case CoreDFB_GetSurface: { CoreSurface *surface = NULL; D_UNUSED CoreDFBGetSurface *args = (CoreDFBGetSurface *) ptr; CoreDFBGetSurfaceReturn *return_args = (CoreDFBGetSurfaceReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_GetSurface\n" ); return_args->result = real.GetSurface( args->surface_id, &surface ); if (return_args->result == DFB_OK) { CoreSurface_Throw( surface, caller, &return_args->surface_id ); return_args->surface_ptr = (void*) surface; } *ret_length = sizeof(CoreDFBGetSurfaceReturn); return DFB_OK; } case CoreDFB_ClipboardSet: { D_UNUSED CoreDFBClipboardSet *args = (CoreDFBClipboardSet *) ptr; CoreDFBClipboardSetReturn *return_args = (CoreDFBClipboardSetReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_ClipboardSet\n" ); return_args->result = real.ClipboardSet( (char*) ((char*)(args + 1)), args->mime_type_size, (char*) ((char*)(args + 1) + args->mime_type_size * sizeof(char)), args->data_size, args->timestamp_us ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBClipboardSetReturn); return DFB_OK; } case CoreDFB_ClipboardGet: { char tmp_data[MAX_CLIPBOARD_DATA_SIZE]; D_UNUSED CoreDFBClipboardGet *args = (CoreDFBClipboardGet *) ptr; CoreDFBClipboardGetReturn *return_args = (CoreDFBClipboardGetReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_ClipboardGet\n" ); return_args->result = real.ClipboardGet( (char*) ((char*)(return_args + 1)), &return_args->mime_type_size, tmp_data, &return_args->data_size ); if (return_args->result == DFB_OK) { direct_memcpy( (char*) ((char*)(return_args + 1) + return_args->mime_type_size * sizeof(char)), tmp_data, return_args->data_size ); } *ret_length = sizeof(CoreDFBClipboardGetReturn) + return_args->mime_type_size * sizeof(char) + return_args->data_size * sizeof(char); return DFB_OK; } case CoreDFB_ClipboardGetTimestamp: { D_UNUSED CoreDFBClipboardGetTimestamp *args = (CoreDFBClipboardGetTimestamp *) ptr; CoreDFBClipboardGetTimestampReturn *return_args = (CoreDFBClipboardGetTimestampReturn *) ret_ptr; D_DEBUG_AT( DirectFB_CoreDFB, "=-> CoreDFB_ClipboardGetTimestamp\n" ); return_args->result = real.ClipboardGetTimestamp( &return_args->timestamp_us ); if (return_args->result == DFB_OK) { } *ret_length = sizeof(CoreDFBClipboardGetTimestampReturn); return DFB_OK; } } return DFB_NOSUCHMETHOD; }