From 27e30ab3229cc228195c1fabdae94fd147a48c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Fillod=2C=20F8CFE?= Date: Tue, 22 Jan 2002 00:53:01 +0000 Subject: [PATCH] split rig and rot commands into tclrig.c and tclrot.c git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@893 7ae35d74-ebe9-4afe-98af-79ac388436b8 --- tcl/hamlibtcl.c | 142 +++--------------------------------------------- 1 file changed, 9 insertions(+), 133 deletions(-) diff --git a/tcl/hamlibtcl.c b/tcl/hamlibtcl.c index cad329ef4..8ae9bd9f4 100644 --- a/tcl/hamlibtcl.c +++ b/tcl/hamlibtcl.c @@ -1,8 +1,8 @@ /* * Hamlib tcl/tk bindings - main file - * Copyright (c) 2001 by Stephane Fillod + * Copyright (c) 2001,2002 by Stephane Fillod * - * $Id: hamlibtcl.c,v 1.2 2001-07-13 19:08:15 f4cfe Exp $ + * $Id: hamlibtcl.c,v 1.3 2002-01-22 00:53:01 fillods Exp $ * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -27,138 +27,11 @@ #include #include #include +#include +#include -/* - * since there's no long long support in tcl API, - * freq_t is mapped to double object, which has enough - * significant digits for frequencies up to tens of GHz. - */ - - -int DoRig(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *CONST objv[]); -int DoRigLib(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *CONST objv[]); - - -int -DoRigLib(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *CONST objv[]) -{ - Tcl_Obj *resultPtr; - int error; - char *subcmd; - - /* objc gives the number of "objects" = arguments to - the command */ - if (objc != 2 && objc != 3) { - Tcl_WrongNumArgs(interp, 1, objv, "cmd ?model?"); - return TCL_ERROR; - } - - /* Process the arguments - objv is an array holding the arguments */ - - /* Use Tcl_GetIntFromObj to put an integer value - into a variable from the argument list */ - - subcmd = Tcl_GetString(objv[1]); - resultPtr = Tcl_GetObjResult(interp); - - /* TODO: make use of flex here! */ - - if (!strcasecmp(subcmd, "version")) { - Tcl_SetStringObj(resultPtr, hamlib_version, -1); - } else if (!strcasecmp(subcmd, "help")) { - Tcl_SetStringObj(resultPtr, "no help yet!", -1); - } else if (!strcasecmp(subcmd, "init")) { - rig_model_t model; - RIG *tcl_rig; - char rigcmd_name[16]; - static int rigcmd_cpt=0; - - error = Tcl_GetIntFromObj(interp, objv[2], (int*)&model); - if (error != TCL_OK) - return error; - tcl_rig = rig_init(model); - if (!tcl_rig) - return TCL_ERROR; - sprintf(rigcmd_name, "rig%d", rigcmd_cpt++); - Tcl_CreateObjCommand(interp, rigcmd_name, DoRig, - (ClientData)tcl_rig, (Tcl_CmdDeleteProc *)NULL); - Tcl_SetStringObj(resultPtr, rigcmd_name, -1); - } else { - return TCL_ERROR; - } - return TCL_OK; -} - -int -DoRig(ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *CONST objv[]) -{ - Tcl_Obj *resultPtr; - int error; - char *subcmd; - RIG *tcl_rig = (RIG*)clientData; - - if (!tcl_rig) - return TCL_ERROR; - -#if 0 - /* objc gives the number of "objects" = arguments to - the command */ - if (!(objc == 2 || objc == 3)) { - Tcl_WrongNumArgs(interp, 1, objv, "var1 var2 ?var3?"); - return TCL_ERROR; - } -#endif - - /* Process the arguments - objv is an array holding the arguments */ - - /* Use Tcl_GetIntFromObj to put an integer value - into a variable from the argument list */ - - subcmd = Tcl_GetString(objv[1]); - resultPtr = Tcl_GetObjResult(interp); - - /* TODO: make use of flex here! */ - - if (!strcasecmp(subcmd, "open")) { - rig_open(tcl_rig); - return TCL_OK; - } else if (!strcasecmp(subcmd, "set_freq")) { - double d; - freq_t freq; - - error = Tcl_GetDoubleFromObj(interp, objv[2], &d); - if (error != TCL_OK) - return error; - freq = (freq_t)d; - - rig_set_freq(tcl_rig, RIG_VFO_CURR, freq); - return TCL_OK; - } else if (!strcasecmp(subcmd, "get_strength")) { - int strength; - - rig_get_strength(tcl_rig, RIG_VFO_CURR, &strength); - Tcl_SetIntObj(resultPtr, strength); - return TCL_OK; - } else if (!strcasecmp(subcmd, "close")) { - - rig_close(tcl_rig); - return TCL_OK; - } else if (!strcasecmp(subcmd, "cleanup")) { - - rig_cleanup(tcl_rig); - return TCL_OK; - } else { - return TCL_ERROR; - } - return TCL_OK; -} - +#include "tclrig.h" +#include "tclrot.h" int Hamlib_Init(Tcl_Interp *interp) @@ -173,6 +46,9 @@ int Hamlib_Init(Tcl_Interp *interp) Tcl_CreateObjCommand(interp, "rig", DoRigLib, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL); + Tcl_CreateObjCommand(interp, "rot", DoRotLib, + (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL); + return TCL_OK; }