1 /* Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ** Redistribution and use in source and binary forms, with or without
4 ** modification, are permitted provided that the following conditions
7 ** 1. Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
14 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ** POSSIBILITY OF SUCH DAMAGE.
27 #include "diskimagegui.h"
28 #include <proto/exec.h>
29 #include <proto/utility.h>
30 #include <proto/commodities.h>
32 struct Library
*CxBase
;
33 struct MsgPort
*BrokerPort
;
36 BOOL
RegisterCxBroker (void) {
40 CxBase
= OpenLibrary("commodities.library", MIN_OS_VERSION
);
45 BrokerPort
= CreateMsgPort();
50 ClearMem(&nb
, sizeof(nb
));
51 nb
.nb_Version
= NB_VERSION
;
52 nb
.nb_Name
= PROGNAME
;
53 nb
.nb_Title
= PROGNAME
;
54 nb
.nb_Descr
= (STRPTR
)GetString(&LocaleInfo
, MSG_APPDESCRIPTION
);
55 nb
.nb_Unique
= NBU_UNIQUE
|NBU_NOTIFY
;
56 nb
.nb_Flags
= COF_SHOW_HIDE
;
57 nb
.nb_Pri
= TTInteger(Icon
, "CX_PRIORITY", 0);
58 nb
.nb_Port
= BrokerPort
;
60 Broker
= CxBroker(&nb
, NULL
);
65 popkey
= TTString(Icon
, "CX_POPKEY", NULL
);
66 if (popkey
&& TrimStr(popkey
)[0]) {
67 CxObj
*filter
, *sender
, *translate
;
68 filter
= CxFilter(popkey
);
69 sender
= CxSender(BrokerPort
, EVT_POPKEY
);
70 translate
= CxTranslate(NULL
);
71 AttachCxObj(Broker
, filter
);
72 AttachCxObj(filter
, sender
);
73 AttachCxObj(filter
, translate
);
74 if (!filter
|| !sender
|| !translate
) {
79 ActivateCxObj(Broker
, TRUE
);
87 void UnregisterCxBroker (void) {
91 DeleteCxObjAll(Broker
);
94 while (msg
= GetMsg(BrokerPort
)) {
98 DeleteMsgPort(BrokerPort
);
102 CloseLibrary(CxBase
);