more BMediaRoster functionality

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1381 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper
2002-10-05 13:02:26 +00:00
parent 2ac2ef2b15
commit 9e9417d205
7 changed files with 510 additions and 100 deletions
+127 -1
View File
@@ -71,15 +71,24 @@ enum {
SERVER_SET_NODE,
SERVER_PUBLISH_INPUTS,
SERVER_PUBLISH_OUTPUTS,
SERVER_NODE_ID_FOR,
SERVER_GET_LIVE_NODE_INFO,
SERVER_GET_LIVE_NODES,
SERVER_GET_NODE_FOR,
SERVER_RELEASE_NODE,
SERVER_REGISTER_NODE,
SERVER_UNREGISTER_NODE,
CONSUMER_GET_NEXT_INPUT = 0x2000,
CONSUMER_DISPOSE_INPUT_COOKIE,
CONSUMER_ACCEPT_FORMAT,
CONSUMER_CONNECTED,
CONSUMER_DISCONNECTED,
PRODUCER_GET_NEXT_OUTPUT = 0x3000,
PRODUCER_DISPOSE_OUTPUT_COOKIE,
PRODUCER_FORMAT_PROPOSAL,
PRODUCER_PREPARE_TO_CONNECT,
PRODUCER_CONNECT,
PRODUCER_DISCONNECT,
};
// used by SERVER_GET_NODE and SERVER_SET_NODE
@@ -102,6 +111,12 @@ enum
MAX_INPUTS = 48,
};
// used by SERVER_GET_LIVE_NODES
enum
{
MAX_LIVE_INFO = 62,
};
struct addonserver_instantiate_dormant_node_request : public request_data
{
dormant_node_info info;
@@ -130,6 +145,7 @@ struct server_set_node_reply : public reply_data
struct server_get_node_request : public request_data
{
node_type type;
team_id team;
};
struct server_get_node_reply : public reply_data
@@ -208,7 +224,9 @@ struct server_publish_inputs_request : public request_data
{
media_node node;
int32 count;
area_id area; // if count > MAX_INPUTS, inputs are in the area
area_id area; // if count > MAX_INPUTS, inputs are in the area
// area is created in the server, and also deleted
// in the server after the reply has been received
media_input inputs[MAX_INPUTS];
};
@@ -268,4 +286,112 @@ struct consumer_dispose_input_cookie_reply : public reply_data
{
};
struct consumer_disconnected_request : public request_data
{
media_source source;
media_destination destination;
};
struct consumer_disconnected_reply : public reply_data
{
};
struct producer_disconnect_request : public request_data
{
media_source source;
media_destination destination;
};
struct producer_disconnect_reply : public reply_data
{
};
struct server_register_node_request : public request_data
{
media_addon_id addon_id;
int32 addon_flavor_id;
char name[B_MEDIA_NAME_LENGTH];
uint64 kinds;
port_id port;
team_id team;
};
struct server_register_node_reply : public reply_data
{
media_node_id nodeid;
};
struct server_unregister_node_request : public request_data
{
media_node_id nodeid;
team_id team;
};
struct server_unregister_node_reply : public reply_data
{
media_addon_id addon_id;
};
struct server_get_live_node_info_request : public request_data
{
media_node node;
};
struct server_get_live_node_info_reply : public reply_data
{
live_node_info live_info;
};
struct server_get_live_nodes_request : public request_data
{
int32 maxcount;
bool has_input;
bool has_output;
bool has_name;
media_format inputformat;
media_format outputformat;
char name[B_MEDIA_NAME_LENGTH + 1]; // 1 for a trailing "*"
uint64 require_kinds;
};
struct server_get_live_nodes_reply : public reply_data
{
int32 count;
area_id area; // if count > MAX_LIVE_INFO, live_node_infos are in the area
// area is created in the server, but deleted in the application
live_node_info live_info[MAX_LIVE_INFO];
};
struct server_node_id_for_request : public request_data
{
port_id port;
};
struct server_node_id_for_reply : public reply_data
{
media_node_id nodeid;
};
struct server_get_node_for_request : public request_data
{
media_node_id nodeid;
team_id team;
};
struct server_get_node_for_reply : public reply_data
{
media_node clone;
};
struct server_release_node_request : public request_data
{
media_node node;
team_id team;
};
struct server_release_node_reply : public reply_data
{
};
#endif // _DATA_EXCHANGE_H