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
16 const BRect MediaIcons::sBounds(0, 0, 15, 15);
17
18
IconSet()19 MediaIcons::IconSet::IconSet()
20 :
21 inputIcon(MediaIcons::sBounds, B_CMAP8),
22 outputIcon(MediaIcons::sBounds, B_CMAP8)
23 {
24 }
25
26
27
MediaIcons()28 MediaIcons::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
48 void
_LoadBitmap(BResources * resources,int32 id,BBitmap * bitmap)49 MediaIcons::_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
57 BRect
IconRectAt(const BPoint & topLeft)58 MediaIcons::IconRectAt(const BPoint& topLeft)
59 {
60 return BRect(sBounds).OffsetToSelf(topLeft);
61 }
62