Skip to content

Commit

Permalink
media_server: Add missing notifications for flavors/nodes changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Numerio committed Jul 9, 2015
1 parent b7d5c81 commit d97447b
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions src/servers/media/NodeManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@

#include <debug.h>
#include <MediaMisc.h>
#include <Notifications.h>

#include "AppManager.h"
#include "DefaultManager.h"
Expand Down Expand Up @@ -980,8 +981,17 @@ NodeManager::CleanupDormantFlavorInfos()
PRINT(1, "NodeManager::CleanupDormantFlavorInfos\n");

BAutolock _(this);

for (DormantFlavorList::iterator iterator = fDormantFlavors.begin();
iterator != fDormantFlavors.end(); iterator++) {
dormant_add_on_flavor_info& info = *iterator;

// Current instance count is zero since the media_addon_server crashed.
BPrivate::media::notifications::FlavorsChanged(info.add_on_id,
0, info.instances_count);
}

fDormantFlavors.clear();
// TODO: FlavorsChanged() notification

PRINT(1, "NodeManager::CleanupDormantFlavorInfos done\n");
}
Expand Down Expand Up @@ -1091,8 +1101,6 @@ NodeManager::CleanupTeam(team_id team)

PRINT(1, "NodeManager::CleanupTeam: team %" B_PRId32 "\n", team);

// TODO: send notifications after removing nodes

// Cleanup node references

for (NodeMap::iterator iterator = fNodeMap.begin();
Expand All @@ -1113,6 +1121,7 @@ NodeManager::CleanupTeam(team_id team)
PRINT(1, "NodeManager::CleanupTeam: removing node id %" B_PRId32
", team %" B_PRId32 "\n", node.node_id, team);
fNodeMap.erase(remove);
BPrivate::media::notifications::NodesDeleted(&node.node_id, 1);
continue;
}

Expand All @@ -1129,6 +1138,7 @@ NodeManager::CleanupTeam(team_id team)
B_PRId32 " that has no teams\n", node.node_id);

fNodeMap.erase(remove);
BPrivate::media::notifications::NodesDeleted(&node.node_id, 1);
} else
node.team_ref_count.erase(teamRef);
}
Expand All @@ -1147,10 +1157,13 @@ NodeManager::CleanupTeam(team_id team)
instanceCount->second, flavorInfo.add_on_id,
flavorInfo.flavor_id);

int32 count = flavorInfo.instances_count;
flavorInfo.instances_count -= instanceCount->second;
if (flavorInfo.instances_count <= 0)
if (flavorInfo.instances_count <= 0) {
fDormantFlavors.erase(fDormantFlavors.begin() + index--);
else
BPrivate::media::notifications::FlavorsChanged(
flavorInfo.add_on_id, 0, count);
} else
flavorInfo.team_instances_count.erase(team);
}
}
Expand Down

0 comments on commit d97447b

Please sign in to comment.