1/*
2 * Copyright 2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "MediaIcons.h"
7
8#include <Application.h>
9#include <File.h>
10#include <Resources.h>
11#include <Roster.h>
12
13#include "IconHandles.h"
14
15
16const BRect MediaIcons::sBounds(0, 0, 15, 15);
17
18
19MediaIcons::IconSet::IconSet()
20	:
21	inputIcon(MediaIcons::sBounds, B_CMAP8),
22	outputIcon(MediaIcons::sBounds, B_CMAP8)
23{
24}
25
26
27
28MediaIcons::MediaIcons()
29	:
30	devicesIcon(sBounds, B_CMAP8),
31	mixerIcon(sBounds, B_CMAP8)
32{
33	app_info info;
34	be_app->GetAppInfo(&info);
35	BFile executableFile(&info.ref, B_READ_ONLY);
36	BResources resources(&executableFile);
37	resources.PreloadResourceType(B_COLOR_8_BIT_TYPE);
38
39	_LoadBitmap(&resources, devices_icon, &devicesIcon);
40	_LoadBitmap(&resources, mixer_icon, &mixerIcon);
41	_LoadBitmap(&resources, tv_icon, &videoIcons.outputIcon);
42	_LoadBitmap(&resources, cam_icon, &videoIcons.inputIcon);
43	_LoadBitmap(&resources, mic_icon, &audioIcons.inputIcon);
44	_LoadBitmap(&resources, speaker_icon, &audioIcons.outputIcon);
45}
46
47
48void
49MediaIcons::_LoadBitmap(BResources* resources, int32 id, BBitmap* bitmap)
50{
51	size_t size;
52	const void* bits = resources->LoadResource(B_COLOR_8_BIT_TYPE, id, &size);
53	bitmap->SetBits(bits, size, 0, B_CMAP8);
54}
55
56
57BRect
58MediaIcons::IconRectAt(const BPoint& topLeft)
59{
60	return BRect(sBounds).OffsetToSelf(topLeft);
61}
62