int main( int argc, char *argv[] ) { DFBResult ret; Reaction reaction; /* Initialize DirectFB including command line parsing. */ ret = DirectFBInit( &argc, &argv ); if (ret) { DirectFBError( "DirectFBInit() failed", ret ); return -1; } /* Parse the command line. */ if (!parse_command_line( argc, argv )) return -2; /* Create the super interface. */ ret = DirectFBCreate( &dfb ); if (ret) { DirectFBError( "DirectFBCreate() failed", ret ); return -3; } if (!unique_wm_running()) { D_ERROR( "UniQuE/Test: This session doesn't run UniQuE!\n" ); dfb->Release( dfb ); return EXIT_FAILURE; } unique_wm_enum_contexts( context_callback, NULL ); if (!context) { D_ERROR( "UniQuE/Test: No context available!\n" ); dfb->Release( dfb ); return EXIT_FAILURE; } unique_input_channel_attach( context->foo_channel, foo_channel_listener, context, &reaction ); pause(); unique_input_channel_detach( context->foo_channel, &reaction ); unique_context_unref( context ); /* Release the super interface. */ dfb->Release( dfb ); return EXIT_SUCCESS; }
int main( int argc, char *argv[] ) { DFBResult ret; /* Initialize DirectFB including command line parsing. */ ret = DirectFBInit( &argc, &argv ); if (ret) { DirectFBError( "DirectFBInit() failed", ret ); return -1; } /* Parse the command line. */ if (!parse_command_line( argc, argv )) return -2; /* Create the super interface. */ ret = DirectFBCreate( &dfb ); if (ret) { DirectFBError( "DirectFBCreate() failed", ret ); return -3; } if (!unique_wm_running()) { D_ERROR( "UniQuE/Test: This session doesn't run UniQuE!\n" ); dfb->Release( dfb ); return EXIT_FAILURE; } unique_wm_enum_contexts( context_callback, NULL ); if (!context) { D_ERROR( "UniQuE/Test: No context available!\n" ); dfb->Release( dfb ); return EXIT_FAILURE; } /* Set the background according to the users wishes. */ if (color) set_color(); unique_context_unref( context ); /* Release the super interface. */ dfb->Release( dfb ); return EXIT_SUCCESS; }
static DFBResult wm_init_stack( CoreWindowStack *stack, void *wm_data, void *stack_data ) { DFBResult ret; StackData *data = stack_data; WMData *wmdata = wm_data; CoreLayerContext *context; CoreLayerRegion *region; D_ASSERT( stack != NULL ); D_ASSERT( stack->context != NULL ); D_ASSERT( wm_data != NULL ); D_ASSERT( stack_data != NULL ); context = stack->context; D_ASSERT( context != NULL ); ret = dfb_layer_context_get_primary_region( context, true, ®ion ); if (ret) { D_DERROR( ret, "WM/UniQuE: Could not get the primary region!\n" ); return ret; } /* Create the unique context. */ ret = unique_context_create( wmdata->core, stack, region, context->layer_id, wmdata->shared, &data->context ); dfb_layer_region_unref( region ); if (ret) { D_DERROR( ret, "WM/UniQuE: Could not create the context!\n" ); return ret; } /* Attach the global context listener. */ ret = unique_context_attach_global( data->context, UNIQUE_WM_MODULE_CONTEXT_LISTENER, data, &data->context_reaction ); if (ret) { unique_context_unref( data->context ); D_DERROR( ret, "WM/UniQuE: Could not attach global context listener!\n" ); return ret; } /* Inherit all local references from the layer context. */ ret = unique_context_inherit( data->context, context ); unique_context_unref( data->context ); if (ret) { unique_context_detach_global( data->context, &data->context_reaction ); D_DERROR( ret, "WM/UniQuE: Could not inherit from layer context!\n" ); return ret; } data->stack = stack; D_MAGIC_SET( data, StackData ); return DFB_OK; }