Changeset 2562

Show
Ignore:
Timestamp:
05/30/99 11:35:20 (15 years ago)
Author:
ucaccsp
Message:

Make the tcl/tk code independent from the session_struct.

Location:
rat/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • rat/trunk/main.c

    r2553 r2562  
    5757#endif 
    5858 
     59static int tcl_process_events(session_struct *sp) 
     60{ 
     61        int i = 0; 
     62 
     63        while (!audio_is_ready(sp->audio_device) && tcl_process_event() && i < 16) { 
     64                i++; 
     65        } 
     66        return i; 
     67} 
     68 
    5969int 
    6070main(int argc, char *argv[]) 
     
    101111                        sp[0]->mbus_ui = mbus_init(mbus_ui_rx, NULL); 
    102112                        mbus_addr(sp[0]->mbus_ui, mbus_ui_addr); 
    103                         tcl_init(sp[0], argc, argv, mbus_engine_addr); 
     113                        tcl_init(sp[0]->mbus_ui, argc, argv, mbus_engine_addr); 
    104114                } else { 
    105115                        strncpy(mbus_ui_addr, sp[0]->ui_addr, 30); 
  • rat/trunk/tcltk.c

    r2407 r2562  
    1717#include "memory.h" 
    1818#include "version.h" 
    19 #include "session.h" 
    2019#include "mbus.h" 
    2120#include "mbus_ui.h" 
     
    2423extern char     ui_audiotool[]; 
    2524extern char     ui_transcoder[]; 
    26  
    27 #define MAX_TCL_EVENTS_TO_PROCESS 16 
    2825 
    2926/* Should probably have these functions inline here, rather than in win32.c??? [csp] */ 
     
    3431#endif 
    3532 
    36 Tcl_Interp *interp;     /* Interpreter for application. */ 
    37 char       *engine_addr; 
     33Tcl_Interp      *interp;        /* Interpreter for application. */ 
     34char            *engine_addr; 
     35struct mbus     *mbus_ui; 
    3836 
    3937void 
     
    5654mbus_send_cmd(ClientData ttp, Tcl_Interp *i, int argc, char *argv[]) 
    5755{ 
    58         session_struct *sp = (session_struct *) ttp; 
    59  
    6056        if (argc != 4) { 
    6157                i->result = "mbus_send <reliable> <cmnd> <args>"; 
    6258                return TCL_ERROR; 
    6359        } 
    64  
    65         mbus_qmsg(sp->mbus_ui, engine_addr, argv[2], argv[3], strcmp(argv[1], "R") == 0); 
     60        mbus_qmsg((struct mbus *)ttp, engine_addr, argv[2], argv[3], strcmp(argv[1], "R") == 0); 
    6661        return TCL_OK; 
    6762} 
     
    109104 
    110105int 
    111 tcl_process_events(session_struct *sp) 
    112 { 
    113         int i = 0; 
    114  
    115         while (!audio_is_ready(sp->audio_device) && tcl_process_event() && i < MAX_TCL_EVENTS_TO_PROCESS) { 
    116                 i++; 
    117         } 
    118         return i; 
    119 } 
    120  
    121 int 
    122106tcl_active(void) 
    123107{ 
     
    126110 
    127111int 
    128 tcl_init(session_struct *sp, int argc, char **argv, char *mbus_engine_addr) 
     112tcl_init(struct mbus *mbus_ui, int argc, char **argv, char *mbus_engine_addr) 
    129113{ 
    130         char            *cmd_line_args, buffer[10]; 
     114        char    *cmd_line_args, buffer[10]; 
     115        Tcl_Obj *audiotool_obj; 
    131116 
    132117        Tcl_FindExecutable(argv[0]); 
     
    162147        } 
    163148 
    164         Tcl_CreateCommand(interp, "mbus_send",       mbus_send_cmd,   (ClientData) sp, NULL); 
    165         Tcl_CreateCommand(interp, "mbus_encode_str", mbus_encode_cmd, (ClientData) sp, NULL); 
     149        Tcl_CreateCommand(interp, "mbus_send",       mbus_send_cmd,   (ClientData *) mbus_ui, NULL); 
     150        Tcl_CreateCommand(interp, "mbus_encode_str", mbus_encode_cmd, NULL, NULL); 
    166151#ifdef WIN32 
    167152        Tcl_SetVar(interp, "win32", "1", TCL_GLOBAL_ONLY); 
    168         Tcl_CreateCommand(interp, "puts",        WinPutsCmd,     (ClientData)sp, NULL); 
    169         Tcl_CreateCommand(interp, "getusername", WinGetUserName, (ClientData)sp, NULL); 
    170         Tcl_CreateCommand(interp, "registry",    WinReg,         (ClientData)sp, NULL); 
     153        Tcl_CreateCommand(interp, "puts",        WinPutsCmd,     NULL, NULL); 
     154        Tcl_CreateCommand(interp, "getusername", WinGetUserName, NULL, NULL); 
     155        Tcl_CreateCommand(interp, "registry",    WinReg,         NULL, NULL); 
    171156#else 
    172157        Tcl_SetVar(interp, "win32", "0", TCL_GLOBAL_ONLY); 
     
    185170        Tk_DefineBitmap(interp, Tk_GetUid("stop"),  stop_bits,  stop_width,  stop_height); 
    186171 
    187         if (sp->mode == AUDIO_TOOL) { 
    188                 int      len           = strlen(ui_audiotool); 
    189                 Tcl_Obj *audiotool_obj = Tcl_NewStringObj(ui_audiotool, strlen(ui_audiotool)); 
    190                 debug_msg("ui_script len %d bytes\n", len); 
    191                 if (Tcl_EvalObj(interp, audiotool_obj) != TCL_OK) { 
    192                         fprintf(stderr, "ui_audiotool error: %s\n", Tcl_GetStringResult(interp)); 
    193                 } 
    194         } else if (sp->mode == TRANSCODER) { 
    195                 if (Tcl_EvalObj(interp, Tcl_NewStringObj(ui_transcoder, strlen(ui_transcoder))) != TCL_OK) { 
    196                         fprintf(stderr, "ui_transcoder error: %s\n", interp->result); 
    197                 } 
    198         } else { 
    199                 debug_msg("Unknown mode: huh?"); 
    200                 abort(); 
     172        audiotool_obj = Tcl_NewStringObj(ui_audiotool, strlen(ui_audiotool)); 
     173        if (Tcl_EvalObj(interp, audiotool_obj) != TCL_OK) { 
     174                fprintf(stderr, "ui_audiotool error: %s\n", Tcl_GetStringResult(interp)); 
    201175        } 
     176 
    202177        while (tcl_process_event()) { 
    203178                /* Processing Tcl events, to allow the UI to initialize... */ 
  • rat/trunk/tcltk.h

    r2461 r2562  
    1414#define _TCLTK_H 
    1515 
    16 struct session_tag; 
    17  
    1816void    tcl_send(char *command); 
    19 int     tcl_init(struct session_tag *session_pointer, int argc, char **argv, char *mbus_engine_addr); 
     17int     tcl_init(struct mbus *mbus_ui, int argc, char **argv, char *mbus_engine_addr); 
    2018void    tcl_exit(void); 
    2119int     tcl_process_event(void); 
    2220int     tcl_process_all_events(void); 
    23 int     tcl_process_events(struct session_tag *session_pointer); 
    2421int     tcl_active(void); 
    2522