xref: /haiku/src/apps/mediaplayer/support/AbstractLOAdapter.h (revision cc2fbed22d7db3b90ece4147cf5933a599fe39ee)
1*cc2fbed2SStephan Aßmus /*
2*cc2fbed2SStephan Aßmus  * Copyright 2006, Haiku.
3*cc2fbed2SStephan Aßmus  * Distributed under the terms of the MIT License.
4*cc2fbed2SStephan Aßmus  *
5*cc2fbed2SStephan Aßmus  * Authors:
6*cc2fbed2SStephan Aßmus  *		Ingo Weinhold <bonefish@cs.tu-berlin.de>
7*cc2fbed2SStephan Aßmus  */
8*cc2fbed2SStephan Aßmus 
9*cc2fbed2SStephan Aßmus // This class provides some basic functionality for derivation of a
10*cc2fbed2SStephan Aßmus // listener -> observer adapter.
11*cc2fbed2SStephan Aßmus // The derived class should implement constructors similar to the
12*cc2fbed2SStephan Aßmus // ones of this class and pass the respective parameter.
13*cc2fbed2SStephan Aßmus // Each of the listener hook functions should construct a message
14*cc2fbed2SStephan Aßmus // and let it be delivered by DeliverMessage().
15*cc2fbed2SStephan Aßmus 
16*cc2fbed2SStephan Aßmus #ifndef ABSTRACT_LO_ADAPTER_H
17*cc2fbed2SStephan Aßmus #define ABSTRACT_LO_ADAPTER_H
18*cc2fbed2SStephan Aßmus 
19*cc2fbed2SStephan Aßmus #include <SupportDefs.h>
20*cc2fbed2SStephan Aßmus 
21*cc2fbed2SStephan Aßmus class BHandler;
22*cc2fbed2SStephan Aßmus class BLooper;
23*cc2fbed2SStephan Aßmus class BMessage;
24*cc2fbed2SStephan Aßmus class BMessenger;
25*cc2fbed2SStephan Aßmus 
26*cc2fbed2SStephan Aßmus class AbstractLOAdapter {
27*cc2fbed2SStephan Aßmus  public:
28*cc2fbed2SStephan Aßmus 								AbstractLOAdapter(BHandler* handler);
29*cc2fbed2SStephan Aßmus 								AbstractLOAdapter(const BMessenger& messenger);
30*cc2fbed2SStephan Aßmus 	virtual						~AbstractLOAdapter();
31*cc2fbed2SStephan Aßmus 
32*cc2fbed2SStephan Aßmus 			void				DeliverMessage(BMessage* message);
33*cc2fbed2SStephan Aßmus 			void				DeliverMessage(BMessage& message);
34*cc2fbed2SStephan Aßmus 			void				DeliverMessage(uint32 command);
35*cc2fbed2SStephan Aßmus 
36*cc2fbed2SStephan Aßmus  private:
37*cc2fbed2SStephan Aßmus 			BHandler*			fHandler;
38*cc2fbed2SStephan Aßmus 			BMessenger*			fMessenger;
39*cc2fbed2SStephan Aßmus };
40*cc2fbed2SStephan Aßmus 
41*cc2fbed2SStephan Aßmus #endif	// ABSTRACT_LO_ADAPTER_H
42