Made all server version and signatures consistent, and thus closing bug #909.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19092 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -22,12 +22,11 @@
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MIDI_PROTOCOL_H
|
||||
#define MIDI_PROTOCOL_H
|
||||
|
||||
// MIME signature of the midi_server application.
|
||||
#define MIDI_SERVER_SIGNATURE "application/x-vnd.haiku.midi-server"
|
||||
#define MIDI_SERVER_SIGNATURE "application/x-vnd.Haiku-midi_server"
|
||||
|
||||
// Timeout for delivering and responding to messages (microseconds).
|
||||
#define TIMEOUT 2000000
|
||||
|
||||
@@ -2,23 +2,20 @@
|
||||
* app_server.rdef
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.haiku-app-server";
|
||||
resource app_signature "application/x-vnd.Haiku-app-server";
|
||||
|
||||
resource app_flags B_SINGLE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
major = 1,
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
short_info = "app_server",
|
||||
long_info = "app_server, Copyright 2006, Haiku Inc."
|
||||
long_info = "app_server ©2004-2006 Haiku Inc."
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
using std::map;
|
||||
using std::nothrow;
|
||||
|
||||
static const char *kSignature = "application/x-vnd.haiku-debug-server";
|
||||
static const char *kSignature = "application/x-vnd.Haiku-debug_server";
|
||||
|
||||
// paths to the apps used for debugging
|
||||
static const char *kConsoledPath = "/bin/consoled";
|
||||
|
||||
@@ -1,45 +1,21 @@
|
||||
/*
|
||||
* DebugServer.rdef
|
||||
*
|
||||
* debug_server.rdef
|
||||
*/
|
||||
|
||||
/* BEOS:APP_SIG :
|
||||
application:/x-vnd.obos.app-name
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.haiku-debug-server";
|
||||
|
||||
/* BEOS:APP_FLAGS :
|
||||
00000000 = SINGLE LAUNCH
|
||||
00000001 = MULTIPLE LAUNCH
|
||||
00000002 = EXCLUSIVE LAUNCH
|
||||
00000004 = BACKGROUND APP + SINGLE LAUNCH
|
||||
00000005 = BACKGROUND APP + MULTIPLE LAUNCH
|
||||
00000006 = BACKGROUND APP + EXCLUSIVE LAUNCH
|
||||
00000008 = ARGV_ONLY + SINGLE LAUNCH
|
||||
00000009 = ARGV_ONLY + MULTIPLE LAUNCH
|
||||
0000000A = ARGV_ONLY + EXCLUSIVE LAUNCH
|
||||
0000000C = ARGV_ONLY + BACKGROUND APP + SINGLE LAUNCH
|
||||
0000000D = ARGV_ONLY + BACKGROUND APP + MULTIPLE LAUNCH
|
||||
0000000E = ARGV_ONLY + BACKGROUND APP + EXCLUSIVE LAUNCH
|
||||
*/
|
||||
resource app_signature "application/x-vnd.Haiku-debug_server";
|
||||
|
||||
resource app_flags B_SINGLE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
|
||||
major = 1,
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
|
||||
short_info = "debug_server",
|
||||
long_info = "Haiku - debug_server"
|
||||
long_info = "debug_server ©2005-2006 Haiku"
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
@@ -7,14 +7,11 @@ resource app_signature "application/x-vnd.Be-input_server";
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
major = 1,
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
short_info = "input_server",
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
resource(1, "BEOS:APP_SIG") #'MIMS' "application/x-vnd.Be-POST";
|
||||
resource app_signature "application/x-vnd.Be-POST";
|
||||
|
||||
resource app_version
|
||||
{
|
||||
resource app_flags B_BACKGROUND_APP;
|
||||
|
||||
resource(1, "BEOS:FILE_TYPES") message {
|
||||
"types" = "text/x-partial-email"
|
||||
};
|
||||
|
||||
resource app_version {
|
||||
major = 3,
|
||||
middle = 0,
|
||||
minor = 3,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 5,
|
||||
|
||||
variety = B_APPV_FINAL,
|
||||
internal = 3,
|
||||
|
||||
short_info = "Mail Daemon 3.0.3",
|
||||
long_info = "Mail Daemon 3.0.3 ©2005 Haiku"
|
||||
short_info = "mail_daemon",
|
||||
long_info = "mail_daemon ©2005-2006 Haiku"
|
||||
};
|
||||
|
||||
resource(0, "Read") #'BBMP' archive BBitmap
|
||||
{
|
||||
resource(0, "Read") #'BBMP' archive BBitmap {
|
||||
"_frame" = rect { 0.00000, 0.00000, 15.0000, 15.0000 },
|
||||
"_cspace" = 4,
|
||||
"_bmflags" = 1,
|
||||
@@ -35,8 +36,7 @@ resource(0, "Read") #'BBMP' archive BBitmap
|
||||
}
|
||||
};
|
||||
|
||||
resource(1, "New") #'BBMP' archive BBitmap
|
||||
{
|
||||
resource(1, "New") #'BBMP' archive BBitmap {
|
||||
"_frame" = rect { 0.00000, 0.00000, 15.0000, 15.0000 },
|
||||
"_cspace" = 4,
|
||||
"_bmflags" = 1,
|
||||
@@ -54,8 +54,7 @@ resource(1, "New") #'BBMP' archive BBitmap
|
||||
}
|
||||
};
|
||||
|
||||
resource(2) #'BBMP' archive BBitmap
|
||||
{
|
||||
resource(2) #'BBMP' archive BBitmap {
|
||||
"_frame" = rect { 0.00000, 0.00000, 15.0000, 15.0000 },
|
||||
"_cspace" = 4,
|
||||
"_bmflags" = 1,
|
||||
@@ -73,8 +72,7 @@ resource(2) #'BBMP' archive BBitmap
|
||||
}
|
||||
};
|
||||
|
||||
resource(3) #'BBMP' archive BBitmap
|
||||
{
|
||||
resource(3) #'BBMP' archive BBitmap {
|
||||
"_frame" = rect { 0.00000, 0.00000, 15.0000, 15.0000 },
|
||||
"_cspace" = 4,
|
||||
"_bmflags" = 1,
|
||||
@@ -92,8 +90,7 @@ resource(3) #'BBMP' archive BBitmap
|
||||
}
|
||||
};
|
||||
|
||||
resource(0, "BEOS:L:text/x-partial-email") #'ICON' array
|
||||
{
|
||||
resource(0, "BEOS:L:text/x-partial-email") #'ICON' array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -128,8 +125,7 @@ resource(0, "BEOS:L:text/x-partial-email") #'ICON' array
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0FFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(101, "BEOS:L:STD_ICON") #'ICON' array
|
||||
{
|
||||
resource large_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -184,8 +180,7 @@ resource(0, "BEOS:M:text/x-partial-email") #'MICN' array
|
||||
$"FFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(101, "BEOS:M:STD_ICON") #'MICN' array
|
||||
{
|
||||
resource mini_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF"
|
||||
$"FFFFFF0000000000000000D9D90000FF"
|
||||
@@ -204,9 +199,3 @@ resource(101, "BEOS:M:STD_ICON") #'MICN' array
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(1, "BEOS:FILE_TYPES") message
|
||||
{
|
||||
"types" = "text/x-partial-email"
|
||||
};
|
||||
|
||||
resource(1, "BEOS:APP_FLAGS") #'APPF' $"04000000";
|
||||
|
||||
@@ -1,30 +1,21 @@
|
||||
/*
|
||||
** media_server.rdef
|
||||
**
|
||||
*/
|
||||
|
||||
/* BEOS:APP_SIG :
|
||||
application:/x-vnd.obos.app-name
|
||||
*/
|
||||
* media_server.rdef
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.Be.media-server";
|
||||
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH|B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
|
||||
major = 1,
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
|
||||
short_info = "media_server",
|
||||
long_info = "Haiku Media Server"
|
||||
long_info = "media_server ©2001-2006 Haiku"
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
@@ -1,30 +1,21 @@
|
||||
/*
|
||||
** media_addon_server.rdef
|
||||
**
|
||||
*/
|
||||
|
||||
/* BEOS:APP_SIG :
|
||||
application:/x-vnd.obos.app-name
|
||||
*/
|
||||
* media_addon_server.rdef
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.Be.addon-host";
|
||||
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH|B_BACKGROUND_APP;
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
|
||||
major = 1,
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
|
||||
short_info = "media_addon_server",
|
||||
long_info = "Haiku Media Addon Server"
|
||||
long_info = "media_addon_server ©2002-2006 Haiku"
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
+136
-239
@@ -28,7 +28,6 @@
|
||||
#include "ServerDefs.h"
|
||||
#include "protocol.h"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
MidiServerApp::MidiServerApp()
|
||||
: BApplication(MIDI_SERVER_SIGNATURE)
|
||||
@@ -39,24 +38,21 @@ MidiServerApp::MidiServerApp()
|
||||
devWatcher.Start();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
MidiServerApp::~MidiServerApp()
|
||||
{
|
||||
for (int32 t = 0; t < CountApps(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountApps(); ++t) {
|
||||
delete AppAt(t);
|
||||
}
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
delete EndpointAt(t);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::AboutRequested()
|
||||
void
|
||||
MidiServerApp::AboutRequested()
|
||||
{
|
||||
(new BAlert(0,
|
||||
"Haiku midi_server 1.0.0 alpha\n\n"
|
||||
@@ -67,22 +63,15 @@ void MidiServerApp::AboutRequested()
|
||||
B_INFO_ALERT))->Go();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::MessageReceived(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::MessageReceived(BMessage* msg)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("IN "); msg->PrintToStream();
|
||||
#endif
|
||||
|
||||
// About thread safety inside the midi_server: even though
|
||||
// multiple apps may be sending requests to the server at
|
||||
// the same time, the BLooper's thread handles passes them
|
||||
// to our MessageReceived() one after the other, so there
|
||||
// is no need to synchronize anything.
|
||||
|
||||
switch (msg->what)
|
||||
{
|
||||
switch (msg->what) {
|
||||
case MSG_REGISTER_APP: OnRegisterApp(msg); break;
|
||||
case MSG_CREATE_ENDPOINT: OnCreateEndpoint(msg); break;
|
||||
case MSG_DELETE_ENDPOINT: OnDeleteEndpoint(msg); break;
|
||||
@@ -95,9 +84,9 @@ void MidiServerApp::MessageReceived(BMessage* msg)
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnRegisterApp(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnRegisterApp(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnRegisterApp"))
|
||||
|
||||
@@ -109,17 +98,13 @@ void MidiServerApp::OnRegisterApp(BMessage* msg)
|
||||
|
||||
app_t* app = new app_t;
|
||||
|
||||
if (msg->FindMessenger("midi:messenger", &app->messenger) == B_OK)
|
||||
{
|
||||
if (SendAllEndpoints(app))
|
||||
{
|
||||
if (SendAllConnections(app))
|
||||
{
|
||||
if (msg->FindMessenger("midi:messenger", &app->messenger) == B_OK) {
|
||||
if (SendAllEndpoints(app)) {
|
||||
if (SendAllConnections(app)) {
|
||||
BMessage reply;
|
||||
reply.what = MSG_APP_REGISTERED;
|
||||
|
||||
if (SendNotification(app, &reply))
|
||||
{
|
||||
if (SendNotification(app, &reply)) {
|
||||
apps.AddItem(app);
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -135,68 +120,52 @@ void MidiServerApp::OnRegisterApp(BMessage* msg)
|
||||
delete app;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnCreateEndpoint(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnCreateEndpoint(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnCreateEndpoint"))
|
||||
|
||||
status_t err;
|
||||
|
||||
endpoint_t* endp = new endpoint_t;
|
||||
|
||||
endp->app = WhichApp(msg);
|
||||
if (endp->app == NULL)
|
||||
{
|
||||
if (endp->app == NULL) {
|
||||
err = B_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
err = B_BAD_VALUE;
|
||||
|
||||
if ((msg->FindBool("midi:consumer", &endp->consumer) == B_OK)
|
||||
&& (msg->FindBool("midi:registered", &endp->registered) == B_OK)
|
||||
&& (msg->FindString("midi:name", &endp->name) == B_OK)
|
||||
&& (msg->FindMessage("midi:properties", &endp->properties) == B_OK))
|
||||
{
|
||||
if (endp->consumer)
|
||||
{
|
||||
if ((msg->FindInt32("midi:port", &endp->port) == B_OK)
|
||||
&& (msg->FindInt64("midi:latency", &endp->latency) == B_OK))
|
||||
{
|
||||
if (msg->FindBool("midi:consumer", &endp->consumer) == B_OK
|
||||
&& msg->FindBool("midi:registered", &endp->registered) == B_OK
|
||||
&& msg->FindString("midi:name", &endp->name) == B_OK
|
||||
&& msg->FindMessage("midi:properties", &endp->properties) == B_OK) {
|
||||
if (endp->consumer) {
|
||||
if (msg->FindInt32("midi:port", &endp->port) == B_OK
|
||||
&& msg->FindInt64("midi:latency", &endp->latency) == B_OK)
|
||||
err = B_OK;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else
|
||||
err = B_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BMessage reply;
|
||||
|
||||
if (err == B_OK)
|
||||
{
|
||||
if (err == B_OK) {
|
||||
endp->id = nextId++;
|
||||
reply.AddInt32("midi:id", endp->id);
|
||||
}
|
||||
|
||||
reply.AddInt32("midi:result", err);
|
||||
|
||||
if (SendReply(endp->app, msg, &reply) && (err == B_OK))
|
||||
{
|
||||
if (SendReply(endp->app, msg, &reply) && err == B_OK)
|
||||
AddEndpoint(msg, endp);
|
||||
}
|
||||
else
|
||||
{
|
||||
delete endp;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnDeleteEndpoint(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnDeleteEndpoint(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnDeleteEndpoint"))
|
||||
|
||||
@@ -206,19 +175,16 @@ void MidiServerApp::OnDeleteEndpoint(BMessage* msg)
|
||||
// be destroyed no matter what.
|
||||
|
||||
app_t* app = WhichApp(msg);
|
||||
if (app != NULL)
|
||||
{
|
||||
if (app != NULL) {
|
||||
endpoint_t* endp = WhichEndpoint(msg, app);
|
||||
if (endp != NULL)
|
||||
{
|
||||
RemoveEndpoint(app, endp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnPurgeEndpoint(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnPurgeEndpoint(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnPurgeEndpoint"))
|
||||
|
||||
@@ -228,23 +194,19 @@ void MidiServerApp::OnPurgeEndpoint(BMessage* msg)
|
||||
// request really is the owner of the endpoint. (But we
|
||||
// _do_ check that the message came from the server.)
|
||||
|
||||
if (!msg->IsSourceRemote())
|
||||
{
|
||||
if (!msg->IsSourceRemote()) {
|
||||
int32 id;
|
||||
if (msg->FindInt32("midi:id", &id) == B_OK)
|
||||
{
|
||||
if (msg->FindInt32("midi:id", &id) == B_OK) {
|
||||
endpoint_t* endp = FindEndpoint(id);
|
||||
if (endp != NULL)
|
||||
{
|
||||
RemoveEndpoint(NULL, endp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnChangeEndpoint(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnChangeEndpoint(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnChangeEndpoint"))
|
||||
|
||||
@@ -253,27 +215,19 @@ void MidiServerApp::OnChangeEndpoint(BMessage* msg)
|
||||
|
||||
app_t* app = WhichApp(msg);
|
||||
if (app == NULL)
|
||||
{
|
||||
err = B_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
endp = WhichEndpoint(msg, app);
|
||||
if (endp == NULL)
|
||||
{
|
||||
err = B_BAD_VALUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
err = B_OK;
|
||||
}
|
||||
}
|
||||
|
||||
BMessage reply;
|
||||
reply.AddInt32("midi:result", err);
|
||||
|
||||
if (SendReply(app, msg, &reply) && (err == B_OK))
|
||||
{
|
||||
if (SendReply(app, msg, &reply) && err == B_OK) {
|
||||
TRACE(("Endpoint %ld (%p) changed", endp->id, endp))
|
||||
|
||||
BMessage notify;
|
||||
@@ -281,29 +235,25 @@ void MidiServerApp::OnChangeEndpoint(BMessage* msg)
|
||||
notify.AddInt32("midi:id", endp->id);
|
||||
|
||||
bool registered;
|
||||
if (msg->FindBool("midi:registered", ®istered) == B_OK)
|
||||
{
|
||||
if (msg->FindBool("midi:registered", ®istered) == B_OK) {
|
||||
notify.AddBool("midi:registered", registered);
|
||||
endp->registered = registered;
|
||||
}
|
||||
|
||||
BString name;
|
||||
if (msg->FindString("midi:name", &name) == B_OK)
|
||||
{
|
||||
if (msg->FindString("midi:name", &name) == B_OK) {
|
||||
notify.AddString("midi:name", name);
|
||||
endp->name = name;
|
||||
}
|
||||
|
||||
BMessage properties;
|
||||
if (msg->FindMessage("midi:properties", &properties) == B_OK)
|
||||
{
|
||||
if (msg->FindMessage("midi:properties", &properties) == B_OK) {
|
||||
notify.AddMessage("midi:properties", &properties);
|
||||
endp->properties = properties;
|
||||
}
|
||||
|
||||
bigtime_t latency;
|
||||
if (msg->FindInt64("midi:latency", &latency) == B_OK)
|
||||
{
|
||||
if (msg->FindInt64("midi:latency", &latency) == B_OK) {
|
||||
notify.AddInt64("midi:latency", latency);
|
||||
endp->latency = latency;
|
||||
}
|
||||
@@ -316,9 +266,9 @@ void MidiServerApp::OnChangeEndpoint(BMessage* msg)
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::OnConnectDisconnect(BMessage* msg)
|
||||
void
|
||||
MidiServerApp::OnConnectDisconnect(BMessage* msg)
|
||||
{
|
||||
TRACE(("MidiServerApp::OnConnectDisconnect"))
|
||||
|
||||
@@ -330,36 +280,26 @@ void MidiServerApp::OnConnectDisconnect(BMessage* msg)
|
||||
|
||||
app_t* app = WhichApp(msg);
|
||||
if (app == NULL)
|
||||
{
|
||||
err = B_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
err = B_BAD_VALUE;
|
||||
|
||||
int32 prodId, consId;
|
||||
if ((msg->FindInt32("midi:producer", &prodId) == B_OK)
|
||||
&& (msg->FindInt32("midi:consumer", &consId) == B_OK))
|
||||
{
|
||||
if (msg->FindInt32("midi:producer", &prodId) == B_OK
|
||||
&& msg->FindInt32("midi:consumer", &consId) == B_OK) {
|
||||
prod = FindEndpoint(prodId);
|
||||
cons = FindEndpoint(consId);
|
||||
|
||||
if ((prod != NULL) && !prod->consumer)
|
||||
{
|
||||
if ((cons != NULL) && cons->consumer)
|
||||
{
|
||||
if (prod != NULL && !prod->consumer) {
|
||||
if (cons != NULL && cons->consumer) {
|
||||
// It is an error to connect two endpoints that
|
||||
// are already connected, or to disconnect two
|
||||
// endpoints that are not connected at all.
|
||||
|
||||
if (mustConnect == prod->connections.HasItem(cons))
|
||||
{
|
||||
err = B_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
err = B_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -368,16 +308,12 @@ void MidiServerApp::OnConnectDisconnect(BMessage* msg)
|
||||
BMessage reply;
|
||||
reply.AddInt32("midi:result", err);
|
||||
|
||||
if (SendReply(app, msg, &reply) && (err == B_OK))
|
||||
{
|
||||
if (mustConnect)
|
||||
{
|
||||
if (SendReply(app, msg, &reply) && err == B_OK) {
|
||||
if (mustConnect) {
|
||||
TRACE(("Connection made: %ld ---> %ld", prod->id, cons->id))
|
||||
|
||||
prod->connections.AddItem(cons);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
TRACE(("Connection broken: %ld -X-> %ld", prod->id, cons->id))
|
||||
|
||||
prod->connections.RemoveItem(cons);
|
||||
@@ -393,56 +329,54 @@ void MidiServerApp::OnConnectDisconnect(BMessage* msg)
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
bool MidiServerApp::SendAllEndpoints(app_t* app)
|
||||
bool
|
||||
MidiServerApp::SendAllEndpoints(app_t* app)
|
||||
{
|
||||
ASSERT(app != NULL)
|
||||
|
||||
BMessage notify;
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* endp = EndpointAt(t);
|
||||
|
||||
MakeCreatedNotification(¬ify, endp);
|
||||
|
||||
if (!SendNotification(app, ¬ify)) { return false; }
|
||||
if (!SendNotification(app, ¬ify))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
bool MidiServerApp::SendAllConnections(app_t* app)
|
||||
bool
|
||||
MidiServerApp::SendAllConnections(app_t* app)
|
||||
{
|
||||
ASSERT(app != NULL)
|
||||
|
||||
BMessage notify;
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* prod = EndpointAt(t);
|
||||
if (!prod->consumer)
|
||||
{
|
||||
for (int32 k = 0; k < CountConnections(prod); ++k)
|
||||
{
|
||||
if (!prod->consumer) {
|
||||
for (int32 k = 0; k < CountConnections(prod); ++k) {
|
||||
endpoint_t* cons = ConnectionAt(prod, k);
|
||||
|
||||
MakeConnectedNotification(¬ify, prod, cons, true);
|
||||
|
||||
if (!SendNotification(app, ¬ify)) { return false; }
|
||||
}
|
||||
if (!SendNotification(app, ¬ify))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::AddEndpoint(BMessage* msg, endpoint_t* endp)
|
||||
void
|
||||
MidiServerApp::AddEndpoint(BMessage* msg, endpoint_t* endp)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
ASSERT(endp != NULL)
|
||||
@@ -461,9 +395,9 @@ void MidiServerApp::AddEndpoint(BMessage* msg, endpoint_t* endp)
|
||||
#endif
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::RemoveEndpoint(app_t* app, endpoint_t* endp)
|
||||
void
|
||||
MidiServerApp::RemoveEndpoint(app_t* app, endpoint_t* endp)
|
||||
{
|
||||
ASSERT(endp != NULL)
|
||||
ASSERT(endpoints.HasItem(endp))
|
||||
@@ -473,9 +407,7 @@ void MidiServerApp::RemoveEndpoint(app_t* app, endpoint_t* endp)
|
||||
endpoints.RemoveItem(endp);
|
||||
|
||||
if (endp->consumer)
|
||||
{
|
||||
DisconnectDeadConsumer(endp);
|
||||
}
|
||||
|
||||
BMessage notify;
|
||||
notify.what = MSG_ENDPOINT_DELETED;
|
||||
@@ -489,26 +421,23 @@ void MidiServerApp::RemoveEndpoint(app_t* app, endpoint_t* endp)
|
||||
#endif
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::DisconnectDeadConsumer(endpoint_t* cons)
|
||||
void
|
||||
MidiServerApp::DisconnectDeadConsumer(endpoint_t* cons)
|
||||
{
|
||||
ASSERT(cons != NULL)
|
||||
ASSERT(cons->consumer)
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* prod = EndpointAt(t);
|
||||
if (!prod->consumer)
|
||||
{
|
||||
prod->connections.RemoveItem(cons);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::MakeCreatedNotification(BMessage* msg, endpoint_t* endp)
|
||||
void
|
||||
MidiServerApp::MakeCreatedNotification(BMessage* msg, endpoint_t* endp)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
ASSERT(endp != NULL)
|
||||
@@ -521,17 +450,16 @@ void MidiServerApp::MakeCreatedNotification(BMessage* msg, endpoint_t* endp)
|
||||
msg->AddString("midi:name", endp->name);
|
||||
msg->AddMessage("midi:properties", &endp->properties);
|
||||
|
||||
if (endp->consumer)
|
||||
{
|
||||
if (endp->consumer) {
|
||||
msg->AddInt32("midi:port", endp->port);
|
||||
msg->AddInt64("midi:latency", endp->latency);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::MakeConnectedNotification(
|
||||
BMessage* msg, endpoint_t* prod, endpoint_t* cons, bool mustConnect)
|
||||
void
|
||||
MidiServerApp::MakeConnectedNotification(BMessage* msg, endpoint_t* prod,
|
||||
endpoint_t* cons, bool mustConnect)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
ASSERT(prod != NULL)
|
||||
@@ -542,33 +470,26 @@ void MidiServerApp::MakeConnectedNotification(
|
||||
msg->MakeEmpty();
|
||||
|
||||
if (mustConnect)
|
||||
{
|
||||
msg->what = MSG_ENDPOINTS_CONNECTED;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg->what = MSG_ENDPOINTS_DISCONNECTED;
|
||||
}
|
||||
|
||||
msg->AddInt32("midi:producer", prod->id);
|
||||
msg->AddInt32("midi:consumer", cons->id);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
app_t* MidiServerApp::WhichApp(BMessage* msg)
|
||||
app_t*
|
||||
MidiServerApp::WhichApp(BMessage* msg)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
|
||||
BMessenger retadr = msg->ReturnAddress();
|
||||
|
||||
for (int32 t = 0; t < CountApps(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountApps(); ++t) {
|
||||
app_t* app = AppAt(t);
|
||||
if (app->messenger.Team() == retadr.Team())
|
||||
{
|
||||
return app;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE(("Application %ld is not registered", retadr.Team()))
|
||||
@@ -576,63 +497,51 @@ app_t* MidiServerApp::WhichApp(BMessage* msg)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
endpoint_t* MidiServerApp::WhichEndpoint(BMessage* msg, app_t* app)
|
||||
endpoint_t*
|
||||
MidiServerApp::WhichEndpoint(BMessage* msg, app_t* app)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
ASSERT(app != NULL)
|
||||
|
||||
int32 id;
|
||||
if (msg->FindInt32("midi:id", &id) == B_OK)
|
||||
{
|
||||
if (msg->FindInt32("midi:id", &id) == B_OK) {
|
||||
endpoint_t* endp = FindEndpoint(id);
|
||||
if ((endp != NULL) && (endp->app == app))
|
||||
{
|
||||
if (endp != NULL && endp->app == app)
|
||||
return endp;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE(("Endpoint not found or wrong app"))
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
endpoint_t* MidiServerApp::FindEndpoint(int32 id)
|
||||
endpoint_t*
|
||||
MidiServerApp::FindEndpoint(int32 id)
|
||||
{
|
||||
if (id > 0)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
if (id > 0) {
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* endp = EndpointAt(t);
|
||||
if (endp->id == id)
|
||||
{
|
||||
return endp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TRACE(("Endpoint %ld not found", id))
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::NotifyAll(BMessage* msg, app_t* except)
|
||||
void
|
||||
MidiServerApp::NotifyAll(BMessage* msg, app_t* except)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
|
||||
for (int32 t = CountApps() - 1; t >= 0; --t)
|
||||
{
|
||||
for (int32 t = CountApps() - 1; t >= 0; --t) {
|
||||
app_t* app = AppAt(t);
|
||||
if (app != except)
|
||||
{
|
||||
if (!SendNotification(app, msg))
|
||||
{
|
||||
delete (app_t*) apps.RemoveItem(t);
|
||||
if (app != except) {
|
||||
if (!SendNotification(app, msg)) {
|
||||
delete (app_t*)apps.RemoveItem(t);
|
||||
|
||||
#ifdef DEBUG
|
||||
DumpApps();
|
||||
@@ -642,9 +551,9 @@ void MidiServerApp::NotifyAll(BMessage* msg, app_t* except)
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
bool MidiServerApp::SendNotification(app_t* app, BMessage* msg)
|
||||
bool
|
||||
MidiServerApp::SendNotification(app_t* app, BMessage* msg)
|
||||
{
|
||||
ASSERT(app != NULL)
|
||||
ASSERT(msg != NULL)
|
||||
@@ -652,24 +561,21 @@ bool MidiServerApp::SendNotification(app_t* app, BMessage* msg)
|
||||
status_t err = app->messenger.SendMessage(msg, (BHandler*) NULL, TIMEOUT);
|
||||
|
||||
if (err != B_OK)
|
||||
{
|
||||
DeliveryError(app);
|
||||
}
|
||||
|
||||
return (err == B_OK);
|
||||
return err == B_OK;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
bool MidiServerApp::SendReply(app_t* app, BMessage* msg, BMessage* reply)
|
||||
bool
|
||||
MidiServerApp::SendReply(app_t* app, BMessage* msg, BMessage* reply)
|
||||
{
|
||||
ASSERT(msg != NULL)
|
||||
ASSERT(reply != NULL)
|
||||
|
||||
status_t err = msg->SendReply(reply, (BHandler*) NULL, TIMEOUT);
|
||||
|
||||
if ((err != B_OK) && (app != NULL))
|
||||
{
|
||||
if (err != B_OK && app != NULL) {
|
||||
DeliveryError(app);
|
||||
apps.RemoveItem(app);
|
||||
delete app;
|
||||
@@ -679,12 +585,12 @@ bool MidiServerApp::SendReply(app_t* app, BMessage* msg, BMessage* reply)
|
||||
#endif
|
||||
}
|
||||
|
||||
return (err == B_OK);
|
||||
return err == B_OK;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void MidiServerApp::DeliveryError(app_t* app)
|
||||
void
|
||||
MidiServerApp::DeliveryError(app_t* app)
|
||||
{
|
||||
ASSERT(app != NULL)
|
||||
|
||||
@@ -701,11 +607,9 @@ void MidiServerApp::DeliveryError(app_t* app)
|
||||
|
||||
BMessage msg;
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* endp = EndpointAt(t);
|
||||
if (endp->app == app)
|
||||
{
|
||||
if (endp->app == app) {
|
||||
msg.MakeEmpty();
|
||||
msg.what = MSG_PURGE_ENDPOINT;
|
||||
msg.AddInt32("midi:id", endp->id);
|
||||
@@ -718,50 +622,49 @@ void MidiServerApp::DeliveryError(app_t* app)
|
||||
// situation is so unlikely, I decided to simply
|
||||
// forget about the whole "purge" message then.
|
||||
|
||||
if (be_app_messenger.SendMessage(
|
||||
&msg, (BHandler*) NULL, TIMEOUT) != B_OK)
|
||||
{
|
||||
if (be_app_messenger.SendMessage(&msg, (BHandler*)NULL,
|
||||
TIMEOUT) != B_OK) {
|
||||
WARN("Could not deliver purge message")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
int32 MidiServerApp::CountApps()
|
||||
int32
|
||||
MidiServerApp::CountApps()
|
||||
{
|
||||
return apps.CountItems();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
app_t* MidiServerApp::AppAt(int32 index)
|
||||
app_t*
|
||||
MidiServerApp::AppAt(int32 index)
|
||||
{
|
||||
ASSERT(index >= 0 && index < CountApps())
|
||||
|
||||
return (app_t*) apps.ItemAt(index);
|
||||
return (app_t*)apps.ItemAt(index);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
int32 MidiServerApp::CountEndpoints()
|
||||
int32
|
||||
MidiServerApp::CountEndpoints()
|
||||
{
|
||||
return endpoints.CountItems();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
endpoint_t* MidiServerApp::EndpointAt(int32 index)
|
||||
endpoint_t*
|
||||
MidiServerApp::EndpointAt(int32 index)
|
||||
{
|
||||
ASSERT(index >= 0 && index < CountEndpoints())
|
||||
|
||||
return (endpoint_t*) endpoints.ItemAt(index);
|
||||
return (endpoint_t*)endpoints.ItemAt(index);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
int32 MidiServerApp::CountConnections(endpoint_t* prod)
|
||||
int32
|
||||
MidiServerApp::CountConnections(endpoint_t* prod)
|
||||
{
|
||||
ASSERT(prod != NULL)
|
||||
ASSERT(!prod->consumer)
|
||||
@@ -769,26 +672,25 @@ int32 MidiServerApp::CountConnections(endpoint_t* prod)
|
||||
return prod->connections.CountItems();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
endpoint_t* MidiServerApp::ConnectionAt(endpoint_t* prod, int32 index)
|
||||
endpoint_t*
|
||||
MidiServerApp::ConnectionAt(endpoint_t* prod, int32 index)
|
||||
{
|
||||
ASSERT(prod != NULL)
|
||||
ASSERT(!prod->consumer)
|
||||
ASSERT(index >= 0 && index < CountConnections(prod))
|
||||
|
||||
return (endpoint_t*) prod->connections.ItemAt(index);
|
||||
return (endpoint_t*)prod->connections.ItemAt(index);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#ifdef DEBUG
|
||||
void MidiServerApp::DumpApps()
|
||||
void
|
||||
MidiServerApp::DumpApps()
|
||||
{
|
||||
printf("*** START DumpApps\n");
|
||||
|
||||
for (int32 t = 0; t < CountApps(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountApps(); ++t) {
|
||||
app_t* app = AppAt(t);
|
||||
|
||||
printf("\tapp %ld (%p): team %ld\n", t, app, app->messenger.Team());
|
||||
@@ -798,36 +700,29 @@ void MidiServerApp::DumpApps()
|
||||
}
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#ifdef DEBUG
|
||||
void MidiServerApp::DumpEndpoints()
|
||||
void
|
||||
MidiServerApp::DumpEndpoints()
|
||||
{
|
||||
printf("*** START DumpEndpoints\n");
|
||||
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t)
|
||||
{
|
||||
for (int32 t = 0; t < CountEndpoints(); ++t) {
|
||||
endpoint_t* endp = EndpointAt(t);
|
||||
|
||||
printf("\tendpoint %ld (%p):\n", t, endp);
|
||||
|
||||
printf("\t\tid %ld, name '%s', %s, %s, app %p\n",
|
||||
endp->id, endp->name.String(),
|
||||
endp->consumer ? "consumer" : "producer",
|
||||
endp->registered ? "registered" : "unregistered",
|
||||
endp->app);
|
||||
|
||||
printf("\t\tproperties: "); endp->properties.PrintToStream();
|
||||
|
||||
if (endp->consumer)
|
||||
{
|
||||
printf("\t\tport %ld, latency %Ld\n", endp->port, endp->latency);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
printf("\t\tconnections:\n");
|
||||
for (int32 k = 0; k < CountConnections(endp); ++k)
|
||||
{
|
||||
for (int32 k = 0; k < CountConnections(endp); ++k) {
|
||||
endpoint_t* cons = ConnectionAt(endp, k);
|
||||
printf("\t\t\tid %ld (%p)\n", cons->id, cons);
|
||||
}
|
||||
@@ -838,13 +733,15 @@ void MidiServerApp::DumpEndpoints()
|
||||
}
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
int main()
|
||||
// #pragma mark -
|
||||
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
MidiServerApp app;
|
||||
app.Run();
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,76 +1,19 @@
|
||||
|
||||
resource app_signature "application/x-vnd.haiku.midi-server";
|
||||
resource app_signature "application/x-vnd.Haiku-midi_server";
|
||||
|
||||
resource app_flags B_SINGLE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version
|
||||
{
|
||||
resource app_version {
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
short_info = "midi_server",
|
||||
long_info = "Haiku midi_server"
|
||||
long_info = "midi_server ©2002-2006 Haiku"
|
||||
};
|
||||
|
||||
resource(10, "bus_large") #'ICON' array
|
||||
{
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF00000000000A0A0A0A0A0A0A0A0000000000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF000000000A0A0A0A0A0A0A0A0A0A0A0A00000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF0000000A0A0A0A0A0A0A00000A0A0A0A0A0A0A000000FFFFFFFFFF"
|
||||
$"FFFFFFFF0000000A0A0A0A0A0A0A000000000A0A0A0A0A0A0A000000FFFFFFFF"
|
||||
$"FFFFFF0000000C0C0C0C0C0C0C0C000000000C0C0C0C0C0C0C0C000000FFFFFF"
|
||||
$"FFFF0000000C0C0C00000C0C0C0C0C00000C0C0C0C0C00000C0C0C000000FFFF"
|
||||
$"FFFF00000C0C0C000000000C0C0C0C0C0C0C0C0C0C000000000C0C0C0000FFFF"
|
||||
$"FF0000000C0C0C000000000C0C0C0C0C0C0C0C0C0C000000000C0C0C000000FF"
|
||||
$"FF00000E0E0E0E0E00000E0E0E0E0E0E0E0E0E0E0E0E00000E0E0E0E0E0000FF"
|
||||
$"FF00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000FF"
|
||||
$"00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000"
|
||||
$"00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000"
|
||||
$"0000101010000010101010101010101010101010101010101000001010100000"
|
||||
$"0000101000000000101010101010101010101010101010100000000010100000"
|
||||
$"0000101000000000101010101010101010101010101010100000000010100000"
|
||||
$"0000101010000010101010101010101010101010101010101000001010100000"
|
||||
$"0000121212121212121212121212121212121212121212121212121212120000"
|
||||
$"0000121212121212121212121212121212121212121212121212121212120000"
|
||||
$"FF000012121212121212121212121212121212121212121212121212120000FF"
|
||||
$"FF000012121212121212121212121212121212121212121212121212120000FF"
|
||||
$"FF000000141414141414141414141414141414141414141414141414000000FF"
|
||||
$"FFFF00001414141414141414141414141414141414141414141414140000FFFF"
|
||||
$"FFFF00000014141414141414141414141414141414141414141414000000FFFF"
|
||||
$"FFFFFF0000001414141414141414141414141414141414141414000000FFFFFF"
|
||||
$"FFFFFFFF000000161616161616161616161616161616161616000000FFFFFFFF"
|
||||
$"FFFFFFFFFF00000016161616161616161616161616161616000000FFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF0000000016161616161616161616161600000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF000000000016161616161616160000000000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(11, "bus_small") #'MICN' array
|
||||
{
|
||||
$"FFFFFFFFFFFF00000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFF00000A0A0A0A0000FFFFFFFF"
|
||||
$"FFFFFF000A0A0A00000A0A0A00FFFFFF"
|
||||
$"FFFF000C0C0C0C00000C0C0C0C00FFFF"
|
||||
$"FF000C00000C0C0C0C0C0C00000C00FF"
|
||||
$"FF000E00000E0E0E0E0E0E00000E00FF"
|
||||
$"000E0E0E0E0E0E0E0E0E0E0E0E0E0E00"
|
||||
$"00100000101010101010101000001000"
|
||||
$"00100000101010101010101000001000"
|
||||
$"00121212121212121212121212121200"
|
||||
$"FF0012121212121212121212121200FF"
|
||||
$"FF0014141414141414141414141400FF"
|
||||
$"FFFF001414141414141414141400FFFF"
|
||||
$"FFFFFF00161616161616161600FFFFFF"
|
||||
$"FFFFFFFF0000161616160000FFFFFFFF"
|
||||
$"FFFFFFFFFFFF00000000FFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
resource large_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -105,7 +48,7 @@ resource large_icon array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource mini_icon array {
|
||||
resource mini_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF04FFFFFFFF0000FFFFFF"
|
||||
@@ -123,3 +66,58 @@ resource mini_icon array {
|
||||
$"FFFF0000000000000011FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(10, "bus_large") #'ICON' array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF00000000000A0A0A0A0A0A0A0A0000000000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF000000000A0A0A0A0A0A0A0A0A0A0A0A00000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFF0000000A0A0A0A0A0A0A00000A0A0A0A0A0A0A000000FFFFFFFFFF"
|
||||
$"FFFFFFFF0000000A0A0A0A0A0A0A000000000A0A0A0A0A0A0A000000FFFFFFFF"
|
||||
$"FFFFFF0000000C0C0C0C0C0C0C0C000000000C0C0C0C0C0C0C0C000000FFFFFF"
|
||||
$"FFFF0000000C0C0C00000C0C0C0C0C00000C0C0C0C0C00000C0C0C000000FFFF"
|
||||
$"FFFF00000C0C0C000000000C0C0C0C0C0C0C0C0C0C000000000C0C0C0000FFFF"
|
||||
$"FF0000000C0C0C000000000C0C0C0C0C0C0C0C0C0C000000000C0C0C000000FF"
|
||||
$"FF00000E0E0E0E0E00000E0E0E0E0E0E0E0E0E0E0E0E00000E0E0E0E0E0000FF"
|
||||
$"FF00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000FF"
|
||||
$"00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000"
|
||||
$"00000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0000"
|
||||
$"0000101010000010101010101010101010101010101010101000001010100000"
|
||||
$"0000101000000000101010101010101010101010101010100000000010100000"
|
||||
$"0000101000000000101010101010101010101010101010100000000010100000"
|
||||
$"0000101010000010101010101010101010101010101010101000001010100000"
|
||||
$"0000121212121212121212121212121212121212121212121212121212120000"
|
||||
$"0000121212121212121212121212121212121212121212121212121212120000"
|
||||
$"FF000012121212121212121212121212121212121212121212121212120000FF"
|
||||
$"FF000012121212121212121212121212121212121212121212121212120000FF"
|
||||
$"FF000000141414141414141414141414141414141414141414141414000000FF"
|
||||
$"FFFF00001414141414141414141414141414141414141414141414140000FFFF"
|
||||
$"FFFF00000014141414141414141414141414141414141414141414000000FFFF"
|
||||
$"FFFFFF0000001414141414141414141414141414141414141414000000FFFFFF"
|
||||
$"FFFFFFFF000000161616161616161616161616161616161616000000FFFFFFFF"
|
||||
$"FFFFFFFFFF00000016161616161616161616161616161616000000FFFFFFFFFF"
|
||||
$"FFFFFFFFFFFF0000000016161616161616161616161600000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFF000000000016161616161616160000000000FFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(11, "bus_small") #'MICN' array {
|
||||
$"FFFFFFFFFFFF00000000FFFFFFFFFFFF"
|
||||
$"FFFFFFFF00000A0A0A0A0000FFFFFFFF"
|
||||
$"FFFFFF000A0A0A00000A0A0A00FFFFFF"
|
||||
$"FFFF000C0C0C0C00000C0C0C0C00FFFF"
|
||||
$"FF000C00000C0C0C0C0C0C00000C00FF"
|
||||
$"FF000E00000E0E0E0E0E0E00000E00FF"
|
||||
$"000E0E0E0E0E0E0E0E0E0E0E0E0E0E00"
|
||||
$"00100000101010101010101000001000"
|
||||
$"00100000101010101010101000001000"
|
||||
$"00121212121212121212121212121200"
|
||||
$"FF0012121212121212121212121200FF"
|
||||
$"FF0014141414141414141414141400FF"
|
||||
$"FFFF001414141414141414141400FFFF"
|
||||
$"FFFFFF00161616161616161600FFFFFF"
|
||||
$"FFFFFFFF0000161616160000FFFFFFFF"
|
||||
$"FFFFFFFFFFFF00000000FFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
SubDir HAIKU_TOP src servers net ;
|
||||
|
||||
SetSubDirSupportedPlatformsBeOSCompatible ;
|
||||
UsePrivateHeaders net ;
|
||||
|
||||
#UseHeaders [ FDirName $(HAIKU_TOP) src add-ons kernel network ppp shared libppp headers ] ;
|
||||
#UseHeaders [ FDirName $(HAIKU_TOP) src add-ons kernel network ppp shared libkernelppp headers ] ;
|
||||
#UseHeaders [ FDirName $(HAIKU_TOP) src tests kits net DialUpPreflet ] ;
|
||||
|
||||
AddResources net_server : net_server.rdef ;
|
||||
|
||||
Server net_server :
|
||||
NetServer.cpp
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
resource app_signature "application/x-vnd.Haiku-net_server";
|
||||
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
variety = B_APPV_DEVELOPMENT,
|
||||
internal = 1,
|
||||
|
||||
short_info = "net_server",
|
||||
long_info = "net_server ©2006 Haiku Inc."
|
||||
};
|
||||
@@ -11,7 +11,7 @@ UsePrivateHeaders shared interface print ;
|
||||
AddResources
|
||||
print_server
|
||||
:
|
||||
PrintServer.FileTypes.rdef
|
||||
print_server.rdef
|
||||
;
|
||||
|
||||
Server
|
||||
|
||||
+19
-41
@@ -1,34 +1,21 @@
|
||||
|
||||
resource(1, "BEOS:APP_FLAGS") #'APPF' $"04000000";
|
||||
resource app_signature "application/x-vnd.Be-PSRV";
|
||||
|
||||
resource(1, "BEOS:APP_VERSION") #'APPV' array
|
||||
{
|
||||
$"010000000000000000000000000000000100000052312E302E30643100000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"00000000000000000000000000000000000000004F70656E42654F5320312E30"
|
||||
$"2E30643120C2A932303031204F70656E42654F532050726F6A6563742E000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000010000000000000000000000"
|
||||
$"000000000100000052312E302E30643100000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"00000000000000004F70656E42654F5320312E302E30643120C2A93230303120"
|
||||
$"4F70656E42654F532050726F6A6563742E090000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000000000000000000000000000000000000000000000000000"
|
||||
$"0000000000000000"
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
|
||||
resource app_version {
|
||||
major = 1,
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
variety = B_APPV_BETA,
|
||||
internal = 0,
|
||||
|
||||
short_info = "print_server",
|
||||
long_info = "print_server ©2001-2006 Haiku"
|
||||
};
|
||||
|
||||
resource(101, "BEOS:L:STD_ICON") #'ICON' array
|
||||
{
|
||||
resource large_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -63,8 +50,7 @@ resource(101, "BEOS:L:STD_ICON") #'ICON' array
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(101, "BEOS:M:STD_ICON") #'MICN' array
|
||||
{
|
||||
resource mini_icon {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF"
|
||||
@@ -83,12 +69,7 @@ resource(101, "BEOS:M:STD_ICON") #'MICN' array
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(1, "BEOS:APP_SIG") #'MIMS' "application/x-vnd.Be-PSRV";
|
||||
|
||||
resource(1, "BEOS:FILE_TYPES") message;
|
||||
|
||||
resource(0, "JOB_SETUP_OFF") #'bits' array
|
||||
{
|
||||
resource(0, "JOB_SETUP_OFF") #'bits' array {
|
||||
$"62697473000000000000000041F8000041F80000000000800000200800001000"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -220,8 +201,7 @@ resource(0, "JOB_SETUP_OFF") #'bits' array
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
};
|
||||
|
||||
resource(2, "JOB_SETUP_ON") #'bits' array
|
||||
{
|
||||
resource(2, "JOB_SETUP_ON") #'bits' array {
|
||||
$"62697473000000000000000041F8000041F80000000000800000200800001000"
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
@@ -353,8 +333,7 @@ resource(2, "JOB_SETUP_ON") #'bits' array
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource(4, "PAGE_SETUP_OFF") #'bits' array
|
||||
{
|
||||
resource(4, "PAGE_SETUP_OFF") #'bits' array {
|
||||
$"62697473000000000000000041F8000041F80000000000800000200800001000"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
@@ -486,8 +465,7 @@ resource(4, "PAGE_SETUP_OFF") #'bits' array
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
};
|
||||
|
||||
resource(5, "PAGE_SETUP_ON") #'bits' array
|
||||
{
|
||||
resource(5, "PAGE_SETUP_ON") #'bits' array {
|
||||
$"62697473000000000000000041F8000041F80000000000800000200800001000"
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
$"000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF"
|
||||
@@ -1,9 +1,8 @@
|
||||
/*
|
||||
** registrar.rdef
|
||||
**
|
||||
*/
|
||||
* registrar.rdef
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.haiku-registrar";
|
||||
resource app_signature "application/x-vnd.Haiku-Registrar";
|
||||
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
/* the registrar's application flags are actually
|
||||
@@ -16,14 +15,11 @@ resource app_version {
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 1,
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 0,
|
||||
|
||||
short_info = "registrar",
|
||||
long_info = "registrar, Copyright 2005, Haiku Inc."
|
||||
long_info = "registrar ©2005-2006 Haiku Inc."
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
@@ -8,14 +8,11 @@ resource app_version {
|
||||
middle = 0,
|
||||
minor = 0,
|
||||
|
||||
/* 0 = development 1 = alpha 2 = beta
|
||||
3 = gamma 4 = golden master 5 = final */
|
||||
variety = 0,
|
||||
|
||||
variety = B_APPV_ALPHA,
|
||||
internal = 1,
|
||||
|
||||
short_info = "syslog_daemon",
|
||||
long_info = "syslog_daemon, Copyright 2003-2006 Haiku Inc."
|
||||
long_info = "syslog_daemon ©2003-2006 Haiku Inc."
|
||||
};
|
||||
|
||||
resource large_icon array {
|
||||
|
||||
Reference in New Issue
Block a user