/*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software
*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
// (C) PicoPeta Simputers Pvt. Ltd. 

#include <signal.h>
#include "init.h"

int systemapi_Init(Tcl_Interp *interp){
  Tcl_InitStubs(interp, "8.4", 0);
      Tcl_CreateObjCommand(interp, "volume", volume_cntl,
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

    Tcl_CreateObjCommand(interp, "sc_sk_store", sc_sk_store, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_load", sc_sk_load, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_undo", sc_sk_undo, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_pen_down", sc_sk_pen_down, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_add", sc_sk_add, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean", sc_sk_clean, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw", sc_sk_draw, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_delete", sc_sk_delete, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_merge", sc_sk_merge, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_dump", sc_sk_dump, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_copyto_clipbrd", sc_sk_copyto_clipbrd, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_moveto_clipbrd", sc_sk_moveto_clipbrd, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

    Tcl_CreateObjCommand(interp, "sc_sk_draw_new", sc_sk_draw_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_load_new", sc_sk_load_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_undo_new", sc_sk_undo_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_pen_down_new", sc_sk_pen_down_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_add_new", sc_sk_add_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean_new", sc_sk_clean_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw_rect", sc_sk_draw_rect, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw_lines", sc_sk_draw_lines, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
/*
    Tcl_CreateObjCommand(interp, "sc_sk_copyfrom_clipbrd", 
       sc_sk_copyfrom_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
*/

    Tcl_CreateObjCommand(interp, "sc_sk_movefrom_clipbrd",
       sc_sk_movefrom_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean_clipbrd",
       sc_sk_clean_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

        Tcl_CreateObjCommand(interp, "sk_store", sk_store, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_load", sk_load, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_undo", sk_undo, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_pen_up", sk_pen_up, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_pen_down", sk_pen_down, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_add", sk_add, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_clean", sk_clean, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_dump", sk_dump, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_draw_lines", sk_draw_lines, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

   sc_sk_init();
   sk_init();
    
  Tcl_PkgProvide(interp, "systemapi", "0.9");
  return TCL_OK;
}

int Tclsystemapi_Init(Tcl_Interp *interp){
  Tcl_InitStubs(interp, "8.4", 0);
      Tcl_CreateObjCommand(interp, "volume", volume_cntl,
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

            Tcl_CreateObjCommand(interp, "sc_sk_store", sc_sk_store, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_load", sc_sk_load, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_undo", sc_sk_undo, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_pen_down", sc_sk_pen_down, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_add", sc_sk_add, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean", sc_sk_clean, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw", sc_sk_draw, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_delete", sc_sk_delete, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_copy", sc_sk_copy, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_merge", sc_sk_merge, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_dump", sc_sk_dump, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_copyto_clipbrd", sc_sk_copyto_clipbrd, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_moveto_clipbrd", sc_sk_moveto_clipbrd, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

    Tcl_CreateObjCommand(interp, "sc_sk_draw_new", sc_sk_draw_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_load_new", sc_sk_load_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_undo_new", sc_sk_undo_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_pen_down_new", sc_sk_pen_down_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_add_new", sc_sk_add_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean_new", sc_sk_clean_new, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw_rect", sc_sk_draw_rect, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_draw_lines", sc_sk_draw_lines, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clear", sc_sk_clear, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
/*
    Tcl_CreateObjCommand(interp, "sc_sk_copyfrom_clipbrd", 
       sc_sk_copyfrom_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
*/

    Tcl_CreateObjCommand(interp, "sc_sk_movefrom_clipbrd",
       sc_sk_movefrom_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sc_sk_clean_clipbrd",
       sc_sk_clean_clipbrd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);



        Tcl_CreateObjCommand(interp, "sk_store", sk_store, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_load", sk_load, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_undo", sk_undo, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_pen_up", sk_pen_up, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_pen_down", sk_pen_down, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_add", sk_add, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_clean", sk_clean, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_dump", sk_dump, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_draw_lines", sk_draw_lines, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
    Tcl_CreateObjCommand(interp, "sk_draw", sk_draw, 
            (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);

    sc_sk_init();
    sk_init();
  Tcl_PkgProvide(interp, "systemapi", "0.9");
  return TCL_OK;
}
int systemapi_SafeInit(Tcl_Interp *interp){
  return TCL_OK;
}
int Tclsystemapi_SafeInit(Tcl_Interp *interp){
  return TCL_OK;
}
