EigerEventCtrlObj.h 1.92 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//###########################################################################
// This file is part of LImA, a Library for Image Acquisition
//
// Copyright (C) : 2009-2014
// European Synchrotron Radiation Facility
// BP 220, Grenoble 38043
// FRANCE
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see <http://www.gnu.org/licenses/>.
//###########################################################################
#ifndef EIGEREVENTCTRLOBJ_H
#define EIGEREVENTCTRLOBJ_H

#include "lima/HwEventCtrlObj.h"
#include "EigerCamera.h"

namespace lima
{
    namespace Eiger
    {

/*******************************************************************
 * \class EventCtrlObj
 * \brief Control object providing Eiger event interface
 *******************************************************************/

	class /*LIBEIGER*/ EventCtrlObj : public HwEventCtrlObj
	{
	    DEB_CLASS_NAMESPC(DebModCamera, "EventCtrlObj", "Eiger");

	public:
	    EventCtrlObj(Camera& cam);
	    virtual ~EventCtrlObj();

	private:
	    class EventCallback : public lima::EventCallback {
	    public:
		EventCallback(EventCtrlObj& ctrl_obj)
		  : m_ctrl_obj(ctrl_obj) {}
		virtual void processEvent(Event *event)
		{ m_ctrl_obj.reportEvent(event); }
	    private:
		EventCtrlObj& m_ctrl_obj;
	    };
	    Camera& m_cam;
	    std::unique_ptr<EventCallback> m_cbk;
	};

    } // namespace Eiger
} // namespace lima

#endif // EIGEREVENTCTRLOBJ