Fixed AutoDoc indentation, spelling, grammar.
[AROS.git] / workbench / tools / HDToolBox / main.c
blob1fd0d34052eb4bbaa5c27445a891cb6fca7d8109
1 /*
2 Copyright © 1995-2008, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <proto/alib.h>
7 #include <proto/exec.h>
8 #include <proto/dos.h>
9 #include <proto/intuition.h>
11 #include <exec/memory.h>
12 #include <exec/nodes.h>
14 #include <stdio.h>
15 #include <stdlib.h>
17 #include "devices.h"
18 #include "error.h"
19 #include "gui.h"
20 #include "hdtoolbox_support.h"
21 #include "locale.h"
22 #include "partitions.h"
23 #include "partitiontables.h"
24 #include "platform.h"
25 #include "ptclass.h"
26 #include "prefs.h"
28 #include "debug.h"
30 extern struct ListNode root;
32 struct IntuitionBase *IntuitionBase = NULL;
33 struct GfxBase *GfxBase = NULL;
34 struct PartitionBase *PartitionBase = NULL;
36 LONG initEnv(char *device)
38 LONG retval;
40 D(bug("[HDToolBox] initEnv('%s')\n", device));
42 if (!InitListNode(&root, NULL))
43 return ERR_MEMORY;
44 IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library", 37);
45 if (!IntuitionBase)
46 return ERR_INTUI;
47 GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 37);
48 if (!GfxBase)
49 return ERR_GFX;
50 PartitionBase = (struct PartitionBase *)OpenLibrary("partition.library", 1);
51 if (!PartitionBase)
52 return ERR_PARTITION;
54 retval = initGUI();
55 if (retval != ERR_NONE)
56 return retval;
58 LoadPrefs("ENV:hdtoolbox.prefs");
60 return ERR_NONE;
63 void uninitEnv()
65 D(bug("[HDToolBox] uninitEnv()\n"));
67 deinitGUI();
68 if (PartitionBase)
69 CloseLibrary((struct Library *)PartitionBase);
70 if (GfxBase)
71 CloseLibrary((struct Library *)GfxBase);
72 if (IntuitionBase)
73 CloseLibrary((struct Library *)IntuitionBase);
74 freeDeviceList();
77 void waitMessage()
79 ULONG sigs = 0;
81 D(bug("[HDToolBox] waitMessage()\n"));
83 while (!QuitGUI(&sigs))
85 if (sigs)
87 sigs = Wait(sigs | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D);
88 if (sigs & SIGBREAKF_CTRL_C)
89 break;
90 if (sigs & SIGBREAKF_CTRL_D)
91 break;
96 int main(int argc, char **argv)
98 ULONG error;
99 char *device;
101 D(bug("[HDToolBox] main()\n"));
103 InitLocale("System/Tools/HDToolBox.catalog", 1);
104 device = argc > 1 ? argv[1] : NULL;
105 if ((error=initEnv(device))==ERR_NONE)
107 waitMessage();
109 else
110 printf("Error %d\n", (int)error);
112 uninitEnv();
113 CleanupLocale();
114 return 0;