void read_groups(struct storage *store, faction * f) { for (;;) { ally **pa; group *g; int gid; char buf[1024]; READ_INT(store, &gid); if (gid == 0) break; READ_STR(store, buf, sizeof(buf)); g = new_group(f, buf, gid); pa = &g->allies; for (;;) { ally *a; variant fid; READ_INT(store, &fid.i); if (fid.i <= 0) break; a = ally_add(pa, findfaction(fid.i)); READ_INT(store, &a->status); if (!a->faction) ur_add(fid, &a->faction, resolve_faction); } a_read(store, &g->attribs, g); } }
void read_groups(struct storage *store, faction * f) { for (;;) { ally **pa; group *g; int gid; char buf[1024]; READ_INT(store, &gid); if (gid == 0) break; READ_STR(store, buf, sizeof(buf)); g = new_group(f, buf, gid); pa = &g->allies; for (;;) { ally *a; variant fid; READ_INT(store, &fid.i); if (fid.i <= 0) break; if (global.data_version < STORAGE_VERSION && fid.i == 0) break; a = malloc(sizeof(ally)); *pa = a; pa = &a->next; READ_INT(store, &a->status); a->faction = findfaction(fid.i); if (!a->faction) ur_add(fid, &a->faction, resolve_faction); } *pa = 0; a_read(store, &g->attribs, g); } }
void OBJModel::process_g(std::vector<std::string> tokens) { if (tokens.size() != 1) { std::cout << "WARNING: Unexpected tokens in g command." << std::endl; return; } new_group(tokens[0]); }
void Path_Builder::add_line(path_item::Line *current) { if ( strokes.empty() ) new_group(); group& last_group = strokes.back(); // check adjacent strokes to merge them for ( iterator i = last_group.begin(); i != last_group.end(); ++i ) { if ( path_item::adjacent(*i,current) ) { path_item::Line* merged = path_item::merge(*i,current); last_group.erase(i); // check adjacent on the other end for ( iterator j = last_group.begin(); j != last_group.end(); ) { if ( *j != merged && path_item::adjacent(merged,*j) ) { merged = path_item::merge(merged,*j); strokes.back().erase(j); //j = strokes.back().begin(); break; } else ++j; } strokes.back().push_back(merged); return; } } strokes.back().push_back(current); }
int addgroup_main(int argc UNUSED_PARAM, char **argv) { unsigned opts; unsigned gid = 0; /* need to be root */ if (geteuid()) { bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); } #if ENABLE_FEATURE_ADDGROUP_LONG_OPTIONS applet_long_options = addgroup_longopts; #endif /* Syntax: * addgroup group * addgroup -g num group * addgroup user group * Check for min, max and missing args */ opt_complementary = "-1:?2:g+"; opts = getopt32(argv, "g:S", &gid); /* move past the commandline options */ argv += optind; //argc -= optind; #if ENABLE_FEATURE_ADDUSER_TO_GROUP if (argv[1]) { struct group *gr; if (opts & OPT_GID) { /* -g was there, but "addgroup -g num user group" * is a no-no */ bb_show_usage(); } /* check if group and user exist */ xuname2uid(argv[0]); /* unknown user: exit */ gr = xgetgrnam(argv[1]); /* unknown group: exit */ /* check if user is already in this group */ for (; *(gr->gr_mem) != NULL; (gr->gr_mem)++) { if (!strcmp(argv[0], *(gr->gr_mem))) { /* user is already in group: do nothing */ return EXIT_SUCCESS; } } if (update_passwd(bb_path_group_file, argv[1], NULL, argv[0]) < 0) { return EXIT_FAILURE; } # if ENABLE_FEATURE_SHADOWPASSWDS update_passwd(bb_path_gshadow_file, argv[1], NULL, argv[0]); # endif } else #endif /* ENABLE_FEATURE_ADDUSER_TO_GROUP */ { die_if_bad_username(argv[0]); new_group(argv[0], gid); } /* Reached only on success */ return EXIT_SUCCESS; }
void mpi_comm_group_(int* comm, int* group_out, int* ierr) { MPI_Group tmp; *ierr = MPI_Comm_group(get_comm(*comm), &tmp); if(*ierr == MPI_SUCCESS) { *group_out = new_group(tmp); } }
static void test_group_readwrite(CuTest * tc) { faction * f; group *g; ally *al; int i; gamedata data; storage store; test_cleanup(); mstream_init(&data.strm); gamedata_init(&data, &store, RELEASE_VERSION); f = test_create_faction(0); new_group(f, "NW", 42); g = new_group(f, "Egoisten", 43); key_set(&g->attribs, 44); al = ally_add(&g->allies, f); al->status = HELP_GIVE; write_groups(&store, f); WRITE_INT(&store, 47); free_group(f->groups); free_group(g); f->groups = 0; data.strm.api->rewind(data.strm.handle); read_groups(&data, f); READ_INT(&store, &i); mstream_done(&data.strm); gamedata_done(&data); CuAssertIntEquals(tc, 47, i); CuAssertPtrNotNull(tc, f->groups); CuAssertIntEquals(tc, 42, f->groups->gid); CuAssertStrEquals(tc, "NW", f->groups->name); CuAssertPtrNotNull(tc, f->groups->next); CuAssertIntEquals(tc, 43, f->groups->next->gid); CuAssertStrEquals(tc, "Egoisten", f->groups->next->name); CuAssertPtrEquals(tc, 0, f->groups->allies); g = f->groups->next; CuAssertTrue(tc, key_get(g->attribs, 44)); CuAssertPtrNotNull(tc, g->allies); CuAssertPtrEquals(tc, 0, g->allies->next); CuAssertPtrEquals(tc, f, g->allies->faction); CuAssertIntEquals(tc, HELP_GIVE, g->allies->status); test_cleanup(); }
void mpi_group_incl_(int* group, int* n, int* ranks, int* group_out, int* ierr) { MPI_Group tmp; *ierr = MPI_Group_incl(get_group(*group), *n, ranks, &tmp); if(*ierr == MPI_SUCCESS) { *group_out = new_group(tmp); } }
GroupElem GroupManager::addGroup( String &name ) { boost::mutex::scoped_lock lock( guard ); FRL_EXCEPT_GUARD(); if( names_map.find( name ) != names_map.end() ) FRL_THROW_S_CLASS( IsExistGroup ); GroupElem new_group( new Group( name ) ); insert( new_group ); return new_group; }
void OBJModel::process_vt(std::vector<std::string> tokens) { if (tokens.size() != 2) { std::cout << "WARNING: Unexpected tokens in vt command." << std::endl; return; } if (_groups.size() == 0) { new_group(""); } Group& group = _groups.back(); group.vt.push_back(Mth::make_cvector(float_token(tokens[0]), float_token(tokens[1]))); }
void test_optimization() { new_group("Optimization tests"); PointerStack stack = pointer_stack_create(); write_test("PointerStack Set Buffering", "[[ %i == 1 ]]", pointer_stack_set_buffering(stack, 16)); write_test("PointerStack Get Buffering", "[[ %li == %li ]]", pointer_stack_get_buffering(stack), 16); pointer_stack_dispose(stack); end_group(); }
void test_create_pointer_stack() { new_group("Life cycle operation tests"); PointerStack stack = pointer_stack_create(); fatal_errors(true); write_test("Create PointerStack....", "[[ %li != 0 ]]", (long int) stack); write_test("Dispose PointerStack...", "[[ %i != 0 ]]", pointer_stack_dispose(stack)); fatal_errors(false); end_group(); }
void test_private() { new_group("Private data tests"); PointerStack stack = pointer_stack_create(); write_test("PointerStack Set Private", "[[ %i == 1 ]]", pointer_stack_set_private(stack, buffer)); write_test("PointerStack Get Private", "[[ '%p' == '%p' ]]", pointer_stack_get_private(stack), buffer); pointer_stack_dispose(stack); end_group(); }
void test_limitation() { new_group("Limitation tests"); PointerStack stack = pointer_stack_create(); write_test("PointerStack Set Limit", "[[ %i == 1 ]]", pointer_stack_set_limit(stack, 2)); write_test("PointerStack Get Limit", "[[ %li == %li ]]", pointer_stack_get_limit(stack), 2); pointer_stack_dispose(stack); end_group(); }
GroupPtr ServerConnection::addGroupAsyncIO2( const String& group_name ) { FRL_EXCEPT_GUARD(); boost::mutex::scoped_lock guard( scope_guard ); checkIsConnect(); GroupList::iterator it = group_list.find( group_name ); if( it != group_list.end() ) FRL_THROW_S_CLASS( GroupAlreadyExist ); AsyncIO2Group *new_gr = new AsyncIO2Group( group_name, server ); new_gr->create(); GroupPtr new_group( new_gr ); GroupElemPair new_elem( group_name, new_group ); group_list.insert( new_elem ); return new_group; }
void test_protection() { new_group("Protection tests"); PointerStack stack = pointer_stack_create(); write_test("PointerStack Lock.......", "[[ %i == 1 ]]", pointer_stack_lock(stack)); write_test("PointerStack Get Lock...", "[[ %li == 1 ]]", pointer_stack_get_lock(stack)); write_test("PointerStack Unlock.....", "[[ %i == 1 ]]", pointer_stack_lock(stack)); pointer_stack_dispose(stack); end_group(); }
//I void instruction_group_formation() { int i, j = 0; char cmd[16]; int items = 0; group *gp = new_group(); enum pipeline av_pipe = A0; fprintf(stderr, "[IIU]:Instruction decode\n"); for (i = 0; i < 4; i++) { if (_ci[i] == NULL) return; items = sscanf(_ci[i]->string, "%s", cmd); assert(items == 1); if (!(strcmp(cmd, "ADD"))) { dec_add(_ci[i]); gp->inst[j] = _ci[i]; gp->pipe[j] = av_pipe; av_pipe++; j++; } else { assert(0); } if (av_pipe != A0 && av_pipe != A1) { if (!enqueue(gp)) fprintf(stderr, "[IIU] queue is full\n"); gp = new_group(); av_pipe = A0; j = 0; } } }
bool join_group(unit * u, const char *name) { group *g = NULL; if (name && name[0]) { g = find_groupbyname(u->faction->groups, name); if (g == NULL) { g = new_group(u->faction, name, ++maxgid); init_group(u->faction, g); } } set_group(u, g); return true; }
frl::opc::GroupElem GroupManager::cloneGroup( String &name, String &to_name ) { boost::mutex::scoped_lock lock( guard ); FRL_EXCEPT_GUARD(); GroupElemNamesMap::iterator end = names_map.end(); GroupElemNamesMap::iterator it = names_map.find( to_name ); if( it != end ) FRL_THROW_S_CLASS( IsExistGroup ); it = names_map.find( name ); if( it == end ) FRL_THROW_S_CLASS( NotExistGroup ); GroupElem new_group( it->second->clone() ); new_group->setName( to_name ); insert( new_group ); return new_group; }
struct task_group *dc_new_group(const char *name) { struct task_group *group = calloc(1, sizeof(struct task_group)); group->name = strdup(name); if (task_groups) { assert (task_groups->prev == 0); task_groups->prev = group; group->next = task_groups; } task_groups = group; int r = 0; r = mod_ubus(new_group(group)); if (r != 0) goto unroll; return group; unroll: dc_delete_group(group); return 0; }
void test_extended() { new_group("Extended operation tests"); PointerStack stack = pointer_stack_create(); pointer_stack_push(stack, buffer); pointer_stack_push(stack, pointer_stack_license()); bool status = pointer_stack_reverse(stack); write_test("PointerStack Reverse...", "[[ %i == 1 && '%p' == '%p' ]]", status, pointer_stack_peek(stack, 1), buffer); status = pointer_stack_invert(stack, true); write_test("PointerStack Invert....", "[[ %i == 1 && '%p' == '%p' ]]", status, pointer_stack_peek(stack, 0), buffer); status = pointer_stack_void(stack, 1); write_test("PointerStack Void......", "[[ %i == 1 && %i == 1 ]]", status, pointer_stack_get_count(stack)); pointer_stack_dispose(stack); end_group(); }
void test_main() { bool test = false; new_group("General operation tests"); PointerStack stack = pointer_stack_create(); test = pointer_stack_pack(stack); // need to cache this, dual procedure parameter calls dependent on each other might not work out! write_test("PointerStack Pack......", "[[ %i == 1 && %li == %li ]]", test, pointer_stack_get_units(stack), 8); write_test("PointerStack Push......", "[[ %i == 1 ]]", pointer_stack_push(stack, buffer)); write_test("PointerStack Pointer...", "[[ '%p' == '%p' ]]", * pointer_stack_pointer(stack, 0), buffer); write_test("PointerStack Peek......", "[[ '%p' == '%p' ]]", pointer_stack_peek(stack, 0), buffer); write_test("PointerStack Poke......", "[[ '%p' == '%p' ]]", pointer_stack_poke(stack, 0, NULL), buffer); write_test("PointerStack Pop.......", "[[ '%p' == '%p' ]]", pointer_stack_pop(stack), NULL); pointer_stack_dispose(stack); end_group(); }
static void test_group_readwrite(CuTest * tc) { faction * f; group *g; ally *al; storage store; FILE *F; stream strm; F = fopen("test.dat", "wb"); fstream_init(&strm, F); binstore_init(&store, &strm); test_cleanup(); test_create_world(); f = test_create_faction(0); g = new_group(f, "test", 42); al = ally_add(&g->allies, f); al->status = HELP_GIVE; write_groups(&store, f); binstore_done(&store); fstream_done(&strm); F = fopen("test.dat", "rb"); fstream_init(&strm, F); binstore_init(&store, &strm); f->groups = 0; free_group(g); read_groups(&store, f); binstore_done(&store); fstream_done(&strm); CuAssertPtrNotNull(tc, f->groups); CuAssertPtrNotNull(tc, f->groups->allies); CuAssertPtrEquals(tc, 0, f->groups->allies->next); CuAssertPtrEquals(tc, f, f->groups->allies->faction); CuAssertIntEquals(tc, HELP_GIVE, f->groups->allies->status); remove("test.dat"); test_cleanup(); }
void init(char *file_name) { int i; _exec_stages[0] = address_generation; _exec_stages[1] = preliminary_fetch; _exec_stages[2] = fetch; _exec_stages[3] = branch_target_computation; _exec_stages[4] = instruction_group_formation; _exec_stages[5] = instruction_group_staging; _exec_stages[6] = dispatch_and_register_access; _src = fopen(file_name, "r"); assert(_src != NULL); _queue = new_group(); //sentinel node items_in_Q = 0; _queue->next = _queue; for (i = 0; i < 4; i++) { _ci[i] = NULL; } }
void OBJModel::process_f(std::vector<std::string> tokens) { if (tokens.size() != 3) { std::cout << "WARNING: Unexpected tokens in f command. Only triangles are allowed." << std::endl; return; } if (_groups.size() == 0) { new_group(""); } Group& group = _groups.back(); int v0, vt0, vn0; process_f_token(tokens[0], v0, vt0, vn0); int v1, vt1, vn1; process_f_token(tokens[1], v1, vt1, vn1); int v2, vt2, vn2; process_f_token(tokens[2], v2, vt2, vn2); if (v0 < 0 || v1 < 0 || v2 < 0) { std::cout << "WARNING: Malformed f command." << std::endl; return; } group.fv.push_back(v0); group.fv.push_back(v1); group.fv.push_back(v2); if (vt0 >= 0 && vt1 >= 0 && vt2 >= 0) { group.fvt.push_back(vt0); group.fvt.push_back(vt1); group.fvt.push_back(vt2); } if (vn0 >= 0 && vn1 >= 0 && vn2 >= 0) { group.fvn.push_back(vn0); group.fvn.push_back(vn1); group.fvn.push_back(vn2); } }
void test_io() { new_group("I/O operation tests"); PointerStack stack = pointer_stack_create(); pointer_stack_push(stack, buffer); // "initialize" the stack so we can test it. write_test("PointerStack Get Count", "[[ %li == 1 ]]", pointer_stack_get_count(stack)); write_test("PointerStack Get Slots", "[[ %li == %li ]]", pointer_stack_get_slots(stack), 7); write_test("PointerStack Get Units", "[[ %li == %li ]]", pointer_stack_get_units(stack), 8); PointerStackExport parray = pointer_stack_export(stack, 0, 0); write_test("PointerStack Export...", "[[ '%p' != '(nil)' && '%p' == '%p' && '%p' == '(nil)' ]]", parray, parray[0], buffer, parray[1]); write_test("PointerStack Free.....", "[[ %i == 1 ]]", pointer_stack_free(parray)); void * array[] = { buffer, buffer, NULL }; bool test = pointer_stack_import(stack, array, 0, 1); void * result[] = { pointer_stack_peek(stack, 1), pointer_stack_peek(stack, 2), NULL }; result[2] = pointer_stack_peek(stack, 3); write_test("PointerStack Import...", "[[ %i == 1 && '%p' == '%p' && '%p' == '%p' && '%p' == '(nil)' && %li == %li ]]", test, result[0], buffer, result[1], buffer, result[2], pointer_stack_error(stack), PSE_OVERFLOW); pointer_stack_dispose(stack); end_group(); }
/*setup_windows{{{*/ void setup_windows(int flags) { obj_param_t tmp_parm; globl_drop_depth =25; globl_flags = DROP_SHADOW; init_gui(WIDTH, HEIGHT, flags); SET_COLOR(globl_fg, 0 ,0 ,0); SET_COLOR(globl_bg, 224 ,224 ,204); SET_COLOR(globl_move_color, 0x1f,0x8f,0x1f); SET_COLOR(hscroll_color, 0 ,0x7f,0xff); SET_COLOR(sprite_color, 0xff,0x7f,0); SET_COLOR(window_color, 0 ,0 ,0xff); SET_COLOR(scroll_b_color, 0xff,0 ,0xff); SET_COLOR(scroll_a_color, 0xff,0 ,0); change_message_grp = new_group(40,40, 202, 77, globl_flags, globl_drop_depth); simple_window(change_message_grp, 200, 75); PARM(50, 45,100,20, &globl_fg, &globl_bg, SHOW_FOCUS | QUIT_BUTTON, proc_button_box); tmp_parm.dp1 = (void *)"Okay"; new_obj(change_message_grp, &tmp_parm); PARM(12,16,172,20,&globl_fg, &globl_bg, MAX_CHARS|SHOW_FOCUS, proc_edit_line); tmp_parm.d3 = 80; text_edit_object = new_obj(change_message_grp, &tmp_parm); select_grp = new_group(0,0,WIDTH, HEIGHT,0,0); PARM(305,126,320,240,&globl_fg,&globl_bg,0,select_special); select_special_object = new_obj(select_grp, &tmp_parm); PARM(0,0, 304, 126, 0,0, 0, select_quit_on_click); tmp_parm.user_flags = 0; new_obj(select_grp, &tmp_parm); PARM(0,126,304,240, 0,0, 0, select_quit_on_click); tmp_parm.user_flags = HORIZONTAL; new_obj(select_grp, &tmp_parm); PARM(0, 366, 305, 112, 0,0, 0, select_quit_on_click); tmp_parm.user_flags = 0; new_obj(select_grp, &tmp_parm); PARM(305, 0, 320, 126, 0,0, 0, select_quit_on_click); new_obj(select_grp, &tmp_parm); PARM(305, 366, 320, 114, 0,0, 0, select_quit_on_click); tmp_parm.user_flags = VERTICAL; new_obj(select_grp, &tmp_parm); PARM(625, 0, 15, 480, 0,0,0, select_quit_on_click); tmp_parm.user_flags = 0; new_obj(select_grp, &tmp_parm); main_grp = new_group(0,0, WIDTH, HEIGHT, 0, 0); PARM(0,0,WIDTH,HEIGHT,&globl_fg,&globl_bg,DROP_ACCUM|LOAD_XPM_FROM_ARRAY,proc_bitmap); tmp_parm.dp1 = back_xpm; background_object = new_obj(main_grp, &tmp_parm); PARM(82,22,0,0,&globl_fg,&globl_bg, TOGGLE|CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = undo_button; tmp_parm.d1 = FALSE; tmp_parm.d2 = 1; tmp_parm.dp1 = undo_xpm; new_obj(main_grp, &tmp_parm); /* tools */ PARM(124, 22, 0, 0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = select_xpm; select_object = new_obj(main_grp, &tmp_parm); PARM(82, 53, 0, 0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = pal_hi_low_xpm; pal_hi_low_object = new_obj(main_grp, &tmp_parm); PARM(124, 53, 0, 0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = flip_xpm; flip_object = new_obj(main_grp, &tmp_parm); PARM(82,88,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = TRUE; tmp_parm.d2 = 2; tmp_parm.dp1 = line_xpm; line_object = new_obj(main_grp, &tmp_parm); last_tool = line_object; PARM(124,88,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = put_pat_xpm; put_pat_object = new_obj(main_grp, &tmp_parm); PARM(82,123,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = fill_xpm; fill_object = new_obj(main_grp, &tmp_parm); PARM(124,123,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = clear_to_color_xpm; clear_to_color_object = new_obj(main_grp, &tmp_parm); PARM(82,158,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = pic_xpm; pic_object = new_obj(main_grp, &tmp_parm); PARM(124,158,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = tool_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = pic_pat_xpm; pic_pat_object = new_obj(main_grp, &tmp_parm); /* not tools */ #ifndef WINDOWS PARM(580,450,50,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"F/W"; tmp_parm.callback = fw_bottom; new_obj(main_grp, &tmp_parm); #endif PARM(580,1,50,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"Quit"; tmp_parm.callback = really_quit; new_obj(main_grp, &tmp_parm); PARM(500,1,50,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"About"; tmp_parm.callback = about; new_obj(main_grp, &tmp_parm); PARM(20,1, 50,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"Load"; tmp_parm.user_flags = LOAD; tmp_parm.callback=load_save_top; new_obj(main_grp, &tmp_parm); load_grp = new_menu(20,5, load_menu, &globl_fg, &globl_bg); PARM(75,1, 50,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"Save"; tmp_parm.user_flags = SAVE; tmp_parm.callback=load_save_top; new_obj(main_grp, &tmp_parm); save_grp = new_menu(75,5, save_menu, &globl_fg, &globl_bg); high_low_grp = new_menu(124,88, high_low_menu, &globl_fg, &sprite_color); hor_ver_grp = new_menu(124,88,horizontal_vertical_menu, &globl_fg, &sprite_color); pal_hi_low_grp = new_menu(124,88, pal_hi_low_menu, &globl_fg, &sprite_color); copy_move_grp = new_menu(124,88,copy_move_menu, &globl_fg, &sprite_color); PARM(380,1,90,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON|DROP_SHADOW,proc_button_box); tmp_parm.dp1 = (void *)"Background"; tmp_parm.callback = change_background; new_obj(main_grp, &tmp_parm); PARM(425,81,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = preview_zoom_change; tmp_parm.d1 = FALSE; tmp_parm .d2 = 4; tmp_parm.dp1 = zoom_out_xpm; preview_zoom_out = new_obj(main_grp,&tmp_parm); PARM(461,81,0,0,&globl_fg,&globl_bg, CALL_BUTTON|SHOW_FOCUS|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = preview_zoom_change; tmp_parm.d1 = FALSE; tmp_parm.d2 = 5; tmp_parm.dp1 = zoom_in_xpm; preview_zoom_in = new_obj(main_grp,&tmp_parm); PARM(499,83, 31,27, &globl_fg,&globl_bg,CALL_BUTTON,proc_button_box); tmp_parm.callback = change_bg_color; tmp_parm.dp1 = (char *)" "; bg_color_box = new_obj(main_grp, &tmp_parm); UPDATE_BG_COLOR; PARM(305,114,320,11,&globl_move_color, &globl_bg,SHOW_FOCUS|CALL_BUTTON,proc_scroll_bar); tmp_parm.d2 = 256; tmp_parm.d1 = 0; tmp_parm.callback = preview_scroll_change; preview_scroll_bar = new_obj(main_grp, &tmp_parm); PARM(292,126,11,240,&globl_move_color,&globl_bg,SHOW_FOCUS|CALL_BUTTON,proc_scroll_bar); tmp_parm.d2 = 0; tmp_parm.d1 = 0; preview_y_scroll = new_obj(main_grp,&tmp_parm); PARM(305,367,320,11,&globl_move_color,&globl_bg,SHOW_FOCUS|CALL_BUTTON,proc_scroll_bar); tmp_parm.d2 = 0; tmp_parm.d1 = 0; preview_x_scroll = new_obj(main_grp,&tmp_parm); tmp_parm.callback = preview_size_change; PARM(293,82,0,0,&globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON, proc_radio_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 1; tmp_parm.dp1 = (void *)"NTSC"; preview_ntsc = new_obj(main_grp, &tmp_parm); PARM(293,96,0,0,&globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 1; tmp_parm.dp1 = (void *)"PAL"; preview_pal = new_obj(main_grp, &tmp_parm); PARM(348,82,0,0,&globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON, proc_radio_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 2; tmp_parm.dp1 = (void *)"40 cell"; preview_40c = new_obj(main_grp, &tmp_parm); PARM(348,96,0,0,&globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 2; tmp_parm.dp1 = (void *)"32 cell"; preview_32c = new_obj(main_grp, &tmp_parm); PARM(190,297,11,176,&globl_move_color,&globl_bg,CALL_BUTTON|SHOW_FOCUS,proc_scroll_bar); tmp_parm.d2 = 0xf6; tmp_parm.d1 = 0; tmp_parm.callback = pattern_select_bot; pattern_select_scroll_bar = new_obj(main_grp, &tmp_parm); PARM(10,301,179,0xa*16,&globl_fg,&globl_bg,0,proc_pattern_select); pattern_select_object = new_obj(main_grp, &tmp_parm); PARM(10,22,70,260,&globl_fg,&globl_bg,0,proc_palette_change_object); palette_change_object = new_obj(main_grp, &tmp_parm); /* Pattern edit */ PARM(88,200,67,83,&globl_fg,&globl_bg,0,proc_pattern_edit); pattern_edit_object = new_obj(main_grp, &tmp_parm); PARM(305,126,320,240,&globl_fg,&globl_bg,0,proc_preview_object); preview_object = new_obj(main_grp,&tmp_parm); PARM(540,88,65,17,&globl_fg,&globl_bg,SHOW_FOCUS|CALL_BUTTON,proc_button_box); tmp_parm.dp1 = (void *)"overlay"; tmp_parm.callback = load_ovr_window; preview_overlay = new_obj(main_grp, &tmp_parm); /* View and edit what? */ tmp_parm.callback = edit_change; PARM(254,96,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 3; tmp_parm.user_flags = EDIT_SCROLL_A; tmp_parm.dp1 = scroll_a_edit_xpm; new_obj(main_grp, &tmp_parm); currently_editing = EDIT_SCROLL_A; PARM(254,120,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 3; tmp_parm.user_flags = EDIT_SCROLL_B; tmp_parm.dp1 = scroll_b_edit_xpm; new_obj(main_grp, &tmp_parm); PARM(254,144,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 3; tmp_parm.user_flags = EDIT_SPRITE; tmp_parm.dp1 = sprite_edit_xpm; new_obj(main_grp, &tmp_parm); tmp_parm.callback = edit_change; PARM(230,96,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY|SINGLE_RADIO, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 4; tmp_parm.user_flags = VIEW_SCROLL_B; tmp_parm.dp1 = scroll_b_xpm; new_obj(main_grp, &tmp_parm); PARM(230,120,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY|SINGLE_RADIO, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 4; tmp_parm.user_flags = VIEW_SCROLL_A; tmp_parm.dp1 = scroll_a_xpm; new_obj(main_grp, &tmp_parm); PARM(230,120+24,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY|SINGLE_RADIO, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 4; tmp_parm.user_flags = VIEW_SCROLL_B_HIGH; tmp_parm.dp1 = scroll_b_high_xpm; new_obj(main_grp, &tmp_parm); PARM(230,120+24+24,0,0,&globl_fg,&globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY|SINGLE_RADIO, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 4; tmp_parm.user_flags = VIEW_SCROLL_A_HIGH; tmp_parm.dp1 = scroll_a_high_xpm; new_obj(main_grp, &tmp_parm); PARM(353,25,31,31, &hscroll_color, &globl_bg, 0, proc_scroll_size); new_obj(main_grp, &tmp_parm); PARM(415,25,41,41, &globl_fg, &globl_bg, 0, proc_sprite_size); new_obj(main_grp, &tmp_parm); PARM(369, 64,0,0,&globl_fg, &globl_bg, 0, proc_ctext); tmp_parm.dp1 = (void *)malloc( 8 ); snprintf(tmp_parm.dp1, 8, "64x64"); scroll_width = 1; scroll_height = 1; scroll_size2 =new_obj(main_grp, &tmp_parm); sprite_width = 0; sprite_height = 0; PARM(410, 393,41,51, &globl_fg, &globl_bg, CALL_BUTTON|MODULAR|HEX|INACTIVE, proc_knob); tmp_parm.d1 = 40; tmp_parm.d2 = 0x400; tmp_parm.user_flags = KNOB; tmp_parm.callback = knob_tick; knob = new_obj(main_grp, &tmp_parm); PARM(244,410, 23,24,&globl_fg, &globl_bg, LOAD_XPM_FROM_ARRAY|SHOW_FOCUS|CALL_BUTTON|SINGLE_RADIO,proc_icon_button); tmp_parm.dp1 = small_knob_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 200; tmp_parm.callback = knob_select; knob_icon = new_obj(main_grp,&tmp_parm); PARM(315, 422, 0,0, &globl_fg, &globl_bg, 0, proc_ctext); tmp_parm.dp1 = (void *)malloc(64); snprintf( tmp_parm.dp1, 64, ":<"); knob_text = new_obj(main_grp,&tmp_parm); PARM(272, 256, 11, 82, &globl_fg, &globl_bg, 0, proc_scroll_bar_special) tmp_parm.d1 = 2; tmp_parm.d2 = 2; tmp_parm.user_flags = HORIZONTAL; horizontal_scroll_bar = new_obj(main_grp, &tmp_parm); PARM(493,385, 82,11, &globl_fg, &globl_bg, 0, proc_scroll_bar_special); tmp_parm.d1 = 0; tmp_parm.d2 = 1; tmp_parm.user_flags = VERTICAL; vertical_scroll_bar = new_obj(main_grp, &tmp_parm); PARM(462, 401, 0,0, &globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.d1 = TRUE; tmp_parm.d2 = 5; tmp_parm.dp1 = (void *)scroll_a_edit_xpm; tmp_parm.callback = knob_tick; tmp_parm.user_flags = SELECT_A; select_a_object = new_obj(main_grp, &tmp_parm); PARM(462, 423, 0,0, &globl_fg, &globl_bg, SHOW_FOCUS|CALL_BUTTON|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 5; tmp_parm.dp1 = (void *)scroll_b_edit_xpm; tmp_parm.callback = knob_tick; tmp_parm.user_flags = SELECT_B; new_obj(main_grp, &tmp_parm); tmp_parm.proc = load_default_mega; select_b_object = new_obj(main_grp, &tmp_parm); PARM(172, 177, 0,0, &globl_fg, &globl_bg, SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY, proc_icon_button); // tmp_parm.callback = stop_bot; tmp_parm.dp1 = (void *)clob_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; clob_object = new_obj(main_grp, &tmp_parm); PARM(172, 202, 0,0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.callback = stop_bot; tmp_parm.dp1 = (void *)stop_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; stop_object = new_obj(main_grp, &tmp_parm); PARM(172, 227, 0,0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.callback = go_bot; tmp_parm.dp1 = (void *)clear_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; new_obj(main_grp, &tmp_parm); PARM(172, 252, 0,0, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY, proc_icon_button); tmp_parm.callback = new_bot; tmp_parm.dp1 = (void *)new_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; new_obj(main_grp, &tmp_parm); PARM(490, 400, 140, 45, &globl_fg, &globl_bg, DROP_SHADOW, proc_info); info_object = new_obj(main_grp, &tmp_parm); /* SHADOW BOX */ PARM(170, 175, 25, 100, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(460, 400, 25, 45, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(270, 254, 14, 86, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(491,383, 86, 14, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(240, 407, 150, 30, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); knob_message_box = new_obj(main_grp, &tmp_parm); PARM(405, 400, 50, 45, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(340, 21, 58, 50, &globl_fg,&globl_bg, DROP_SHADOW, proc_shadow_box); scroll_size1 = new_obj(main_grp, &tmp_parm); PARM(340+67, 21, 58, 50, &globl_fg,&globl_bg, DROP_SHADOW, proc_shadow_box); sprite_size1 = new_obj(main_grp, &tmp_parm); PARM(340+67+67+((58/4)-6), 20+((50/4)-6)-1, 20, 20, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.callback = sprite_overlay; tmp_parm.dp1 = (void *)minus_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; minus_object = new_obj(main_grp, &tmp_parm); PARM(340+67+67+((58/4)-6), 20+((50/2)+2)-1, 20, 20, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.dp1 = (void *)plus_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; plus_object = new_obj(main_grp, &tmp_parm); PARM(340+67+67+((58/4)+15), 20+((50/4)-6)-1, 20, 20, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.dp1 = (void *)a_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; a_object = new_obj(main_grp, &tmp_parm); PARM(340+67+67+((58/4)+15), 20+((50/2)+2)-1, 20, 20, &globl_fg, &globl_bg, CALL_BUTTON|SHOW_FOCUS|SINGLE_RADIO|LOAD_XPM_FROM_ARRAY,proc_icon_button); tmp_parm.dp1 = (void *)b_xpm; tmp_parm.d1 = FALSE; tmp_parm.d2 = 401; b_object = new_obj(main_grp, &tmp_parm); PARM(340+67+67,21,58,50, &globl_fg, &globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp,&tmp_parm); PARM(228, 94, 50, 148-24-24, &globl_fg,&globl_bg, DROP_SHADOW, proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(8,19,152,266,&globl_fg,&globl_bg,DROP_SHADOW,proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(8,295,198,179,&globl_fg,&globl_bg,DROP_SHADOW,proc_shadow_box); new_obj(main_grp, &tmp_parm); PARM(288,80,340,300,&globl_fg,&globl_bg,DROP_SHADOW,proc_shadow_box); preview_box_object = new_obj(main_grp, &tmp_parm); red.r = 0x7f; red.g = 0; red.b = 0; green.r = 0; green.g = 0x7f; green.b = 0; blue.r = 0; blue.g = 0; blue.b = 0x7f; PARM(168,22,100,11,&red,&globl_bg,SHOW_FOCUS|CALL_BUTTON,proc_scroll_bar); tmp_parm.d2 = 7; tmp_parm.d1 = current_vdp->palette[current_palette][current_palette_index].r / (0xff/7); tmp_parm.callback = color_change_bot; rgb_red_object = new_obj(main_grp, &tmp_parm); tmp_parm.d1 = current_vdp->palette[current_palette][current_palette_index].g / (0xff/7); tmp_parm.y+=18; tmp_parm.fg = &green; rgb_green_object = new_obj(main_grp, &tmp_parm); tmp_parm.d1 = current_vdp->palette[current_palette][current_palette_index].b / (0xff/7); tmp_parm.y+=18; tmp_parm.fg = &blue; rgb_blue_object = new_obj(main_grp, &tmp_parm); PARM(301,38,24,8,¤t_color_text_color,&globl_bg,0,proc_ctext); tmp_parm.dp1 = (void *)malloc(4); current_color_text_object = new_obj(main_grp,&tmp_parm); PARM(301,52,24,8, ¤t_color_text_color, &globl_bg, 0,proc_ctext); tmp_parm.dp1 = (void *)malloc(4); current_color_text2_object = new_obj(main_grp, &tmp_parm); update_color_text(); PARM(276,30,50,30,&globl_fg,¤t_vdp->palette[0][0],0,proc_shadow_box); current_color_object = new_obj(main_grp, &tmp_parm); PARM(165,19,170,55,&globl_fg,&globl_bg,DROP_SHADOW,proc_shadow_box); rgb_box_object = new_obj(main_grp, &tmp_parm); overlay_sel = setup_overlay_window(400,300, LOAD, "an image", load_ovr_callback); background_sel = setup_overlay_window(400,300, LOAD, "an image", load_background_callback); pointers = new_group(200, 300, 151,151,globl_flags,globl_drop_depth); simple_window(pointers, 150, 150); PARM( 25, 100, 100, 30, &globl_fg, &globl_bg, QUIT_BUTTON|SHOW_FOCUS, proc_button_box); tmp_parm.dp1 = (char *)"OK"; new_obj(pointers, &tmp_parm); PARM(30, 20, 0,0, &hscroll_color, &globl_bg, SHOW_FOCUS|SINGLE_RADIO, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 50; tmp_parm.dp1 = (char *)"hscroll"; hscroll_radio = new_obj(pointers, &tmp_parm); PARM(30, 31, 0,0, &sprite_color, &globl_bg, SHOW_FOCUS|SINGLE_RADIO, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 50; tmp_parm.dp1 = (char *)"sprite"; sprite_radio = new_obj(pointers, &tmp_parm); PARM(30, 42, 0,0, &scroll_a_color, &globl_bg, SHOW_FOCUS|SINGLE_RADIO, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 50; tmp_parm.dp1 = (char *)"scroll_a"; scroll_a_radio = new_obj(pointers, &tmp_parm); PARM(30, 53, 0,0, &scroll_b_color, &globl_bg, SHOW_FOCUS|SINGLE_RADIO, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 50; tmp_parm.dp1 = (char *)"scroll_b"; scroll_b_radio = new_obj(pointers, &tmp_parm); PARM(30, 64, 0,0, &window_color, &globl_bg, SHOW_FOCUS|SINGLE_RADIO, proc_radio_button); tmp_parm.d1 = FALSE; tmp_parm.d2 = 50; tmp_parm.dp1 = (char *)"window"; window_radio = new_obj(pointers, &tmp_parm); load_sel = setup_overlay_window(400,300, LOAD, "123456", load_save_bottom); save_sel = setup_overlay_window(400,300, SAVE, "123456", load_save_bottom); }
int main() { lua_State *L = luaL_newstate(); int err; struct sockaddr_in send_to; luaL_openlibs(L); dmx = socket(AF_INET, SOCK_DGRAM, 0); send_to.sin_port = htons(21812); send_to.sin_family = AF_INET; if( inet_aton("127.0.0.1", &send_to.sin_addr) == 0 ){ printf("invalid address\n"); return EXIT_FAILURE; } if( connect(dmx, (struct sockaddr*)&send_to, sizeof(struct sockaddr_in)) < 0){ printf("couldn’t not connect socket\n"); return EXIT_FAILURE; } /*new_global_table(L, LIGHT); */ register_lt_functions(L); new_universe(L, "u"); new_group(L, "u", "group1"); err = luaL_loadfile(L, "lights.lua"); dbg_lua(L, err, "lights.lua"); err = lua_pcall(L, 0, LUA_MULTRET, 0); dbg_lua(L, err, "lights.lua"); new_light(L, 30, "u", "parled", "test1"); new_light(L, 5, "u", "parled", "test2"); new_light(L, 1, "u", "lspot", "spot1"); new_light(L, 2, "u", "lspot", "spot2"); new_light(L, 3, "u", "lspot", "spot3"); new_light(L, 4, "u", "lspot", "spot4"); link_into_group(L, "u", "group1", "test1"); link_into_group(L, "u", "group1", "test2"); err = luaL_loadfile(L, "test.lua"); dbg_lua(L, err, "test.lua"); err = lua_pcall(L, 0, LUA_MULTRET, 0); dbg_lua(L, err, "test.lua"); double p = 0; lua_getglobal(L, "main"); if( !lua_isfunction(L, -1) ){ printf("\"main\" function, is not defined\n"); return -1; } lua_pushnumber(L, p); err = lua_pcall(L, 1, 0, 0); dbg_lua(L, err, "main"); //update_lights(L, "u", cue); //printf("%g\r", p); //fflush(stdout); do{ lua_getglobal(L, "rt_time"); if( !lua_isfunction(L, -1) ){ printf("\"rt_time\" function, is not defined\n"); break; } err = lua_pcall(L, 0, 0, 0); dbg_lua(L, err, "rt_time"); }while(1); lua_close(L); close(dmx); return 0; }