xref: /haiku/src/apps/mediaplayer/support/AbstractLOAdapter.cpp (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 #include "AbstractLOAdapter.h"
10*cc2fbed2SStephan Aßmus 
11*cc2fbed2SStephan Aßmus #include <Handler.h>
12*cc2fbed2SStephan Aßmus #include <Looper.h>
13*cc2fbed2SStephan Aßmus #include <Messenger.h>
14*cc2fbed2SStephan Aßmus 
15*cc2fbed2SStephan Aßmus // constructor
AbstractLOAdapter(BHandler * handler)16*cc2fbed2SStephan Aßmus AbstractLOAdapter::AbstractLOAdapter(BHandler* handler)
17*cc2fbed2SStephan Aßmus 	: fHandler(handler),
18*cc2fbed2SStephan Aßmus 	  fMessenger(NULL)
19*cc2fbed2SStephan Aßmus {
20*cc2fbed2SStephan Aßmus }
21*cc2fbed2SStephan Aßmus 
22*cc2fbed2SStephan Aßmus // constructor
AbstractLOAdapter(const BMessenger & messenger)23*cc2fbed2SStephan Aßmus AbstractLOAdapter::AbstractLOAdapter(const BMessenger& messenger)
24*cc2fbed2SStephan Aßmus 	: fHandler(NULL),
25*cc2fbed2SStephan Aßmus 	  fMessenger(new BMessenger(messenger))
26*cc2fbed2SStephan Aßmus {
27*cc2fbed2SStephan Aßmus }
28*cc2fbed2SStephan Aßmus 
29*cc2fbed2SStephan Aßmus // destructor
~AbstractLOAdapter()30*cc2fbed2SStephan Aßmus AbstractLOAdapter::~AbstractLOAdapter()
31*cc2fbed2SStephan Aßmus {
32*cc2fbed2SStephan Aßmus 	delete fMessenger;
33*cc2fbed2SStephan Aßmus }
34*cc2fbed2SStephan Aßmus 
35*cc2fbed2SStephan Aßmus // DeliverMessage
36*cc2fbed2SStephan Aßmus void
DeliverMessage(BMessage * message)37*cc2fbed2SStephan Aßmus AbstractLOAdapter::DeliverMessage(BMessage* message)
38*cc2fbed2SStephan Aßmus {
39*cc2fbed2SStephan Aßmus 	if (fHandler) {
40*cc2fbed2SStephan Aßmus 		if (BLooper* looper = fHandler->Looper())
41*cc2fbed2SStephan Aßmus 			looper->PostMessage(message, fHandler);
42*cc2fbed2SStephan Aßmus 	} else if (fMessenger)
43*cc2fbed2SStephan Aßmus 		fMessenger->SendMessage(message);
44*cc2fbed2SStephan Aßmus }
45*cc2fbed2SStephan Aßmus 
46*cc2fbed2SStephan Aßmus // DeliverMessage
47*cc2fbed2SStephan Aßmus void
DeliverMessage(BMessage & message)48*cc2fbed2SStephan Aßmus AbstractLOAdapter::DeliverMessage(BMessage& message)
49*cc2fbed2SStephan Aßmus {
50*cc2fbed2SStephan Aßmus 	DeliverMessage(&message);
51*cc2fbed2SStephan Aßmus }
52*cc2fbed2SStephan Aßmus 
53*cc2fbed2SStephan Aßmus // DeliverMessage
54*cc2fbed2SStephan Aßmus void
DeliverMessage(uint32 command)55*cc2fbed2SStephan Aßmus AbstractLOAdapter::DeliverMessage(uint32 command)
56*cc2fbed2SStephan Aßmus {
57*cc2fbed2SStephan Aßmus 	BMessage message(command);
58*cc2fbed2SStephan Aßmus 	DeliverMessage(&message);
59*cc2fbed2SStephan Aßmus }
60*cc2fbed2SStephan Aßmus 
61