예제 #1
0
void callback_init(){
    frame_header_init();
    window_colorbuttons_init();
    window_init("unnamed show");
    frame_update_current(color_button);
    frame_copy();
}
예제 #2
0
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);
}
예제 #3
0
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);
}
예제 #4
0
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;
  
}
예제 #5
0
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;
  
}
예제 #6
0
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;
}
예제 #7
0
파일: space.c 프로젝트: insidegui/flux
/* 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]);
            }
        }
    }
}
예제 #8
0
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);
}
예제 #9
0
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);
}
예제 #10
0
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);
}
예제 #11
0
void callback_copy(GtkWidget *widget, gpointer data){
	frame_copy();
}