bool AuthServerListener::Start(int listenPort, int listenThreadCount) { m_ListenSocket = socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字 m_ListenPort = listenPort; m_ListenThreadCount = listenThreadCount; //需要绑定的参数 SOCKADDR_IN addr; addr.sin_family=AF_INET; addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址 addr.sin_port=htons(m_ListenPort);//绑定端口 if(bind(m_ListenSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR)) == SOCKET_ERROR) { GetLog()->Warn("Bind Error:%s", SysErrorMessage(WSAGetLastError())); return false; } //其中第二个参数代表能够接收的最多的连接数 if(listen(m_ListenSocket,m_ListenThreadCount) == SOCKET_ERROR) { GetLog()->Warn("Listen Error:%s", SysErrorMessage(WSAGetLastError())); return false; } GetThreadManager()->ManagerCreateThread("ListenThread", ListenThread, false); return true; }
static void OnCheatListDlg_AddClicked(GtkWidget *widget, gpointer user_data) { GtkWidget *dlg; GtkWidget *box, *scroll, *label, *descr_edit, *code_edit; dlg = gtk_dialog_new_with_buttons(_("Add New Cheat"), GTK_WINDOW(CheatListDlg), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size(GTK_WINDOW(dlg), 350, 350); box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg))); label = gtk_label_new(_("Cheat Description:")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); descr_edit = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(box), descr_edit, FALSE, FALSE, 5); gtk_widget_show(descr_edit); label = gtk_label_new(_("Cheat Code:")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); code_edit = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(code_edit), GTK_WRAP_CHAR); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), code_edit); gtk_widget_show(code_edit); gtk_box_pack_start(GTK_BOX(box), scroll, TRUE, TRUE, 5); gtk_widget_show(scroll); gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER); gtk_widget_show_all(dlg); if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) { GtkTextBuffer *b = gtk_text_view_get_buffer(GTK_TEXT_VIEW(code_edit)); GtkTextIter s, e; char *codetext; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(b), &s, &e); codetext = strdup(gtk_text_buffer_get_text(GTK_TEXT_BUFFER(b), &s, &e, FALSE)); if (AddCheat(gtk_entry_get_text(GTK_ENTRY(descr_edit)), codetext) != 0) { SysErrorMessage(_("Error"), _("Invalid cheat code!")); } LoadCheatListItems(NumCheats - 1); free(codetext); } gtk_widget_destroy(dlg); }
void GDIAccurateUpdateDisplay(bool singlestep) { static int framecounter=0; int ret; if (++framecounter > zx81.frameskip || singlestep) framecounter=0; else return; ret=StretchBlt(Form1->Canvas->Handle, rcdest.Left, rcdest.Top, (rcdest.Right-rcdest.Left), (rcdest.Bottom-rcdest.Top), GDIFrame->Canvas->Handle, rcsource.Left, rcsource.Top, (rcsource.Right-rcsource.Left), (rcsource.Bottom-rcsource.Top), SRCCOPY); if (!ret) ShowMessage(SysErrorMessage(GetLastError())); dest=buffer= (unsigned char *) GDIFrame->ScanLine[0]; }
int main(int argc, char *argv[]) { char file[MAXPATHLEN] = ""; char path[MAXPATHLEN]; int runcd = RUN; int loadst = 0; int i; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif memset(&Config, 0, sizeof(PcsxConfig)); // what is the name of the config file? // it may be redefined by -cfg on the command line strcpy(cfgfile_basename, "pcsxr.cfg"); // read command line options for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-runcd")) runcd = RUN_CD; else if (!strcmp(argv[i], "-nogui")) UseGui = FALSE; else if (!strcmp(argv[i], "-psxout")) Config.PsxOut = TRUE; else if (!strcmp(argv[i], "-slowboot")) Config.SlowBoot = TRUE; else if (!strcmp(argv[i], "-load")) loadst = atol(argv[++i]); else if (!strcmp(argv[i], "-cfg")) { if (i+1 >= argc) break; strncpy(cfgfile_basename, argv[++i], MAXPATHLEN-100); /* TODO buffer overruns */ printf("Using config file %s.\n", cfgfile_basename); } else if (!strcmp(argv[i], "-cdfile")) { char isofilename[MAXPATHLEN]; if (i+1 >= argc) break; strncpy(isofilename, argv[++i], MAXPATHLEN); if (isofilename[0] != '/') { getcwd(path, MAXPATHLEN); if (strlen(path) + strlen(isofilename) + 1 < MAXPATHLEN) { strcat(path, "/"); strcat(path, isofilename); strcpy(isofilename, path); } else isofilename[0] = 0; } SetIsoFile(isofilename); runcd = RUN_CD; } else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "-help") || !strcmp(argv[i], "--help")) { printf(PACKAGE_STRING "\n"); printf("%s\n", _( " pcsxr [options] [file]\n" "\toptions:\n" "\t-runcd\t\tRuns CD-ROM\n" "\t-cdfile FILE\tRuns a CD image file\n" "\t-nogui\t\tDon't open the GTK GUI\n" "\t-cfg FILE\tLoads desired configuration file (default: ~/.pcsxr/pcsxr.cfg)\n" "\t-psxout\t\tEnable PSX output\n" "\t-slowboot\tEnable BIOS Logo\n" "\t-load STATENUM\tLoads savestate STATENUM (1-9)\n" "\t-h -help\tDisplay this message\n" "\tfile\t\tLoads file\n")); return 0; } else { strncpy(file, argv[i], MAXPATHLEN); if (file[0] != '/') { getcwd(path, MAXPATHLEN); if (strlen(path) + strlen(file) + 1 < MAXPATHLEN) { strcat(path, "/"); strcat(path, file); strcpy(file, path); } else file[0] = 0; } } } strcpy(Config.Net, "Disabled"); if (UseGui) gtk_init(NULL, NULL); CheckSubDir(); ScanAllPlugins(); // try to load config // if the config file doesn't exist if (LoadConfig() == -1) { if (!UseGui) { printf(_("PCSXR cannot be configured without using the GUI -- you should restart without -nogui.\n")); return 1; } // Uh oh, no config file found, use some defaults Config.PsxAuto = 1; gchar *str_bios_dir = g_strconcat(getenv("HOME"), BIOS_DIR, NULL); strcpy(Config.BiosDir, str_bios_dir); g_free(str_bios_dir); gchar *str_plugin_dir = g_strconcat(getenv("HOME"), PLUGINS_DIR, NULL); strcpy(Config.PluginsDir, str_plugin_dir); g_free(str_plugin_dir); gtk_init(NULL, NULL); // Update available plugins, but not GUI UpdatePluginsBIOS(); // Pick some defaults, if they're available set_default_plugin(GpuConfS.plist[0], Config.Gpu); set_default_plugin(SpuConfS.plist[0], Config.Spu); set_default_plugin(CdrConfS.plist[0], Config.Cdr); set_default_plugin(Pad1ConfS.plist[0], Config.Pad1); set_default_plugin(Pad2ConfS.plist[0], Config.Pad2); set_default_plugin(BiosConfS.plist[0], Config.Bios); // create & load default memcards if they don't exist CreateMemcard("card1.mcd", Config.Mcd1); CreateMemcard("card2.mcd", Config.Mcd2); LoadMcds(Config.Mcd1, Config.Mcd2); SaveConfig(); } gchar *str_patches_dir = g_strconcat(getenv("HOME"), PATCHES_DIR, NULL); strcpy(Config.PatchesDir, str_patches_dir); g_free(str_patches_dir); // switch to plugin dotdir // this lets plugins work without modification! gchar *plugin_default_dir = g_build_filename(getenv("HOME"), PLUGINS_DIR, NULL); chdir(plugin_default_dir); g_free(plugin_default_dir); if (UseGui && runcd != RUN_CD) SetIsoFile(NULL); if (SysInit() == -1) return 1; if (UseGui && runcd != RUN_CD) { StartGui(); } else { // the following only occurs if the gui isn't started if (LoadPlugins() == -1) { SysErrorMessage(_("Error"), _("Failed loading plugins!")); return 1; } if (OpenPlugins() == -1 || plugins_configured() == FALSE) { return 1; } CheckCdrom(); // Auto-detect: get region first, then rcnt-bios reset SysReset(); if (file[0] != '\0') { Load(file); } else { if (runcd == RUN_CD) { if (LoadCdrom() == -1) { ClosePlugins(); printf(_("Could not load CD-ROM!\n")); return -1; } } } // If a state has been specified, then load that if (loadst) { StatesC = loadst - 1; gchar *state_filename = get_state_filename(StatesC); LoadState(state_filename); g_free(state_filename); } psxCpu->Execute(); } return 0; }
static void OnCheatListDlg_EditClicked(GtkWidget *widget, gpointer user_data) { GtkWidget *dlg; GtkWidget *box, *scroll, *label, *descr_edit, *code_edit; GtkTreeIter iter; GtkTreeModel *model; GtkTreePath *path; gboolean selected; int index, i; char buf[8192]; char *p = buf; widget = gtk_builder_get_object(builder, "GtkCList_Cheat"); selected = gtk_tree_selection_get_selected( gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)), &model, &iter); if (!selected) { return; } path = gtk_tree_model_get_path(model, &iter); index = *gtk_tree_path_get_indices(path); gtk_tree_path_free(path); dlg = gtk_dialog_new_with_buttons(_("Edit Cheat"), GTK_WINDOW(CheatListDlg), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size(GTK_WINDOW(dlg), 350, 350); box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg))); label = gtk_label_new(_("Cheat Description:")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); descr_edit = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(descr_edit), Cheats[index].Descr); gtk_box_pack_start(GTK_BOX(box), descr_edit, FALSE, FALSE, 5); gtk_widget_show(descr_edit); label = gtk_label_new(_("Cheat Code:")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); gtk_widget_show(label); code_edit = gtk_text_view_new(); for (i = Cheats[index].First; i < Cheats[index].First + Cheats[index].n; i++) { sprintf(p, "%.8X %.4X\n", CheatCodes[i].Addr, CheatCodes[i].Val); p += 14; *p = '\0'; } gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(code_edit)), buf, -1); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(code_edit), GTK_WRAP_CHAR); scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), code_edit); gtk_widget_show(code_edit); gtk_box_pack_start(GTK_BOX(box), scroll, TRUE, TRUE, 5); gtk_widget_show(scroll); gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER); gtk_widget_show_all(dlg); if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) { GtkTextBuffer *b = gtk_text_view_get_buffer(GTK_TEXT_VIEW(code_edit)); GtkTextIter s, e; char *codetext; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(b), &s, &e); codetext = strdup(gtk_text_buffer_get_text(GTK_TEXT_BUFFER(b), &s, &e, FALSE)); if (EditCheat(index, gtk_entry_get_text(GTK_ENTRY(descr_edit)), codetext) != 0) { SysErrorMessage(_("Error"), _("Invalid cheat code!")); } LoadCheatListItems(index); free(codetext); } gtk_widget_destroy(dlg); }
void TJvShFileOperationMainForm::DoIt(TJvSHFileOpType AType, const AnsiString OKMsg) { TJvSHFileOptions AOptions; memMessages->Lines->Clear(); JvSHFileOperation1->Operation = AType; JvSHFileOperation1->SourceFiles = memSource->Lines; JvSHFileOperation1->DestFiles = memDest->Lines; JvSHFileOperation1->Title = edTitle->Text; AOptions.Clear();// = NULL; if( chkUndo->Checked ) { AOptions = (AOptions << fofAllowUndo); //Include(AOptions,fofAllowUndo); } if( chkFiles->Checked ) { AOptions = (AOptions << fofFilesOnly); //Include(AOptions,fofFilesOnly); } if( chkMulti->Checked ) { AOptions = (AOptions << fofMultiDestFiles); //Include(AOptions,fofMultiDestFiles); } if( chkNoConfirm->Checked ) { AOptions = (AOptions << fofNoConfirmation); //Include(AOptions,fofNoConfirmation); } if( chkNoDirCreate->Checked ) { AOptions = (AOptions << fofNoConfirmMkDir); //Include(AOptions,fofNoConfirmMkDir); } if( chkRename->Checked ) { AOptions = (AOptions << fofRenameOnCollision); //Include(AOptions,fofRenameOnCollision); } if( chkSilent->Checked ) { AOptions = (AOptions << fofSilent); //Include(AOptions,fofSilent); } if( chkSimple->Checked ) { AOptions = (AOptions << fofSimpleProgress); //Include(AOptions,fofSimpleProgress); } if( chkMappings->Checked ) { AOptions = (AOptions << fofWantMappingHandle); //Include(AOptions,fofWantMappingHandle); } if( chkNoErrors->Checked ) { AOptions = (AOptions << fofNoErrorUI); //Include(AOptions,fofNoErrorUI); } if( chkNoSecAttrs->Checked ) { AOptions = (AOptions << fofNoCopySecurityAttributes); //Include(AOptions,fofNoCopySecurityAttributes); } if( chkNoRecurse->Checked ) { AOptions = (AOptions << fofNoRecursion); //Include(AOptions,fofNoRecursion); } if( chkNoConElem->Checked ) { AOptions = (AOptions << fofNoConnectedElements); //Include(AOptions,fofNoConnectedElements); } if( chkNoParse->Checked ) { AOptions = (AOptions << fofNoRecurseParse); //Include(AOptions,fofNoRecurseParse); } if( chkWantNukes->Checked ) { AOptions = (AOptions << fofWantNukeWarning); //Include(AOptions,fofWantNukeWarning); } JvSHFileOperation1->Options = AOptions; if( !JvSHFileOperation1->Execute() ) { memMessages->Lines->Add(SysErrorMessage(GetLastError())); } else { memMessages->Lines->Add(OKMsg); } }