📄 main.c.htm
字号:
<a class="l" name="77"> 77 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"USAGE:\n"</span>));<a class="l" name="78"> 78 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -i [ -vSCO ] [ -d device ] [ -p speed ]"</span>));<a class="l" name="79"> 79 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">" [ image-file ]\n"</span>));<a class="hl" name="80"> 80 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -a [ -vSCO ] [ -d device ] [ -p speed ]"</span>));<a class="l" name="81"> 81 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">" [ -T audio-type ] audio-file1 audio-file2 ...\n"</span>));<a class="l" name="82"> 82 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -x [ -v ] [ -d device ] [ -T audio-type ]"</span>));<a class="l" name="83"> 83 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">" track-number audio-file\n"</span>));<a class="l" name="84"> 84 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -c [ -SC ] [ -d device ] [ -p speed ]"</span>));<a class="l" name="85"> 85 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">" [ -m tmp-dir ] [ -s src-device ]\n"</span>));<a class="l" name="86"> 86 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a class="l" name="87"> 87 </a> <a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -b [ -v ] [ -d device ] all | session | fast\n"</span>));<a class="l" name="88"> 88 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -M [ -v ] [ -d device ]\n"</span>));<a class="l" name="89"> 89 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -L [ -v ] [ -d device ]\n"</span>));<a class="hl" name="90"> 90 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -l [ -v ]\n"</span>));<a class="l" name="91"> 91 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"\tcdrw -h\n"</span>));<a class="l" name="92"> 92 </a><a class="l" name="93"> 93 </a> <a href="/source/s?defs=exit">exit</a>(<span class="n">2</span>);<a class="l" name="94"> 94 </a>}<a class="l" name="95"> 95 </a><a class="l" name="96"> 96 </a><b>static</b> <b>void</b><a class="l" name="97"> 97 </a><a href="/source/s?defs=check_invalid_option">check_invalid_option</a>(<a href="/source/s?defs=options">options</a> *<a href="/source/s?defs=specified">specified</a>, <b>char</b> *<a href="/source/s?defs=opstr">opstr</a>)<a class="l" name="98"> 98 </a>{<a class="l" name="99"> 99 </a> <a href="/source/s?defs=options">options</a> <a href="/source/s?defs=c_op">c_op</a>;<a class="hl" name="100"> 100 </a> <b>int</b> <a href="/source/s?defs=ret">ret</a>;<a class="l" name="101"> 101 </a><a class="l" name="102"> 102 </a> <a href="/source/s?defs=set_options_mask">set_options_mask</a>(&<a href="/source/s?defs=c_op">c_op</a>, <a href="/source/s?defs=opstr">opstr</a>);<a class="l" name="103"> 103 </a> <b>if</b> ((<a href="/source/s?defs=ret">ret</a> = <a href="/source/s?defs=compare_options_mask">compare_options_mask</a>(&<a href="/source/s?defs=c_op">c_op</a>, <a href="/source/s?defs=specified">specified</a>)) != <span class="n">0</span>) {<a class="l" name="104"> 104 </a> <a href="/source/s?defs=err_msg">err_msg</a>(<a class="l" name="105"> 105 </a> <a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Option %c is not defined for this operation.\n"</span>),<a class="l" name="106"> 106 </a> (<b>char</b>)<a href="/source/s?defs=ret">ret</a>);<a class="l" name="107"> 107 </a> <a href="/source/s?defs=print_usage">print_usage</a>();<a class="l" name="108"> 108 </a> }<a class="l" name="109"> 109 </a>}<a class="hl" name="110"> 110 </a><a class="l" name="111"> 111 </a><a href="/source/s?defs=LibHalContext">LibHalContext</a> *<a class="l" name="112"> 112 </a><a href="/source/s?defs=attach_to_hald">attach_to_hald</a>(<b>void</b>)<a class="l" name="113"> 113 </a>{<a class="l" name="114"> 114 </a> <a href="/source/s?defs=LibHalContext">LibHalContext</a> *<a href="/source/s?defs=ctx">ctx</a> = <a href="/source/s?defs=NULL">NULL</a>;<a class="l" name="115"> 115 </a> <a href="/source/s?defs=DBusConnection">DBusConnection</a> *<a href="/source/s?defs=con">con</a> = <a href="/source/s?defs=NULL">NULL</a>;<a class="l" name="116"> 116 </a> <a href="/source/s?defs=DBusError">DBusError</a> <a href="/source/s?defs=error">error</a>;<a class="l" name="117"> 117 </a> <a href="/source/s?defs=hal_state_t">hal_state_t</a> <a href="/source/s?defs=state">state</a>;<a class="l" name="118"> 118 </a><a class="l" name="119"> 119 </a> <span class="c">/* Initialize the dbus error states */</span><a class="hl" name="120"> 120 </a> <a href="/source/s?defs=dbus_error_init">dbus_error_init</a>(&<a href="/source/s?defs=error">error</a>);<a class="l" name="121"> 121 </a><a class="l" name="122"> 122 </a> <b>if</b> ((<a href="/source/s?defs=con">con</a> = <a href="/source/s?defs=dbus_bus_get">dbus_bus_get</a>(<a href="/source/s?defs=DBUS_BUS_SYSTEM">DBUS_BUS_SYSTEM</a>, &<a href="/source/s?defs=error">error</a>)) == <a href="/source/s?defs=NULL">NULL</a>) {<a class="l" name="123"> 123 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="124"> 124 </a> }<a class="l" name="125"> 125 </a> <a href="/source/s?defs=state">state</a> = <a href="/source/s?defs=DBUS_CONNECTION">DBUS_CONNECTION</a>;<a class="l" name="126"> 126 </a><a class="l" name="127"> 127 </a> <span class="c">/* Allocate a new hal context to work with the dbus */</span><a class="l" name="128"> 128 </a> <b>if</b> ((<a href="/source/s?defs=ctx">ctx</a> = <a href="/source/s?defs=libhal_ctx_new">libhal_ctx_new</a>()) == <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="129"> 129 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="hl" name="130"> 130 </a> <a href="/source/s?defs=state">state</a> = <a href="/source/s?defs=HAL_CONTEXT">HAL_CONTEXT</a>;<a class="l" name="131"> 131 </a><a class="l" name="132"> 132 </a> <span class="c">/* Pair up the context with the connection */</span><a class="l" name="133"> 133 </a> <b>if</b> (!<a href="/source/s?defs=libhal_ctx_set_dbus_connection">libhal_ctx_set_dbus_connection</a>(<a href="/source/s?defs=ctx">ctx</a>, <a href="/source/s?defs=con">con</a>))<a class="l" name="134"> 134 </a> <b>goto</b> <a href="/source/s?defs=fail">fail</a>;<a class="l" name="135"> 135 </a> <a href="/source/s?defs=state">state</a> = <a href="/source/s?defs=HAL_PAIRED">HAL_PAIRED</a>;<a class="l" name="136"> 136 </a><a class="l" name="137"> 137 </a> <span class="c">/* If libhal_ctx_init fails hald is not present */</span><a class="l" name="138"> 138 </a> <b>if</b> (!<a href="/source/s?defs=libhal_ctx_init">libhal_ctx_init</a>(<a href="/source/s?defs=ctx">ctx</a>, &<a href="/source/s?defs=error">error</a>)) {<a class="l" name="139"> 139 </a> <b>goto</b> <a href="/source/s?defs=fail">fail</a>;<a class="hl" name="140"> 140 </a> }<a class="l" name="141"> 141 </a> <a href="/source/s?defs=state">state</a> = <a href="/source/s?defs=HAL_INITIALIZED">HAL_INITIALIZED</a>;<a class="l" name="142"> 142 </a><a class="l" name="143"> 143 </a> <b>return</b> (<a href="/source/s?defs=ctx">ctx</a>);<a class="l" name="144"> 144 </a><a href="/source/s?defs=fail">fail</a>:<a class="l" name="145"> 145 </a> <b>if</b> (<a href="/source/s?defs=dbus_error_is_set">dbus_error_is_set</a>(&<a href="/source/s?defs=error">error</a>))<a class="l" name="146"> 146 </a> <a href="/source/s?defs=dbus_error_free">dbus_error_free</a>(&<a href="/source/s?defs=error">error</a>);<a class="l" name="147"> 147 </a> <a href="/source/s?defs=detach_from_hald">detach_from_hald</a>(<a href="/source/s?defs=ctx">ctx</a>, <a href="/source/s?defs=state">state</a>);<a class="l" name="148"> 148 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="149"> 149 </a><a class="hl" name="150"> 150 </a>}<a class="l" name="151"> 151 </a><a class="l" name="152"> 152 </a><b>void</b><a class="l" name="153"> 153 </a><a href="/source/s?defs=detach_from_hald">detach_from_hald</a>(<a href="/source/s?defs=LibHalContext">LibHalContext</a> *<a href="/source/s?defs=ctx">ctx</a>, <a href="/source/s?defs=hal_state_t">hal_state_t</a> <a href="/source/s?defs=state">state</a>)<a class="l" name="154"> 154 </a>{<a class="l" name="155"> 155 </a> <a href="/source/s?defs=DBusError">DBusError</a> <a href="/source/s?defs=error">error</a>;<a class="l" name="156"> 156 </a> <a href="/source/s?defs=DBusConnection">DBusConnection</a> *<a href="/source/s?defs=con">con</a> = <a href="/source/s?defs=libhal_ctx_get_dbus_connection">libhal_ctx_get_dbus_connection</a>(<a href="/source/s?defs=ctx">ctx</a>);<a class="l" name="157"> 157 </a><a class="l" name="158"> 158 </a> <a href="/source/s?defs=dbus_error_init">dbus_error_init</a>(&<a href="/source/s?defs=error">error</a>);<a class="l" name="159"> 159 </a><a class="hl" name="160"> 160 </a> <b>switch</b> (<a href="/source/s?defs=state">state</a>) {<a class="l" name="161"> 161 </a> <b>case</b> <a href="/source/s?defs=HAL_INITIALIZED">HAL_INITIALIZED</a>:<a class="l" name="162"> 162 </a> <b>if</b> (<a href="/source/s?defs=libhal_ctx_shutdown">libhal_ctx_shutdown</a>(<a href="/source/s?defs=ctx">ctx</a>, &<a href="/source/s?defs=error">error</a>) == <a href="/source/s?defs=FALSE">FALSE</a>)<a class="l" name="163"> 163 </a> <b>if</b> (<a href="/source/s?defs=dbus_error_is_set">dbus_error_is_set</a>(&<a href="/source/s?defs=error">error</a>))<a class="l" name="164"> 164 </a> <a href="/source/s?defs=dbus_error_free">dbus_error_free</a>(&<a href="/source/s?defs=error">error</a>);<a class="l" name="165"> 165 </a> <span class="c">/*FALLTHROUGH*/</span><a class="l" name="166"> 166 </a> <b>case</b> <a href="/source/s?defs=HAL_PAIRED">HAL_PAIRED</a>:<a class="l" name="167"> 167 </a> (<b>void</b>) <a href="/source/s?defs=libhal_ctx_free">libhal_ctx_free</a>(<a href="/source/s?defs=ctx">ctx</a>);<a class="l" name="168"> 168 </a> <a href="/source/s?defs=dbus_connection_unref">dbus_connection_unref</a>(<a href="/source/s?defs=con">con</a>);<a class="l" name="169"> 169 </a> <b>break</b>;<a class="hl" name="170"> 170 </a> <b>case</b> <a href="/source/s?defs=HAL_CONTEXT">HAL_CONTEXT</a>:<a class="l" name="171"> 171 </a> (<b>void</b>) <a href="/source/s?defs=libhal_ctx_free">libhal_ctx_free</a>(<a href="/source/s?defs=ctx">ctx</a>);<a class="l" name="172"> 172 </a> <b>break</b>;<a class="l" name="173"> 173 </a> <b>case</b> <a href="/source/s?defs=DBUS_CONNECTION">DBUS_CONNECTION</a>:<a class="l" name="174"> 174 </a> <b>default</b>:<a class="l" name="175"> 175 </a> <b>break</b>;<a class="l" name="176"> 176 </a> }<a class="l" name="177"> 177 </a>}<a class="l" name="178"> 178 </a><a class="l" name="179"> 179 </a><span class="c">/*<a class="hl" name="180"> 180 </a> * This function returns one if hald is running and<a class="l" name="181"> 181 </a> * zero if hald is not running<a class="l" name="182"> 182 </a> */</span><a class="l" name="183"> 183 </a><b>int</b><a class="l" name="184"> 184 </a><a href="/source/s?defs=hald_running">hald_running</a>(<b>void</b>)<a class="l" name="185"> 185 </a>{<a class="l" name="186"> 186 </a> <a href="/source/s?defs=LibHalContext">LibHalContext</a> *<a href="/source/s?defs=ctx">ctx</a>;<a class="l" name="187"> 187 </a><a class="l" name="188"> 188 </a> <b>if</b> ((<a href="/source/s?defs=ctx">ctx</a> = <a href="/source/s?defs=attach_to_hald">attach_to_hald</a>()) == <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="189"> 189 </a> <b>return</b> (<span class="n">0</span>);<a class="hl" name="190"> 190 </a><a class="l" name="191"> 191 </a> <a href="/source/s?defs=detach_from_hald">detach_from_hald</a>(<a href="/source/s?defs=ctx">ctx</a>, <a href="/source/s?defs=HAL_INITIALIZED">HAL_INITIALIZED</a>);<a class="l" name="192"> 192 </a> <b>return</b> (<span class="n">1</span>);<a class="l" name="193"> 193 </a>}<a class="l" name="194"> 194 </a><a class="l" name="195"> 195 </a><b>int</b><a class="l" name="196"> 196 </a><a href="/source/s?defs=setup_target">setup_target</a>(<b>int</b> <a href="/source/s?defs=flag">flag</a>)<a class="l" name="197"> 197 </a>{<a class="l" name="198"> 198 </a> <b>char</b> *<a href="/source/s?defs=devpath">devpath</a>;<a class="l" name="199"> 199 </a><a class="hl" name="200"> 200 </a> <b>if</b> (<a href="/source/s?defs=tgtdev">tgtdev</a> != <a href="/source/s?defs=NULL">NULL</a>) {<a class="l" name="201"> 201 </a> <a href="/source/s?defs=devpath">devpath</a> = (<b>char</b> *)<a href="/source/s?defs=my_zalloc">my_zalloc</a>(<a href="/source/s?defs=PATH_MAX">PATH_MAX</a>);<a class="l" name="202"> 202 </a> <b>if</b> (<a href="/source/s?defs=lookup_device">lookup_device</a>(<a href="/source/s?defs=tgtdev">tgtdev</a>, <a href="/source/s?defs=devpath">devpath</a>)) {<a class="l" name="203"> 203 </a> <a href="/source/s?defs=target">target</a> = <a href="/source/s?defs=get_device">get_device</a>(<a href="/source/s?defs=tgtdev">tgtdev</a>, <a href="/source/s?defs=devpath">devpath</a>);<a class="l" name="204"> 204 </a> }<a class="l" name="205"> 205 </a> <a href="/source/s?defs=free">free</a>(<a href="/source/s?defs=devpath">devpath</a>);<a class="l" name="206"> 206 </a> <b>if</b> (<a href="/source/s?defs=target">target</a> == <a href="/source/s?defs=NULL">NULL</a>) {<a class="l" name="207"> 207 </a> <b>return</b> (<span class="n">0</span>);<a class="l" name="208"> 208 </a> }<a class="l" name="209"> 209 </a> <b>return</b> (<span class="n">1</span>);<a class="hl" name="210"> 210 </a> }<a class="l" name="211"> 211 </a> <b>return</b> (<a href="/source/s?defs=scan_for_cd_device">scan_for_cd_device</a>(<a href="/source/s?defs=flag">flag</a>, &<a href="/source/s?defs=target">target</a>));<a class="l" name="212"> 212 </a>}<a class="l" name="213"> 213 </a><a class="l" name="214"> 214 </a><b>int</b><a class="l" name="215"> 215 </a><a href="/source/s?defs=main">main</a>(<b>int</b> <a href="/source/s?defs=argc">argc</a>, <b>char</b> **<a href="/source/s?defs=argv">argv</a>)<a class="l" name="216"> 216 </a>{<a class="l" name="217"> 217 </a> <b>int</b> c;<a class="l" name="218"> 218 </a> <b>int</b> <a href="/source/s?defs=operations">operations</a>;<a class="l" name="219"> 219 </a> <a href="/source/s?defs=options">options</a> <a href="/source/s?defs=specified_ops">specified_ops</a>;<a class="hl" name="220"> 220 </a> <b>int</b> <a href="/source/s?defs=aflag">aflag</a>, <a href="/source/s?defs=iflag">iflag</a>, <a href="/source/s?defs=Mflag">Mflag</a>, <a href="/source/s?defs=Lflag">Lflag</a>, <a href="/source/s?defs=lflag">lflag</a>, <a href="/source/s?defs=bflag">bflag</a>, <a href="/source/s?defs=xflag">xflag</a>;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -