haiku-website/static/legacy-docs/bebook/BMediaEventLooper.html

83 lines
27 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The Be Book - Classes And Methods - The Media Kit</title><link rel="stylesheet" href="be_book.css" type="text/css" media="all" /><link rel="shortcut icon" type="image/vnd.microsoft.icon" href="./images/favicon.ico" /><!--[if IE]>
<link rel="stylesheet" type="text/css" href="be_book_ie.css" />
<![endif]--><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="Access, BeOS, BeBook, API" /><link rel="start" href="index.html" title="The Be Book" /><link rel="up" href="TheMediaKit.html" title="The Media Kit" /><link rel="prev" href="BMediaEncoder.html" title="BMediaEncoder" /><link rel="next" href="BMediaFile.html" title="BMediaFile" /></head><body><div id="header"><div id="headerT"><div id="headerTL"><a accesskey="p" href="BMediaEncoder.html" title="BMediaEncoder"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a accesskey="u" href="TheMediaKit.html" title="The Media Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a accesskey="n" href="BMediaFile.html" title="BMediaFile"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="headerTR"><div id="navigpeople"><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div><div class="navigboxed" id="navigindex"><a accesskey="i" href="ClassIndex.html" title="Index">I</a></div><div class="navigboxed" id="naviglang" title="English">en</div></div><div id="headerTC">The Be Book - Classes And Methods - The Media Kit</div></div><div id="headerB">Prev: <a href="BMediaEncoder.html">BMediaEncoder</a>  Up: <a href="TheMediaKit.html">The Media Kit</a>  Next: <a href="BMediaFile.html">BMediaFile</a></div><hr /></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h2 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper"></a>BMediaEventLooper</h2></div></div></div><a id="id1138479" class="indexterm"></a><div class="classheader"><table border="0"><colgroup><col /><col /></colgroup><tbody><tr><td><table width="100%" border="0"><colgroup><col /><col /></colgroup><tbody><tr><td>Derived From:</td><td><a class="link" href="BMediaNode.html" title="BMediaNode"><code class="classname">BMediaNode</code></a></td></tr><tr><td>Mix-in Classes:</td><td></td></tr><tr><td>Declared In:</td><td><code class="filename">media/MediaEventLooper.h</code></td></tr><tr><td>Library:</td><td><code class="filename">libmedia.so</code></td></tr><tr><td>Allocation:</td><td>Constructor only</td></tr></tbody></table></td><td>
<a class="link overview" href="BMediaEventLooper_Overview.html" title="BMediaEventLooper">Class Overview</a>
<div class="toc"><ul><li><span class="section"><a href="BMediaEventLooper.html#BMediaEventLooper_ConstructorDestructor">Constructor and Destructor</a></span></li><li><span class="section"><a href="BMediaEventLooper.html#BMediaEventLooper_MemberFunctions">Member Functions</a></span></li><li><span class="section"><a href="BMediaEventLooper.html#BMediaEventLooper_Constants">Constants</a></span></li></ul></div>
</td></tr></tbody></table></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_ConstructorDestructor"></a>Constructor and Destructor</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_Constructor"></a>BMediaEventLooper()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="constructorsynopsis cpp"><span class="modifier">explicit </span><span class="methodname">BMediaEventLooper</span>(<span class="methodparam"><span class="type">uint32* </span><span class="parameter">apiVersion</span><span class="initializer"> = <span class="constant">B_BEOS_VERSION</span></span></span>);</code><p>You need to override this function to handle your node's initialization
needs. The <code class="parameter">apiVersion</code> argument indicates the version of the BeOS API the
object was written for; you should let the default value be
used—this will cause your node to inherit the API version of the
BeOS version you're compiling under.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_Destructor"></a>~BMediaEventLooper()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="destructorsynopsis cpp"><span class="modifier">virtual </span><span class="methodname">~BMediaEventLooper</span>();</code><p>Calls
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_Quit" title="Quit()"><code class="methodname">Quit()</code></a>
to stop the control thread and free allocated memory.</p></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_MemberFunctions"></a>Member Functions</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_CleanUpEvent"></a>CleanUpEvent()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="modifier">virtual </span><span class="void">void </span><span class="methodname">CleanUpEvent</span>(<span class="methodparam"><span class="modifier">const </span><span class="type"><a class="link" href="BTimedEventQueue.html#media_timed_event" title="media_timed_event">media_timed_event</a>* </span><span class="parameter">event</span></span>);</code><p>Implement this function to clean up after custom events you've created
and added to your queue. It's called when a custom event is removed from
the queue, to let you handle any special tidying-up that the event might
require.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_ControlLoop"></a>ControlLoop()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="modifier">virtual </span><span class="void">void </span><span class="methodname">ControlLoop</span>();</code><p>This function waits for messages, pops events off the queue, and calls
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_DispatchEvent" title="DispatchEvent()"><code class="methodname">DispatchEvent()</code></a>.
It's called automatically when the <code class="classname">BMediaEventLooper</code> is
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_Run" title="Run()"><code class="methodname">Run()</code></a>.</p><div class="admonition warning"><div class="title">Warning</div><div class="graphic"><img class="icon" alt="Warning" width="32" src="./images/admonitions/Stop_32.png" /><div class="text"><p>If you choose to reimplement this function, be very careful; it's very
easy to cause Bad Things to happen.</p></div></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_ControlThread"></a>ControlThread()</h4></div></div></div><code class="methodsynopsis cpp"><span class="type">thread_id </span><span class="methodname">ControlThread</span>();</code><p>Returns the control thread's
<a class="link" href="TheKernelKit_ThreadsAndTeams.html#thread_id"><span class="type">thread_id</span></a>.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_DispatchEvent"></a>DispatchEvent()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">DispatchEvent</span>(<span class="methodparam"><span class="modifier">const </span><span class="type"><a class="link" href="BTimedEventQueue.html#media_timed_event" title="media_timed_event">media_timed_event</a>* </span><span class="parameter">event</span></span>,<br />                   <span class="methodparam"><span class="type">bigtime_t </span><span class="parameter">lateness</span></span>,<br />                   <span class="methodparam"><span class="type">bool </span><span class="parameter">realTimeEvent</span><span class="initializer"> = <span class="constant">false</span></span></span>);</code><p>Calls
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_HandleEvent" title="HandleEvent()"><code class="methodname">HandleEvent()</code></a>
to let your code handle the specified event. If your
code doesn't handle it, this function may have a default handler to
process it. In general, you won't call this function.</p><p><code class="classname">BMediaEventLooper</code> compensates your
performance time by adding the event latency (see
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_SetEventLatency" title="SetEventLatency(), EventLatency()"><code class="methodname">SetEventLatency()</code></a>)
and the scheduling latency (or, for
real-time events, only the scheduling latency).</p><p>It's the control loop's job to remove the event from the queue; this
function doesn't do that.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_EventQueue"></a><a id="BMediaEventLooper_RealTimeQueue"></a>
EventQueue(), RealTimeQueue()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="type"><span class="classname">BTimedEventQueue</span>* </span><span class="methodname">EventQueue</span>();</code><code class="methodsynopsis cpp"><span class="type"><span class="classname">BTimedEventQueue</span>* </span><span class="methodname">RealTimeQueue</span>();</code><p><code class="methodname">EventQueue()</code> returns a
pointer to the
<a class="link" href="BTimedEventQueue.html" title="BTimedEventQueue"><code class="classname">BTimedEventQueue</code></a>
used by the
message handler. <code class="methodname">RealTimeQueue()</code> returns a pointer to the
<a class="link" href="BTimedEventQueue.html" title="BTimedEventQueue"><code class="classname">BTimedEventQueue</code></a>
used to queue real-time events.</p><div class="admonition note"><div class="title">Note</div><div class="graphic"><img class="icon" alt="Note" width="32" src="./images/admonitions/Info_32.png" /><div class="text"><p>Events in the real-time queue are handled according to their real time,
while events in the normal event queue are handled based on their
performance time. So the values of the time stamps on events in these two
queues are handled differently; keep this in mind if you need to peek
into the queues yourself.</p></div></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_HandleEvent"></a>HandleEvent()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="modifier">virtual </span><span class="void">void </span><span class="methodname">ControlLoop</span>(<span class="methodparam"><span class="modifier">const </span><span class="type"><a class="link" href="BTimedEventQueue.html#media_timed_event" title="media_timed_event">media_timed_event</a>* </span><span class="parameter">event</span></span>,<br />                         <span class="methodparam"><span class="type">bigtime_t </span><span class="parameter">lateness</span></span>,<br />                         <span class="methodparam"><span class="type">bool </span><span class="parameter">realTimeEvent</span><span class="initializer"> = <span class="constant">false</span></span></span>);</code><p>Implement this function to handle incoming media events. The <code class="parameter">event</code>
argument references a
<a class="link" href="BTimedEventQueue.html#media_timed_event" title="media_timed_event">media_timed_event</a>
structure that describes the
event. <code class="parameter">lateness</code> indicates how late the
event is, and <code class="parameter">realTimeEvent</code> is
<code class="constant">true</code> if the event needs to be handled in real time.</p><p>The <code class="classname">BMediaEventLooper</code> will call this function from the
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_DispatchEvent" title="DispatchEvent()"><code class="methodname">DispatchEvent()</code></a>
function. It's the control loop's job to remove the event from the queue.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_NodeRegistered"></a>NodeRegistered()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="modifier">virtual </span><span class="void">void </span><span class="methodname">NodeRegistered</span>();</code><p>The Media Server calls this hook function after the node has been
registered. This is derived from
<a class="link" href="BMediaNode.html" title="BMediaNode"><code class="classname">BMediaNode</code></a>;
<code class="classname">BMediaEventLooper</code> implements it to call
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_Run" title="Run()"><code class="methodname">Run()</code></a>
automatically when the node is registered; if you implement
<code class="methodname">NodeRegistered()</code> you should call through to
<a class="link" href="BMediaNode.html#BMediaNode_NodeRegistered" title="NodeRegistered()"><code class="methodname">BMediaNode::NodeRegistered()</code></a>
after you've done your custom operations.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_Quit"></a>Quit()</h4></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">Quit</span>();</code><p>Closes the node's control port and closes the control thread. Blocks
until the control thread is gone.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_Run"></a>Run()</h4></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">Run</span>();</code><p>Spawns and runs the control thread; this is called automatically by the
default <a class="link" href="BMediaEventLooper.html#BMediaEventLooper_NodeRegistered" title="NodeRegistered()"><code class="methodname">NodeRegistered()</code></a>
implementation. If you override
<a class="link" href="BMediaEventLooper.html#BMediaEventLooper_NodeRegistered" title="NodeRegistered()"><code class="methodname">NodeRegistered()</code></a>,
be sure you call through to the default implementation, or call
<code class="methodname">Run()</code>.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SchedulingLatency"></a>SchedulingLatency()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="type">bigtime_t </span><span class="methodname">SchedulingLatency</span>() <span class="modifier">const</span>;</code><p>Returns the scheduling latnecy, in microseconds, of the node.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SetBufferDuration"></a><a id="BMediaEventLooper_BufferDuration"></a>
SetBufferDuration(), BufferDuration()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">SetBufferDuration</span>(<span class="methodparam"><span class="type">bigtime_t </span><span class="parameter">duration</span></span>);</code><code class="methodsynopsis cpp"><span class="type">bigtime_t </span><span class="methodname">BufferDuration</span>() <span class="modifier">const</span>;</code><p><code class="methodname">SetBufferDuration()</code> sets the duration
of the node's buffers. The duration is clamped to 0 if it's less than 0.</p><p><code class="methodname">BufferDuration()</code> returns the duration
of the nodes' buffers.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SetEventLatency"></a><a id="BMediaEventLooper_EventLatency"></a>
SetEventLatency(), EventLatency()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">SetEventLatency</span>(<span class="methodparam"><span class="type">bigtime_t </span><span class="parameter">latency</span></span>);</code><code class="methodsynopsis cpp"><span class="type">bigtime_t </span><span class="methodname">EventLatency</span>() <span class="modifier">const</span>;</code><p><code class="methodname">SetEventLatency()</code> sets the event latency. The event latency is the
upstream and downstream algorithmic latency of your node—but should
not include scheduling latency. This latency is taken into account by the
<code class="classname">BMediaEventLooper</code> when deciding when to pop events off the queue for you
to process.</p><p><code class="methodname">EventLatency()</code> returns the event latency.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SetOfflineTime"></a><a id="BMediaEventLooper_OfflineTime"></a>
SetOfflineTime(), OfflineTime()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">SetOfflineTime</span>(<span class="methodparam"><span class="type">bigtime_t </span><span class="parameter">offlineTime</span></span>);</code><code class="methodsynopsis cpp"><span class="modifier">virtual </span><span class="type">bigtime_t </span><span class="methodname">OfflineTime</span>();</code><p><code class="methodname">SetOfflineTime()</code> sets the time that
<code class="methodname">OfflineTime()</code> will return.</p><p>Augment <code class="methodname">OfflineTime()</code> to compute the node's current time; it's called by
the Media Kit when it's in offline mode. Update any appropriate internal
information as well, then call through to the <code class="classname">BMediaEventLooper</code>
implementation.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SetPriority"></a><a id="BMediaEventLooper_Priority"></a>
SetPriority(), Priority()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">SetPriority</span>(<span class="methodparam"><span class="type">int32 </span><span class="parameter">priority</span></span>);</code><code class="methodsynopsis cpp"><span class="type">int32 </span><span class="methodname">Priority</span>() <span class="modifier">const</span>;</code><p><code class="methodname">SetPriority()</code> sets the control thread's priority. Values less than 0 are
clamped to 0, and values greater than 120 are clamped to 120.</p><p><code class="methodname">Priority()</code> returns the control thread's current priority.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_SetRunState"></a><a id="BMediaEventLooper_RunState"></a>
SetRunState(), RunState()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">SetRunState</span>(<span class="methodparam"><span class="type">run_state </span><span class="parameter">state</span></span>);</code><code class="methodsynopsis cpp"><span class="type">run_state </span><span class="methodname">RunState</span>() <span class="modifier">const</span>;</code><p><code class="methodname">SetRunState()</code> sets the node's current run state.</p><p><code class="methodname">RunState()</code> returns the current run state.</p></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaEventLooper_Constants"></a>Constants</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="Constants_run_state"></a>run_state</h4></div></div></div><p>Declared in: <code class="filename">media/MediaEventLooper.h</code></p><table class="variablelist constants"><thead><tr><th>Constant</th><th>Description</th></tr></thead><tbody><tr><td><p><span class="term"><code class="constant">B_IN_DISTRESS</code>.</span></p></td><td><p>The node is experiencing problems.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_UNREGISTERED</code>.</span></p></td><td><p>The node hasn't been registered with the Media roster yet.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_STOPPED</code>.</span></p></td><td><p>The node isn't running.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_STARTED</code>.</span></p></td><td><p>The node is running.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_QUITTING</code>.</span></p></td><td><p>The node's in the process of shutting down.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_TERMINATED</code>.</span></p></td><td><p>The node has been terminated.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_USER_RUN_STATES</code>.</span></p></td><td><p>Base for user-defined run states.</p></td></tr></tbody></table></div></div></div><div id="footer"><hr /><div id="footerT">Prev: <a href="BMediaEncoder.html">BMediaEncoder</a>  Up: <a href="TheMediaKit.html">The Media Kit</a>  Next: <a href="BMediaFile.html">BMediaFile</a> </div><div id="footerB"><div id="footerBL"><a href="BMediaEncoder.html" title="BMediaEncoder"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a href="TheMediaKit.html" title="The Media Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a href="BMediaFile.html" title="BMediaFile"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="footerBR"><div><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div></div><div id="footerBC"><a href="http://www.access-company.com/home.html" title="ACCESS Co."><img alt="Access Company" src="./images/access_logo.png" /></a></div></div></div><div id="licenseFooter"><div id="licenseFooterBL"><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/" title="Creative Commons License"><img alt="Creative Commons License" style="border-width:0" src="https://licensebuttons.net/l/by-nc-nd/3.0/88x31.png" /></a></div><div id="licenseFooterBR"><a href="./LegalNotice.html">Legal Notice</a></div><div id="licenseFooterBC"><span id="licenseText">This work is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative
Commons Attribution-Non commercial-No Derivative Works 3.0 License</a>.</span></div></div></body></html>