Added reference counting of media add-on instances.

You can't create more node instances than "possible_count".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper
2003-03-22 01:11:07 +00:00
parent b498f2e40c
commit 626824eaaf
7 changed files with 316 additions and 196 deletions
+10 -80
View File
@@ -98,7 +98,7 @@ enum {
SERVER_UNREGISTER_BUFFER,
SERVER_RESCAN_DEFAULTS,
SERVER_SET_NODE_CREATOR,
SERVER_CHANGE_DORMANT_NODE_USECOUNT,
SERVER_CHANGE_ADDON_FLAVOR_INSTANCES_COUNT,
SERVER_MESSAGE_END,
NODE_MESSAGE_START = 0x200,
@@ -210,14 +210,14 @@ enum node_type
// used by SERVER_PUBLISH_INPUTS and SERVER_PUBLISH_OUTPUTS
enum
{
MAX_OUTPUTS = 48,
MAX_INPUTS = 48,
MAX_OUTPUTS = 8,
MAX_INPUTS = 8,
};
// used by SERVER_GET_LIVE_NODES
enum
{
MAX_LIVE_INFO = 62,
MAX_LIVE_INFO = 16,
};
// used by SERVER_GET_INSTANCES_FOR
@@ -318,22 +318,6 @@ struct producer_disconnect_reply : public reply_data
{
};
struct producer_format_suggestion_requested_request : public request_data
{
media_type type;
@@ -437,36 +421,6 @@ struct producer_late_notice_received_command : public command_data
bigtime_t performance_time;
};
struct consumer_accept_format_request : public request_data
{
media_destination dest;
@@ -568,22 +522,6 @@ struct consumer_disconnected_reply : public reply_data
{
};
struct consumer_buffer_received_command : public command_data
{
media_buffer_id buffer;
@@ -634,12 +572,6 @@ struct consumer_seek_tag_requested_reply : public reply_data
uint32 flags;
};
struct server_register_addonserver_request : public request_data
{
team_id team;
@@ -678,14 +610,15 @@ struct server_set_node_creator_reply : public reply_data
{
};
struct server_change_dormant_node_usecount_request : public request_data
struct server_change_addon_flavor_instances_count_request : public request_data
{
media_addon_id addon_id;
int32 addon_flavor_id;
int32 delta;
media_addon_id addonid;
int32 flavorid;
int32 delta; // must be +1 or -1
team_id team;
};
struct server_change_dormant_node_usecount_reply : public reply_data
struct server_change_addon_flavor_instances_count_reply : public reply_data
{
};
@@ -804,9 +737,6 @@ struct server_rescan_defaults_command : public command_data
{
};
struct addonserver_rescan_mediaaddon_flavors_command : public command_data
{
media_addon_id addonid;
+2 -2
View File
@@ -35,8 +35,8 @@ public:
status_t SaveNodeConfiguration(BMediaNode *node);
status_t LoadNodeConfiguration(media_addon_id addonid, int32 flavorid, BMessage *out_msg);
status_t IncrementDormantNodeUseCount(media_addon_id addonid, int32 flavorid);
status_t DecrementDormantNodeUseCount(media_addon_id addonid, int32 flavorid);
status_t IncrementAddonFlavorInstancesCount(media_addon_id addonid, int32 flavorid);
status_t DecrementAddonFlavorInstancesCount(media_addon_id addonid, int32 flavorid);
status_t SetNodeCreator(media_node_id node, team_id creator);