henesyinit from lsubb0c8bdb6 years agoHistory
82 lines · 2.1 KB · C
RawDownload
#pragma	lib	"libomero.a"#pragma src "/sys/src/libomero" typedef struct Panel Panel;typedef struct Oev Oev;typedef struct Repl Repl; enum {	Npaths = 10, 	Fdata = 0,	Fctl, }; struct Repl{	Repl*	next;	// in replica list	char*	path;	// e.g., "/n/.../row:2/slider:volume"	int	fd[2];	// data and ctl fds}; struct Panel{	QLock;		// name is WORM, so mostly for repl.	Ref;		// One for user + one per event pointing to it.	int	gone;	// true if the panel is gone.	char*	name;	// e.g., "slider:volume"	Panel*	next;	// in list of panels	Repl*	repl;	// known replicas	int	nrepl;	Channel*evc;	// events here or through oeventchan(nil)}; struct Oev {	char*	path;	// to repl	char*	ev;	char*	arg; 	Panel*	panel;}; /* User interface. because of * replication we have to provide many I/O functions, sic. */Panel*		createpanel(char* name, char* type, char* omero);Panel*		createsubpanel(Panel* g, char* name);char*		panelpath(Panel*);int		openpanel(Panel* g, int omode);int		openpanelctl(Panel* g);void		closepanel(Panel* g);void		closepanelctl(Panel* g);vlong		seekpanel(Panel*g, vlong pos, int type);long		readpanel(Panel* g, void* buf, long len);Dir*		dirstatpanel(Panel* g);void*		readallpanel(Panel* g, long* l);long		writepanel(Panel* g, void* buf, long len);long		readpanelctl(Panel* g, void* buf, long len);long		writepanelctl(Panel* g, void* buf, long len);void		omeroterm(void);Channel*	omeroeventchan(Panel* g);void		clearoev(Oev* e);void		removepanel(Panel* g);int		panelctl(Panel* g, char* fmt, ...); // Helpersvoid		paneldump(int fd);int		plumbexec(char* dir, char* arg);int		plumblook(char* dir, char* arg);void		evhistory(char* prg, char* ev, char* arg);Channel*	createportproc(char* name);int		createport(char* name); // Implementation. Do not usevoid		movepanel(char* from, char* to);Repl*		findrepl(Panel* g, char* path, int mkit);void		wpanelexcl(Panel* g, char* what, void* buf, long len, Repl* excl);Panel*		findpanel(char* n, int mkit);Panel*		mkpanel(char* path);void		rpaneldata(Panel* g, Repl* r);Panel*		newpanel(char* path, int mkit); extern char*	appluiaddress;extern int	omerodebug;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t