[teklib-general] teklib: Added OpenDisplay, CloseDisplay, QueryDisplays, GetNextD...

hg-notify at neoscientists.org hg-notify at neoscientists.org
Sun Dec 30 01:34:23 CET 2007


details:   http://hg.teklib.org/teklib/rev/060f2a7620a4
changeset: 143:060f2a7620a4
user:      Timm S. Mueller <tmueller at neoscientists.org>
date:      Sun Dec 30 01:31:50 2007 +0100
description:
Added OpenDisplay, CloseDisplay, QueryDisplays, GetNextDisplay

diffs (truncated from 268 to 100 lines):

diff -r dea3be24b43a -r 060f2a7620a4 src/visual/visual_api.c
--- a/src/visual/visual_api.c	Tue Dec 18 21:26:37 2007 +0100
+++ b/src/visual/visual_api.c	Sun Dec 30 01:31:50 2007 +0100
@@ -4,61 +4,20 @@
 /* TODO */
 #define DEF_DISPLAYNAME	"display_x11"
 
-static TAPTR
-visi_getdisplay(TMOD_VIS *mod, TTAGITEM *tags)
-{
-	/* displaybase in taglist? */
-	TAPTR d = (struct TVRequest *) TGetTag(tags, TVisual_Display, TNULL);
-	if (d == TNULL)
-	{
-		TSTRPTR name;
-		TBOOL success;
-		TTAG hashval;
-
-		/* displayname in taglist? */
-		name = (TSTRPTR) TGetTag(tags, TVisual_DisplayName, TNULL);
-
-		/* use default name: */
-		if (name == TNULL) name = DEF_DISPLAYNAME;
-
-		/* lookup display by name: */
-		TExecLock(mod->vis_ExecBase, mod->vis_Lock);
-		success = vis_gethash(mod, mod->vis_Displays, name, &hashval);
-		TExecUnlock(mod->vis_ExecBase, mod->vis_Lock);
-
-		if (success)
-			d = (TAPTR) hashval;
-		else
-		{
-			/* try to open named display: */
-			d = TExecOpenModule(mod->vis_ExecBase, name, 0, TNULL);
-			if (d)
-			{
-				/* store display in hash: */
-				TExecLock(mod->vis_ExecBase, mod->vis_Lock);
-				success = vis_puthash(mod, mod->vis_Displays, name, (TTAG) d);
-				TExecUnlock(mod->vis_ExecBase, mod->vis_Lock);
-
-				if (!success)
-				{
-					TExecCloseModule(mod->vis_ExecBase, d);
-					d = TNULL;
-				}
-			}
-		}
-	}
-
-	return d;
-}
+/*****************************************************************************/
 
 static struct TVRequest *
 visi_getreq(TMOD_VIS *inst, TUINT cmd, TAPTR display, TTAGITEM *tags)
 {
+	TMOD_VIS *mod = (TMOD_VIS *) inst->vis_Module.tmd_ModSuper;
 	struct TVRequest *req = TNULL;
-	TAPTR d = display ? display : visi_getdisplay(inst, tags);
-	if (d)
+
+	if (display == TNULL)
+		display = vis_opendisplay(mod, tags);
+
+	if (display)
 	{
-		if (inst->vis_Module.tmd_ModSuper == (struct TModule *) inst)
+		if (mod == inst)
 		{
 			TExecLock(inst->vis_ExecBase, inst->vis_Lock);
 			if (inst->vis_InitRequest)
@@ -70,7 +29,7 @@ visi_getreq(TMOD_VIS *inst, TUINT cmd, T
 			else
 			{
 				TExecUnlock(inst->vis_ExecBase, inst->vis_Lock);
-				req = TDisplayAllocReq(d);
+				req = TDisplayAllocReq(display);
 			}
 
 			if (req)
@@ -104,7 +63,7 @@ visi_getreq(TMOD_VIS *inst, TUINT cmd, T
 
 			if (req == TNULL)
 			{
-				req = TDisplayAllocReq(d);
+				req = TDisplayAllocReq(display);
 				if (req)
 					inst->vis_NumRequests++;
 			}
@@ -116,6 +75,7 @@ visi_getreq(TMOD_VIS *inst, TUINT cmd, T
 			}
 		}
 	}
+
 	return req;
 }
 
@@ -169,7 +129,7 @@ EXPORT TAPTR vis_openvisual(TMOD_VIS *mo


More information about the teklib-general mailing list