void callback_init(){ frame_header_init(); window_colorbuttons_init(); window_init("unnamed show"); frame_update_current(color_button); frame_copy(); }
retval_t cmd_radio_send_frame_bps(const subsystem_t *self, frame_t * iframe, frame_t * oframe) { lithium_configuration_t config; uint8_t tx_rf_baud_rate; retval_t rv; frame_t aux; /* save current config for restoring tx_bps setting */ rv = lithium_get_configuration(&config); if (RV_SUCCESS != rv) return rv; rv = frame_get_u8(iframe, &tx_rf_baud_rate); if (RV_SUCCESS != rv) return rv; vTaskDelay(LITHIUM_BLACKMAGIC_SENDDATA_DELAY_MS / portTICK_RATE_MS); frame_copy(&aux, iframe); /* A copy is needed, because lithium_send_data disposes the frame */ frame_advance(iframe, _frame_available_data(iframe)); rv = lithium_set_tx_bps(tx_rf_baud_rate); if (RV_SUCCESS != rv) return rv; vTaskDelay(LITHIUM_BLACKMAGIC_SENDDATA_DELAY_MS / portTICK_RATE_MS); lithium_send_data(&aux); vTaskDelay(LITHIUM_BLACKMAGIC_SENDDATA_DELAY_MS / portTICK_RATE_MS); return lithium_set_tx_bps(config.tx_rf_baud_rate); }
retval_t cmd_radio_send_frame(const subsystem_t *self, frame_t * iframe, frame_t * oframe) { frame_t aux; frame_copy(&aux, iframe); /* A copy is needed, because lithium_send_data disposes the frame */ frame_advance(iframe, _frame_available_data(iframe)); return lithium_send_data(&aux); }
frame* animation_add_frame(animation* a, frame* base) { frame* f = frame_copy(base); a->frame_count++; a->frames = realloc(a->frames, sizeof(frame*) * a->frame_count); a->frames[a->frame_count-1] = f; return f; }
frame* animation_sample(animation* a, float time) { if (a->frame_count == 0) { error("Animation has no frames!"); return NULL; } frame* f = frame_copy(a->frames[0]); animation_sample_to(a, time, f); return f; }
frame_t *frame_factory_from_cfg(frame_cfg_t *cfg) { frame_t *frame = NULL; frame_t *ret = NULL; //printf("cfg tex-name = %s\n", cfg->tex_name); frame = frame_factory_get(cfg->tex_name); if (frame == NULL) { return NULL; } ret = frame_copy(frame); //printf("config frame\n"); frame_config(ret, cfg); return ret; }
/* helper for space_clone */ static void segment_clone(frame_t *extbl, frame_t *exmap, uintptr_t seg) { uintptr_t i; exmap[seg / SEGSZ] = frame_new() | PF_PRES | PF_USER | PF_RW; memclr(&extbl[seg / PAGESZ], PAGESZ); for (i = seg / PAGESZ; i < (seg + SEGSZ) / PAGESZ; i++) { if (ctbl[i] & PF_PRES) { if (ctbl[i] & PF_LINK) { extbl[i] = ctbl[i]; cpu_flush_tlb_full(); } else { extbl[i] = frame_copy(ctbl[i]); } } } }
static pgentry_t pg_clone_page(pgentry_t page) { uint32_t flags = (uint32_t)PTE_FLAGS(page); paddr_t pgframe = (paddr_t)PTE_ADDR(page); if ((flags & PAGE_PRESENT) == 0) { // Page not present, but some flags are set return page; } if ((flags & PAGE_LINK) != 0) { return page; } paddr_t newpgframe = frame_alloc(); frame_set(newpgframe); frame_copy(pgframe, newpgframe); return PAGE_ENTRY(newpgframe, flags); }
static pgentry_t pg_clone_page_4m(pgentry_t page) { uint32_t flags = (uint32_t)PDE_FLAGS(page); paddr_t pgframe = (paddr_t)PDE_ADDR(page); if ((flags & PAGE_PRESENT) == 0) { // Page not present, but some flags are set return page; } if ((flags & PAGE_LINK) != 0) { return page; } paddr_t newpgframe = frame_alloc_4m(); int num_pages = 1024; paddr_t limit = newpgframe + (paddr_t)(num_pages * PAGE_SIZE); frame_set_range(newpgframe, limit); for (int i = 0; i < num_pages; i++) { paddr_t offset = (paddr_t)i * PAGE_SIZE; frame_copy(pgframe + offset, newpgframe + offset); } return PAGE_ENTRY(newpgframe, flags); }
void animated_object_load_skeleton(animated_object* ao, asset_hndl ah) { if(ao->pose != NULL) { frame_delete(ao->pose); } ao->skeleton = ah; ao->pose = frame_copy(((skeleton*)asset_hndl_ptr(&ao->skeleton))->rest_pose); frame_gen_transforms(ao->pose); }
void callback_copy(GtkWidget *widget, gpointer data){ frame_copy(); }