/**
 * Scout - The Amiga System Monitor
 *
 *------------------------------------------------------------------
 *
 * 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
 * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * You must not use this source code to gain profit of any kind!
 *
 *------------------------------------------------------------------
 *
 * @author Andreas Gelhausen
 * @author Richard Körber <rkoerber@gmx.de>
 */


/* Prototypes for functions defined in
objects/scout_tasks.c
 */

struct TaskEntry {
    struct Task *te_Addr;
    UBYTE te_Address[ADDRESS_LENGTH];
    UBYTE te_Name[NODENAME_LENGTH];
    UBYTE te_Pri[NUMBER_LENGTH];
    UBYTE te_Type[NODETYPE_LENGTH];
    UBYTE te_Num[NUMBER_LENGTH];
    UBYTE te_State[TASK_STATE_LENGTH];
    UBYTE te_CPU[NUMBER_LENGTH];
    UBYTE te_SigWait[NUMBER_LENGTH];
    UBYTE te_FreeStack[NUMBER_LENGTH];
};

UBYTE *GetTaskState( UBYTE );

UBYTE *GetNodeType( UBYTE );

UBYTE *GetTaskName( struct Task * );

void PrintTasks( char * );

void SendTaskList( void );

#define TasksWindowObject                    NewObject(TasksWinClass->mcc_Class, NULL

struct TasksWinData {
    UBYTE twd_Title[WINDOW_TITLE_LENGTH];
    APTR twd_Application;
    APTR twd_TaskList;
    APTR twd_TaskText;
    APTR twd_TaskCount;
    APTR twd_RemoveButton;
    APTR twd_PriorityButton;
    APTR twd_MoreButton;
    APTR twd_SignalButton;
    APTR twd_BreakButton;
    APTR twd_FreezeButton;
    APTR twd_ActivateButton;
    APTR twd_CPUGauge;
    APTR twd_CPUCycle;
    APTR twd_RefreshString;
    ULONG twd_CPUCheck;
    struct MUI_InputHandlerNode twd_TimerHandler;
    BOOL twd_TimerHandlerAdded;
    struct TaskEntry twd_NewEntry;
    struct TaskEntry twd_CompareEntry;
};

ULONG __asm __saveds TasksWinDispatcher( register __a0 struct IClass *cl,
                                         register __a2 Object *obj,
                                         register __a1 Msg msg );

