Пример #1
0
void SC_LanguageClient::initRuntime(const Options& opt)
{
	// start virtual machine
	if (!mHiddenClient->mRunning) {
#ifdef __linux__
		using DirName = SC_Filesystem::DirName;
		namespace bfs = boost::filesystem;
		bfs::path deprecatedSupportDirectory = SC_Filesystem::instance().getDirectory(DirName::UserHome);
		deprecatedSupportDirectory /= "share/SuperCollider";

		if (bfs::exists(deprecatedSupportDirectory)) {
			bfs::path supportDirectory = SC_Filesystem::instance().getDirectory(DirName::UserAppSupport);
			postfl("WARNING: Deprecated support directory detected: %s\n"
				"Extensions and other contents in this directory will not be available until you move them to the new support directory:\n"
				"%s\n"
				"Quarks will need to be reinstalled due to broken symbolic links.\n\n",
				deprecatedSupportDirectory.string().c_str(), // we can safely convert to c_str here because the POSIX filesystem uses UTF-8
				supportDirectory.string().c_str());
		}
#endif

		mHiddenClient->mRunning = true;
		if (opt.mRuntimeDir) {
			int err = chdir(opt.mRuntimeDir);
			if (err)
				error("Cannot change to runtime directory: %s", strerror(errno));
		}
		pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow);
		init_OSC(opt.mPort);
		schedInit();
		onInitRuntime();
	}
}
void SC_LanguageClient::initRuntime(const Options& opt)
{
	// start virtual machine
	if (!mHiddenClient->mRunning) {
#ifdef __linux__
		char deprecatedSupportDirectory[PATH_MAX];
		sc_GetUserHomeDirectory(deprecatedSupportDirectory, PATH_MAX);
		sc_AppendToPath(deprecatedSupportDirectory, PATH_MAX, "share/SuperCollider");

		if (sc_DirectoryExists(deprecatedSupportDirectory)) {
			char supportDirectory[PATH_MAX];
			sc_GetUserAppSupportDirectory(supportDirectory, PATH_MAX);
			postfl("WARNING: Deprecated support directory detected: %s\n"
				"Extensions and other contents in this directory will not be available until you move them to the new support directory:\n"
				"%s\n"
				"Quarks will need to be reinstalled due to broken symbolic links.\n\n", deprecatedSupportDirectory, supportDirectory);
		}
#endif

		mHiddenClient->mRunning = true;
		if (opt.mRuntimeDir) {
			int err = chdir(opt.mRuntimeDir);
			if (err)
				error("Cannot change to runtime directory: %s", strerror(errno));
		}
		pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow);
		init_OSC(opt.mPort);
		schedInit();
		onInitRuntime();
	}
}
Пример #3
0
int main(int argc, char *argv[])
{

	list_entry_t *pos;
	int byteStart, byteEnd, globalEnd;
	struct ProcStruct *next;

	schedInit();                                          //init schedule 
  
	printf("SchedInit finished!\n");
	
	cpu_init();                                          //init cpu
 
	printf("Cpu init finished!\n");

	initProcList();                                      //runnbale process 
 
	printf("Init process list finished!\n");

	procInit();                                          //init process table

	printf("The first proc init finished!\n");

	initWaitQueue();                                     //init wait queue

	printf("Init wait queue finished!\n");

	bc_read(&byteStart, &byteEnd, &globalEnd);           //读取字节码

	/*
	for (int i = 0; i < 7; i++) {
		printf("%d %d %d\n", byte_code[i].code, byte_code[i].arg1, byte_code[i].arg2);
	}
*/
	createProcess(byteStart, byteEnd, globalEnd);        //根据字节码的初始下标和终止下标创建第一个进程

//	createProcess(0, 9, 3);                              //根据字节码的初始下标和终止下标创建第一个进程

	printCurrent();

	addRunEqueue();                                     //将创建的进程加入到就绪队列
	
	printf("The proc addRunEqueu finished!\n");


	    while (cpu_state != 0 && rq->proc_num)
	    {
		    printf("schedul start...\n");
		    cpuSchedProc();
	    }
	    while (rq->proc_num == 0 && wq->wait_num != 0)
	    {
		    next = waitQueuePickNext(wq);
		    delWaitQueue(wq, next);
		    schedClassEnqueue(next);
		    schedule();
	    }
	
	return 0;
}
Пример #4
0
int main()
{

	pyr_init_mem_pools(2*1024*1024, 256*1024);
	init_OSC(57120);
	schedInit();

	compileLibrary();
	runLibrary(s_run); fflush(postfile);

	return 0;
}
void SC_LanguageClient::initRuntime(const Options& opt)
{
	// start virtual machine
	if (!mRunning) {
		mRunning = true;
		if (opt.mRuntimeDir) {
			int err = chdir(opt.mRuntimeDir);
			if (err)
				error("Cannot change to runtime directory: %s", strerror(errno));
		}
		pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow);
		init_OSC(opt.mPort);
		schedInit();
		onInitRuntime();
	}
}
Пример #6
0
void
menuInit (Widget prnt, PgmState * pgm)
{
  Arg arglist[20];
  Cardinal i = 0;

  //the form with initial menu
  i = 0;
  XtSetArg (arglist[i], XtNleft, XawChainLeft);
  i++;
  XtSetArg (arglist[i], XtNright, XawChainLeft);
  i++;
  XtSetArg (arglist[i], XtNtop, XawChainTop);
  i++;
  XtSetArg (arglist[i], XtNbottom, XawChainTop);
  i++;
//  XtSetArg(arglist[i],XtNwidth,550);i++;
//  XtSetArg(arglist[i],XtNheight,200);i++;
  XtSetArg (arglist[i], XtNmappedWhenManaged, False);
  i++;

  pgm->main_form =
    XtCreateManagedWidget ("MainMenuForm", formWidgetClass, prnt, arglist, i);
  mainMenuInit (pgm->main_form, pgm);

  //the setup form
  pgm->setup_form =
    XtCreateManagedWidget ("SetupForm", formWidgetClass, prnt, arglist, i);
  setupInit (pgm->setup_form, pgm);

  i = 0;
  XtSetArg (arglist[i], XtNleft, XawChainLeft);
  i++;
  XtSetArg (arglist[i], XtNright, XawChainRight);
  i++;
  XtSetArg (arglist[i], XtNtop, XawChainTop);
  i++;
  XtSetArg (arglist[i], XtNbottom, XawChainBottom);
  i++;
  XtSetArg (arglist[i], XtNmappedWhenManaged, False);
  i++;

  //the form with master list, next/prev tp commands etc... and a back button
  pgm->mlist_form =
    XtCreateManagedWidget ("MasterListForm", formWidgetClass, prnt, arglist,
                           i);
  masterListInit (pgm->mlist_form, pgm);

  //program guide
  pgm->epg_form =
    XtCreateManagedWidget ("EpgForm", formWidgetClass, prnt, arglist, i);
  epgDlgInit (pgm->epg_form, pgm);

  //videotext
  pgm->vt_form =
    XtCreateManagedWidget ("VtForm", formWidgetClass, prnt, arglist, i);
  vtDlgInit (pgm->vt_form, pgm);

  //the form with favlist
  pgm->favlist_form =
    XtCreateManagedWidget ("FavListForm", formWidgetClass, prnt, arglist, i);
  favListDlgInit (pgm->favlist_form, pgm);

  //scheduled recordings
  pgm->sched_form =
    XtCreateManagedWidget ("SchedForm", formWidgetClass, prnt, arglist, i);
  schedInit (pgm->sched_form, pgm);

  //the switch form
  pgm->switch_form =
    XtCreateManagedWidget ("SwitchForm", formWidgetClass, prnt, arglist, i);
  switchDlgInit (pgm->switch_form, pgm);

/*
	pgm->stats_form=XtCreateManagedWidget("StatsForm",formWidgetClass,prnt,arglist,i);
	statsInit(pgm->stats_form,pgm);
*/

  pgm->rmd_form =
    XtCreateManagedWidget ("ReminderForm", formWidgetClass, prnt, arglist, i);
  reminderListInit (pgm->rmd_form, pgm);

  pgm->rmd_ed_form =
    XtCreateManagedWidget ("ReminderEdForm", formWidgetClass, prnt, arglist,
                           i);
  reminderEdInit (pgm->rmd_ed_form, pgm);

  pgm->mod_tp_form =
    XtCreateManagedWidget ("ModTpForm", formWidgetClass, prnt, arglist, i);
  modTpInit (pgm->mod_tp_form, pgm);

  pgm->ed_sched_form =
    XtCreateManagedWidget ("EdSched", formWidgetClass, prnt, arglist, i);
  schedEdInit (pgm->ed_sched_form, pgm);

  pgm->fe_ft_form =
    XtCreateManagedWidget ("FeFt", formWidgetClass, prnt, arglist, i);
  feFtInit (pgm->fe_ft_form, pgm);

//      pgm->fav_ed_form=XtCreateManagedWidget("FavEd",formWidgetClass,prnt,arglist,i);
//      favEdInit(pgm->fav_ed_form,pgm);
}