VUView.h revision 57e2f323
157e2f323SJérôme Duval/*
257e2f323SJérôme Duval * Copyright 2005, J��r��me Duval. All rights reserved.
357e2f323SJérôme Duval * Distributed under the terms of the MIT License.
457e2f323SJérôme Duval *
557e2f323SJérôme Duval * Inspired by SoundCapture from Be newsletter (Media Kit Basics: Consumers and Producers)
657e2f323SJérôme Duval */
757e2f323SJérôme Duval
857e2f323SJérôme Duval#ifndef VUVIEW_H
957e2f323SJérôme Duval#define VUVIEW_H
1057e2f323SJérôme Duval
1157e2f323SJérôme Duval#include <Bitmap.h>
1257e2f323SJérôme Duval#include <View.h>
1357e2f323SJérôme Duval
1457e2f323SJérôme Duval
1557e2f323SJérôme Duvalclass VUView : public BView
1657e2f323SJérôme Duval{
1757e2f323SJérôme Duvalpublic:
1857e2f323SJérôme Duval	VUView(BRect rect, uint32 resizeFlags);
1957e2f323SJérôme Duval	~VUView();
2057e2f323SJérôme Duval	void AttachedToWindow();
2157e2f323SJérôme Duval	void DetachedFromWindow();
2257e2f323SJérôme Duval	void Draw(BRect updateRect);
2357e2f323SJérôme Duval	void ComputeNextLevel(void *data, size_t size);
2457e2f323SJérôme Duval
2557e2f323SJérôme Duvalprivate:
2657e2f323SJérôme Duval	void Run();
2757e2f323SJérôme Duval	void Quit();
2857e2f323SJérôme Duval	static int32 RenderLaunch(void *data);
2957e2f323SJérôme Duval	void RenderLoop();
3057e2f323SJérôme Duval
3157e2f323SJérôme Duval	thread_id fThreadId;
3257e2f323SJérôme Duval	BBitmap *fBitmap;
3357e2f323SJérôme Duval	BView *fBitmapView;
3457e2f323SJérôme Duval	bool fQuitting;
3557e2f323SJérôme Duval	int32 fLevelCount;
3657e2f323SJérôme Duval	int32 *fCurrentLevels;
3757e2f323SJérôme Duval	int32 fChannels;
3857e2f323SJérôme Duval};
3957e2f323SJérôme Duval
4057e2f323SJérôme Duval#endif	/* VUVIEW_H */
41