/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (C) 2019, Google Inc.
 *
 * event_loop.h - cam - Event loop
 */
#ifndef __CAM_EVENT_LOOP_H__
#define __CAM_EVENT_LOOP_H__

#include <atomic>

#include <libcamera/event_notifier.h>

namespace libcamera {
class EventDispatcher;
}

class EventLoop
{
public:
	EventLoop(libcamera::EventDispatcher *dispatcher);
	~EventLoop();

	int exec();
	void exit(int code = 0);

private:
	libcamera::EventDispatcher *dispatcher_;

	std::atomic<bool> exit_;
	int exitCode_;
};

#endif /* __CAM_EVENT_LOOP_H__ */
ef='/'><img src='/logo.png' alt='cgit logo'/></a></td>
<td class='main'><a href='/'>index</a> : <a title='libcamera/vivid.git' href='/libcamera/vivid.git/'>libcamera/vivid.git</a></td><td class='form'><form method='get'>
<input type='hidden' name='id' value='22b61a4f3054089090f62cb8acaa6b96aae79903'/><select name='h' onchange='this.form.submit();'>
<option value='pobrn/rebase'>pobrn/rebase</option>
<option value='vivid'>vivid</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>libcamera pipeline handler for VIVID</td><td class='sub right'>git repository hosting on libcamera.org</td></tr></table>
<table class='tabs'><tr><td>
<a href='/libcamera/vivid.git/?h=v0.0.1'>summary</a><a href='/libcamera/vivid.git/refs/?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>refs</a><a href='/libcamera/vivid.git/log/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1'>log</a><a class='active' href='/libcamera/vivid.git/tree/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>tree</a><a href='/libcamera/vivid.git/commit/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>commit</a><a href='/libcamera/vivid.git/diff/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>diff</a></td><td class='form'><form class='right' method='get' action='/libcamera/vivid.git/log/src/qcam/assets/feathericons/shopping-bag.svg'>
<input type='hidden' name='h' value='v0.0.1'/><input type='hidden' name='id' value='22b61a4f3054089090f62cb8acaa6b96aae79903'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/libcamera/vivid.git/tree/?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>root</a>/<a href='/libcamera/vivid.git/tree/src?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>src</a>/<a href='/libcamera/vivid.git/tree/src/qcam?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>qcam</a>/<a href='/libcamera/vivid.git/tree/src/qcam/assets?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>assets</a>/<a href='/libcamera/vivid.git/tree/src/qcam/assets/feathericons?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>feathericons</a>/<a href='/libcamera/vivid.git/tree/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>shopping-bag.svg</a></div><div class='content'>blob: eaa39e815d9c4e519859523b0f010e7150b0a92b (<a href='/libcamera/vivid.git/plain/src/qcam/assets/feathericons/shopping-bag.svg?h=v0.0.1&amp;id=22b61a4f3054089090f62cb8acaa6b96aae79903'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
</pre></td>
<td class='lines'><pre><code>