Main Page | Data Structures | Directories | File List | Data Fields | Globals

Sadie_NewFunctions.c

Go to the documentation of this file.
00001 
00017 /* This file is part of tclSadie.
00018 
00019    tclSadie is free software; you can redistribute it and/or modify it
00020    under the terms of the GNU General Public License as published by
00021    the Free Software Foundation; either version 2 of the License, or
00022    (at your option) any later version.
00023 
00024    tclSadie is distributed in the hope that it will be useful, but
00025    WITHOUT ANY WARRANTY; without even the implied warranty of
00026    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00027    General Public License for more details.
00028 
00029    You should have received a copy of the GNU General Public License
00030    along with tclSadie; if not, write to the Free Software Foundation,
00031    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.  */
00032 
00033 #if HAVE_CONFIG_H
00034 #include <config.h>
00035 #endif /* HAVE_CONFIG_H */
00036 #include <tcl.h>
00037 #include <tk.h>
00038 #include <sadie.h>
00039 #include "tclsadie.h"
00040 
00045 static const char atitle[] = DEFAULT_TCL_ARRAY_TITLE;
00046 static const char ixname[] = DEFAULT_OUT_IMAGE_NAME_INDEX;
00072 int
00073 Sadie_NewFunctions_SineWaveCmd (ClientData client_data, Tcl_Interp *interp,
00074                                 int objc, Tcl_Obj * const objv[])
00075 {
00076   IMAGE *outimg = NULL;
00077   uint32_t lines, pix;
00078   double period, phase;
00079 
00080   if (objc != 2)
00081     {
00082       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00083       return TCL_ERROR;
00084     }
00085   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00086        != TCL_OK)
00087       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00088           != TCL_OK)
00089       || (GetSadieDoubleFromObj2 (interp, objv[1], "period", &period)
00090           != TCL_OK)
00091       || (GetSadieDoubleFromObj2 (interp, objv[1], "phase", &phase)
00092           != TCL_OK))
00093     return TCL_ERROR;
00094   SINEWAVE (lines, pix, period, phase, &outimg);
00095   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00096 }
00097 
00117 int
00118 Sadie_NewFunctions_ChirpCmd (ClientData client_data, Tcl_Interp *interp,
00119                              int objc, Tcl_Obj * const objv[])
00120 {
00121   IMAGE *outimg = NULL;
00122   uint32_t lines, pix;
00123   double period;
00124 
00125   if (objc != 2)
00126     {
00127       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00128       return TCL_ERROR;
00129     }
00130   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00131        != TCL_OK)
00132       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00133           != TCL_OK)
00134       || (GetSadieDoubleFromObj2 (interp, objv[1], "period", &period)
00135           != TCL_OK))
00136     return TCL_ERROR;
00137   CHIRP (lines, pix, period, &outimg);
00138   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00139 }
00140 
00160 int
00161 Sadie_NewFunctions_SineStarCmd (ClientData client_data, Tcl_Interp *interp,
00162                                 int objc, Tcl_Obj * const objv[])
00163 {
00164   IMAGE *outimg = NULL;
00165   uint32_t lines, pix;
00166   double period;
00167 
00168   if (objc != 2)
00169     {
00170       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00171       return TCL_ERROR;
00172     }
00173   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00174        != TCL_OK)
00175       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00176           != TCL_OK)
00177       || (GetSadieDoubleFromObj2 (interp, objv[1], "period", &period)
00178           != TCL_OK))
00179     return TCL_ERROR;
00180   SINESTAR (lines, pix, period, &outimg);
00181   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00182 }
00183 
00202 int
00203 Sadie_NewFunctions_CheckerboardCmd (ClientData client_data, Tcl_Interp *interp,
00204                                     int objc, Tcl_Obj * const objv[])
00205 {
00206   IMAGE *outimg = NULL;
00207   uint32_t lines, pix;
00208   uint32_t checklines, checkpix;
00209 
00210   if (objc != 2)
00211     {
00212       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00213       return TCL_ERROR;
00214     }
00215   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00216        != TCL_OK)
00217       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00218           != TCL_OK)
00219       || (GetSadieUintFromObj2 (interp, objv[1], "checklines", &checklines)
00220           != TCL_OK)
00221       || (GetSadieUintFromObj2 (interp, objv[1], "checkpix", &checkpix)
00222           != TCL_OK))
00223     return TCL_ERROR;
00224   CHECKER (lines, pix, checklines, checkpix, &outimg);
00225   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00226 }
00227 
00248 int
00249 Sadie_NewFunctions_GrayScaleCmd (ClientData client_data, Tcl_Interp *interp,
00250                                  int objc, Tcl_Obj * const objv[])
00251 {
00252   IMAGE *outimg = NULL;
00253   uint32_t lines, pix, number;
00254   PIXEL min, max;
00255 
00256   if (objc != 2)
00257     {
00258       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00259       return TCL_ERROR;
00260     }
00261   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00262        != TCL_OK)
00263       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00264           != TCL_OK)
00265       || (GetSadieUintFromObj2 (interp, objv[1], "number", &number)
00266           != TCL_OK)
00267       || (GetSadiePixelFromObj2 (interp, objv[1], "min", &min)
00268           != TCL_OK)
00269       || (GetSadiePixelFromObj2 (interp, objv[1], "max", &max)
00270           != TCL_OK))
00271     return TCL_ERROR;
00272   GRAYSCAL (lines, pix, number, min, max, &outimg);
00273   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00274 }
00275 
00311 int
00312 Sadie_NewFunctions_FunctionCmd (ClientData client_data, Tcl_Interp *interp,
00313                                 int objc, Tcl_Obj * const objv[])
00314 {
00315   IMAGE *outimg = NULL;
00316   uint32_t lines, pix;
00317   int type;
00318   double radiuslines, radiuspix, alpha;
00319 
00320   if (objc != 2)
00321     {
00322       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00323       return TCL_ERROR;
00324     }
00325   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00326        != TCL_OK)
00327       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00328           != TCL_OK)
00329       || (GetSadieIntFromObj2 (interp, objv[1], "type", &type)
00330           != TCL_OK)
00331       || (GetSadieDoubleFromObj2 (interp, objv[1], "radiuslines", &radiuslines)
00332           != TCL_OK)
00333       || (GetSadieDoubleFromObj2 (interp, objv[1], "radiuspix", &radiuspix)
00334           != TCL_OK)
00335       || (GetSadieDoubleFromObj2 (interp, objv[1], "alpha", &alpha)
00336           != TCL_OK))
00337     return TCL_ERROR;
00338   FUNCTION (lines, pix, radiuslines, radiuspix, alpha, (short)type, &outimg);
00339   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00340 }
00341 
00362 int
00363 Sadie_NewFunctions_RandomCmd (ClientData client_data, Tcl_Interp *interp,
00364                               int objc, Tcl_Obj * const objv[])
00365 {
00366   IMAGE *outimg = NULL;
00367   uint32_t lines, pix;
00368   int type;
00369   double deviation;
00370 
00371   if (objc != 2)
00372     {
00373       Tcl_WrongNumArgs (interp, 1, objv, atitle);
00374       return TCL_ERROR;
00375     }
00376   if ((GetSadieUintFromObj2 (interp, objv[1], "lines", &lines)
00377        != TCL_OK)
00378       || (GetSadieUintFromObj2 (interp, objv[1], "pix", &pix)
00379           != TCL_OK)
00380       || (GetSadieIntFromObj2 (interp, objv[1], "type", &type)
00381           != TCL_OK)
00382       || (GetSadieDoubleFromObj2 (interp, objv[1], "deviation", &deviation)
00383           != TCL_OK))
00384     return TCL_ERROR;
00385   RANDOM (lines, pix, (short)type, deviation, &outimg);
00386   return SetSadieImageObj2 (interp, objv[1], ixname, outimg);
00387 }
00388 
00395 int
00396 Sadie_NewFunctions_Init (Tcl_Interp *interp)
00397 {
00398   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_SineWave",
00399                         Sadie_NewFunctions_SineWaveCmd, NULL, NULL);
00400   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_Chirp",
00401                         Sadie_NewFunctions_ChirpCmd, NULL, NULL);
00402   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_SineStar",
00403                         Sadie_NewFunctions_SineStarCmd, NULL, NULL);
00404   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_Checkerboard",
00405                         Sadie_NewFunctions_CheckerboardCmd, NULL, NULL);
00406   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_GrayScale",
00407                         Sadie_NewFunctions_GrayScaleCmd, NULL, NULL);
00408   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_Function",
00409                         Sadie_NewFunctions_FunctionCmd, NULL, NULL);
00410   Tcl_CreateObjCommand (interp, "Sadie_NewFunctions_Random",
00411                         Sadie_NewFunctions_RandomCmd, NULL, NULL);
00412   return TCL_OK;
00413 }
00414 
00415 
00416 
00417 
00418 
00419 

Generated on Fri Jul 8 14:55:01 2005 for tclSadie by  doxygen 1.4.2