xref: /haiku/src/apps/soundrecorder/VolumeSlider.h (revision ad0c65ea97e4acc420fc3a60e884f2402ad2859b)
1 /*
2  * Copyright 2005, Jérôme Duval. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Inspired by SoundCapture from Be newsletter (Media Kit Basics: Consumers and Producers)
6  */
7 #ifndef VOLUMESLIDER_H
8 #define VOLUMESLIDER_H
9 
10 #include <Control.h>
11 #include <Bitmap.h>
12 #include <Box.h>
13 #include <SoundPlayer.h>
14 
15 class VolumeSlider : public BControl
16 {
17 public:
18 	VolumeSlider(BRect rect, const char* title, uint32 resizeFlags);
19 	~VolumeSlider();
20 	virtual void Draw(BRect);
21 	virtual void MouseMoved(BPoint point, uint32 transit, const BMessage *message);
22 	virtual void MouseUp(BPoint point);
23 	virtual void MouseDown(BPoint point);
24 	void SetSoundPlayer(BSoundPlayer *player);
25 private:
26 	void _UpdateVolume(BPoint point);
27 
28 	BBitmap fLeftBitmap, fRightBitmap, fButtonBitmap;
29 	float fRight;
30 	float fVolume;
31 	BSoundPlayer *fSoundPlayer;
32 };
33 
34 class SpeakerView : public BBox
35 {
36 public:
37 	SpeakerView(BRect rect, uint32 resizeFlags);
38 	~SpeakerView();
39 	void Draw(BRect updateRect);
40 
41 private:
42 	BBitmap fSpeakerBitmap;
43 };
44 
45 #endif
46