<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="AppStream" version="1.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="appstream-compose"/>
  <c:include name="appstream-compose.h"/>
  <doc:format name="unknown"/>
  <namespace name="AppStreamCompose"
             version="1.0"
             shared-library="libappstream-compose.so.1"
             c:identifier-prefixes="Asc"
             c:symbol-prefixes="asc">
    <callback name="CheckMetadataEarlyFn"
              c:type="AscCheckMetadataEarlyFn"
              version="0.15.1">
      <doc xml:space="preserve"
           filename="compose/asc-compose.h"
           line="86">Function which is called after all metainfo and related data (e.g. desktop-entry files)
has been loaded, but *before* any expensive operations such as screenshot downloads or
font searches are performed.

This function can be useful to filter out unwanted components early in the process and
avoid unneeded downloads and other data processing.
By the time this function is called, the component's global ID should be finalized
and should not change any longer.

Please note that this function may be called from any thread, and thread safety needs
to be taken care of by the callee.</doc>
      <source-position filename="compose/asc-compose.h" line="106"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="cres" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="88">A pointer to generated #AscResult</doc>
          <type name="Result" c:type="AscResult*"/>
        </parameter>
        <parameter name="unit" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="89">The unit we are currently processing.</doc>
          <type name="Unit" c:type="AscUnit*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="90">Additional data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Compose"
           c:symbol-prefix="compose"
           c:type="AscCompose"
           parent="GObject.Object"
           glib:type-name="AscCompose"
           glib:get-type="asc_compose_get_type"
           glib:type-struct="ComposeClass">
      <source-position filename="compose/asc-compose.h" line="46"/>
      <constructor name="new" c:identifier="asc_compose_new" version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2777">Creates a new #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="130"/>
        <return-value transfer-ownership="full">
          <type name="Compose" c:type="AscCompose*"/>
        </return-value>
      </constructor>
      <method name="add_allowed_cid"
              c:identifier="asc_compose_add_allowed_cid"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="215">Adds a component ID to the allowlist. If the list is not empty, only
components in the list will be added to the metadata output.</doc>
        <source-position filename="compose/asc-compose.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="217">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="218">The component-id to whitelist</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_custom_allowed"
              c:identifier="asc_compose_add_custom_allowed"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="803">Add a key to the allowlist that is used to filter custom tag values.</doc>
        <source-position filename="compose/asc-compose.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="805">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="806">the custom key to add to the allowed list.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_flags"
              c:identifier="asc_compose_add_flags"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="480">Add compose flags.</doc>
        <source-position filename="compose/asc-compose.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="482">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="483">The compose flags to add.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_unit"
              c:identifier="asc_compose_add_unit"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="187">Add an #AscUnit as data source for metadata processing.</doc>
        <source-position filename="compose/asc-compose.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="189">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="190">The #AscUnit to add</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_components"
              c:identifier="asc_compose_fetch_components"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="1000">Get the results components extracted in the last data processing run.</doc>
        <source-position filename="compose/asc-compose.h" line="217"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="1006">The components</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AppStream.Component"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="1002">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="finalize_result"
              c:identifier="asc_compose_finalize_result"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2538">Perform final validation of generated data for the specified
result container.</doc>
        <source-position filename="compose/asc-compose.h" line="225"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2540">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2541">the #AscResult to finalize</doc>
            <type name="Result" c:type="AscResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="finalize_results"
              c:identifier="asc_compose_finalize_results"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2515">Perform final validation of generated data.
Calling this function is not necessary, unless the final check was explicitly
disabled using the %ASC_COMPOSE_FLAG_NO_FINAL_CHECK flag.</doc>
        <source-position filename="compose/asc-compose.h" line="224"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2517">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cainfo"
              c:identifier="asc_compose_get_cainfo"
              version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="582">Get the CA file used to verify peers with, or %NULL for default.</doc>
        <source-position filename="compose/asc-compose.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="584">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data_result_dir"
              c:identifier="asc_compose_get_data_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="621">Get the data result directory.</doc>
        <source-position filename="compose/asc-compose.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="623">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="asc_compose_get_flags"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="444">Get the flags controlling compose behavior.</doc>
        <source-position filename="compose/asc-compose.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="ComposeFlags" c:type="AscComposeFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="446">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format"
              c:identifier="asc_compose_get_format"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="329">get the format type we are generating.</doc>
        <source-position filename="compose/asc-compose.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="331">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hints_result_dir"
              c:identifier="asc_compose_get_hints_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="738">Get hints report output directory.</doc>
        <source-position filename="compose/asc-compose.h" line="190"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="740">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_policy"
              c:identifier="asc_compose_get_icon_policy"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="516">Get the policy for how icons should be distributed to
any AppStream clients.</doc>
        <source-position filename="compose/asc-compose.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="523">an #AscIconPolicy</doc>
          <type name="IconPolicy" c:type="AscIconPolicy*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="518">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icons_result_dir"
              c:identifier="asc_compose_get_icons_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="660">Get the icon result directory.</doc>
        <source-position filename="compose/asc-compose.h" line="182"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="662">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image_format"
              c:identifier="asc_compose_get_image_format"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="364">Get the file format that generated icons and screenshots are stored in.
This is unrelated to %asc_compose_get_format, which selects the format
of the generated catalog metadata.</doc>
        <source-position filename="compose/asc-compose.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="366">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locale_unit"
              c:identifier="asc_compose_get_locale_unit"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="934">Get the unit we use for locale processing</doc>
        <source-position filename="compose/asc-compose.h" line="212"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="940">The unit used for locale processing, or %NULL for default.</doc>
          <type name="Unit" c:type="AscUnit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="936">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_screenshot_size"
              c:identifier="asc_compose_get_max_screenshot_size"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="824">Get the maximum size a screenshot video or image can have.
A size &lt; 0 may be returned for no limit, setting a limit of 0
will disable screenshots.</doc>
        <source-position filename="compose/asc-compose.h" line="199"/>
        <return-value transfer-ownership="none">
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="826">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_baseurl"
              c:identifier="asc_compose_get_media_baseurl"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="407">Get the media base URL to be used for the generated data,
or %NULL if no media is cached.</doc>
        <source-position filename="compose/asc-compose.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="409">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_result_dir"
              c:identifier="asc_compose_get_media_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="699">Get the media result directory, that can be served on a webserver.</doc>
        <source-position filename="compose/asc-compose.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="701">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_origin"
              c:identifier="asc_compose_get_origin"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="279">Get the metadata origin field.</doc>
        <source-position filename="compose/asc-compose.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="281">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_prefix"
              c:identifier="asc_compose_get_prefix"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="237">Get the directory prefix used for processing.</doc>
        <source-position filename="compose/asc-compose.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="239">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_results"
              c:identifier="asc_compose_get_results"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="981">Get the results of the last processing run.</doc>
        <source-position filename="compose/asc-compose.h" line="216"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="987">The results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Result"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="983">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_errors"
              c:identifier="asc_compose_has_errors"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="1032">Check if the last run generated any errors (which will cause metadata to be ignored).</doc>
        <source-position filename="compose/asc-compose.h" line="218"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="1038">%TRUE if we had errors.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="1034">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_custom_allowed"
              c:identifier="asc_compose_remove_custom_allowed"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="777">Remove a key from the allowlist used to filter the `&lt;custom/&gt;` tag entries.</doc>
        <source-position filename="compose/asc-compose.h" line="194"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="779">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="780">the custom key to drop from the allowed list.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_flags"
              c:identifier="asc_compose_remove_flags"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="498">Remove compose flags.</doc>
        <source-position filename="compose/asc-compose.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="500">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="501">The compose flags to remove.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="asc_compose_reset" version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="161">Drop the results, the registered units and the allowed component-ID list of
the last run, so the instance can be reused for another metadata generation
run. Everything else - flags, result directories, icon policy, media
instance, locale unit, allowed custom keys and the callbacks - is retained.</doc>
        <source-position filename="compose/asc-compose.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="163">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run"
              c:identifier="asc_compose_run"
              version="0.14.5"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2593">Process the registered units and generate catalog metadata from
found components.</doc>
        <source-position filename="compose/asc-compose.h" line="220"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="2602">The results, or %NULL on error</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Result"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2595">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2596">a #GCancellable.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cainfo"
              c:identifier="asc_compose_set_cainfo"
              version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="599">Set a CA file holding one or more certificates to verify peers with
for download operations performed by this #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="601">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="cainfo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="602">a valid file path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_check_metadata_early_func"
              c:identifier="asc_compose_set_check_metadata_early_func"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="863">Set an custom callback to be run when most of the metadata has been loaded,
but no expensive operations (like downloads or icon rendering) have been done yet.
This can be used to ignore unwanted components early on.

The callback function may be called from any thread, so it needs to ensure thread safety on its own.

Any previously set callback is replaced, and its user data released using the
destroy function it was registered with.</doc>
        <source-position filename="compose/asc-compose.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="865">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="866">the #AscCheckMetadataEarlyFn function to be called</doc>
            <type name="CheckMetadataEarlyFn"
                  c:type="AscCheckMetadataEarlyFn"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="867">user data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="udata_free_func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="868">function to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data_result_dir"
              c:identifier="asc_compose_set_data_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="638">Set an output location where generated metadata should be saved.
If this is set to %NULL, no metadata will be saved.</doc>
        <source-position filename="compose/asc-compose.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="640">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="641">the metadata save location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_desktop_entry_l10n_func"
              c:identifier="asc_compose_set_desktop_entry_l10n_func"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="899">Set a custom desktop-entry field localization functions to be run for specialized
desktop-entry localization schemes such as used in Ubuntu.

The callback function may be called from any thread, so it needs to ensure thread safety on its own.

Any previously set callback is replaced, and its user data released using the
destroy function it was registered with.</doc>
        <source-position filename="compose/asc-compose.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="901">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="902">the #AscTranslateDesktopTextFn function to be called</doc>
            <type name="TranslateDesktopTextFn"
                  c:type="AscTranslateDesktopTextFn"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="903">user data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="udata_free_func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="904">function to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="asc_compose_set_flags"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="461">Set compose flags bitfield that controls the enabled features
for this #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="463">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="464">The compose flags bitfield.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_format"
              c:identifier="asc_compose_set_format"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="346">Set the format kind of the catalog metadata that we should generate.</doc>
        <source-position filename="compose/asc-compose.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="348">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="349">The format, e.g. %AS_FORMAT_KIND_XML</doc>
            <type name="AppStream.FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hints_result_dir"
              c:identifier="asc_compose_set_hints_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="755">Set an output location for HTML reports of issues generated
during a compose run.</doc>
        <source-position filename="compose/asc-compose.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="757">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="758">the hints data directory.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_policy"
              c:identifier="asc_compose_set_icon_policy"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="536">Set an icon policy object, overriding the existing one.</doc>
        <source-position filename="compose/asc-compose.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="538">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="539">an #AscIconPolicy instance</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icons_result_dir"
              c:identifier="asc_compose_set_icons_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="677">Set an output location where plain icons for the processed metadata
are stored.</doc>
        <source-position filename="compose/asc-compose.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="679">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="680">the icon storage location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_image_format"
              c:identifier="asc_compose_set_image_format"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="383">Set the file format that generated icons and screenshots should be stored in.
We only support %ASC_IMAGE_FORMAT_JXL (the default) and %ASC_IMAGE_FORMAT_PNG
here, any other format is rejected.

Please note that JPEG-XL images can not be read by older AppStream clients,
so PNG may be selected for backwards compatibility.</doc>
        <source-position filename="compose/asc-compose.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="385">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="386">The image format, e.g. %ASC_IMAGE_FORMAT_JXL</doc>
            <type name="ImageFormat" c:type="AscImageFormat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_locale_unit"
              c:identifier="asc_compose_set_locale_unit"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="953">Set a specific unit that is used for fetching locale information.
This may be useful in case a special language pack layout is used,
but is generally not necessary to be set explicitly, as locale
will be found in the unit where the metadata is by default.

Do not forget to open the locale unit, before running compose
actions with it!</doc>
        <source-position filename="compose/asc-compose.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="955">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="locale_unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="956">the unit used for locale processing.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_screenshot_size"
              c:identifier="asc_compose_set_max_screenshot_size"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="843">Set the maximum size a screenshot video or image can have.
A size &lt; 0 may be set to allow unlimited sizes, setting a limit of 0
will disable screenshot caching entirely.</doc>
        <source-position filename="compose/asc-compose.h" line="200"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="845">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="size_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="846">maximum size of a screenshot image or video in bytes</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media"
              c:identifier="asc_compose_set_media"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="556">Set a media processing interface to use for every unit that this compose
object processes (otherwise it will create a fresh one per unit/thread that it uses).
This allows a caller that wants to use an #AscMedia itself or that composes
many units in sequence to amortize the cost of starting a second media worker.

An #AscMedia instance must never be used by more than one thread, so while
a media object is set, #AscCompose will always process its units
sequentially, ignoring %ASC_COMPOSE_FLAG_USE_THREADS. Pass %NULL to restore
the default behavior of using one media instance per unit.</doc>
        <source-position filename="compose/asc-compose.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="558">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="media"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="559">an #AscMedia instance, or %NULL</doc>
            <type name="Media" c:type="AscMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_baseurl"
              c:identifier="asc_compose_set_media_baseurl"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="425">Set the media base URL for the generated metadata. Can be %NULL if no media
should be cached and the original URLs should be kept.</doc>
        <source-position filename="compose/asc-compose.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="427">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="url"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="428">the media base URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_result_dir"
              c:identifier="asc_compose_set_media_result_dir"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="716">Set an output location to store media (screenshots, icons, ...) that
will be served on a webserver via the URL set as media baseurl.</doc>
        <source-position filename="compose/asc-compose.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="718">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="719">the media storage location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin"
              c:identifier="asc_compose_set_origin"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="296">Set the metadata origin field (e.g. "debian" or "flathub")</doc>
        <source-position filename="compose/asc-compose.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="298">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="origin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="299">the origin.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prefix"
              c:identifier="asc_compose_set_prefix"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="254">Set the directory prefix the to-be-processed units are using.</doc>
        <source-position filename="compose/asc-compose.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="256">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="257">a directory prefix, e.g. "/usr"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ComposeClass"
            c:type="AscComposeClass"
            glib:is-gtype-struct-for="Compose">
      <source-position filename="compose/asc-compose.h" line="46"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-compose.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-compose.h" line="43"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-compose.h" line="44"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-compose.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ComposeError"
                 version="0.13.0"
                 glib:type-name="AscComposeError"
                 glib:get-type="asc_compose_error_get_type"
                 c:type="AscComposeError"
                 glib:error-domain="AscComposeError">
      <doc xml:space="preserve"
           filename="compose/asc-globals.h"
           line="31">A metadata composition error.</doc>
      <member name="failed"
              value="0"
              c:identifier="ASC_COMPOSE_ERROR_FAILED"
              glib:nick="failed"
              glib:name="ASC_COMPOSE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="compose/asc-globals.h"
             line="33">Generic failure.</doc>
      </member>
      <function name="quark"
                c:identifier="asc_compose_error_quark"
                version="0.13.0">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="92">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="ComposeFlags"
              version="0.14.5"
              glib:type-name="AscComposeFlags"
              glib:get-type="asc_compose_flags_get_type"
              c:type="AscComposeFlags">
      <doc xml:space="preserve"
           filename="compose/asc-compose.h"
           line="48">Flags that affect the compose process.</doc>
      <member name="none"
              value="0"
              c:identifier="ASC_COMPOSE_FLAG_NONE"
              glib:nick="none"
              glib:name="ASC_COMPOSE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="50">No flags.</doc>
      </member>
      <member name="use_threads"
              value="1"
              c:identifier="ASC_COMPOSE_FLAG_USE_THREADS"
              glib:nick="use-threads"
              glib:name="ASC_COMPOSE_FLAG_USE_THREADS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="51">Process units in parallel. Ignored if an #AscMedia was set via asc_compose_set_media().</doc>
      </member>
      <member name="allow_net"
              value="2"
              c:identifier="ASC_COMPOSE_FLAG_ALLOW_NET"
              glib:nick="allow-net"
              glib:name="ASC_COMPOSE_FLAG_ALLOW_NET">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="52">Allow network access for downloading extra data.</doc>
      </member>
      <member name="validate"
              value="4"
              c:identifier="ASC_COMPOSE_FLAG_VALIDATE"
              glib:nick="validate"
              glib:name="ASC_COMPOSE_FLAG_VALIDATE">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="53">Validate metadata while processing.</doc>
      </member>
      <member name="store_screenshots"
              value="8"
              c:identifier="ASC_COMPOSE_FLAG_STORE_SCREENSHOTS"
              glib:nick="store-screenshots"
              glib:name="ASC_COMPOSE_FLAG_STORE_SCREENSHOTS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="54">Whether screenshots should be cached in the media directory.</doc>
      </member>
      <member name="allow_videos"
              value="16"
              c:identifier="ASC_COMPOSE_FLAG_ALLOW_VIDEOS"
              glib:nick="allow-videos"
              glib:name="ASC_COMPOSE_FLAG_ALLOW_VIDEOS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="55">Handle &amp; store video screenshots (they will be removed without this flag)</doc>
      </member>
      <member name="process_fonts"
              value="32"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_FONTS"
              glib:nick="process-fonts"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_FONTS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="56">Set if font components should be processed.</doc>
      </member>
      <member name="process_translations"
              value="64"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_TRANSLATIONS"
              glib:nick="process-translations"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_TRANSLATIONS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="57">Automatically extract component translation status.</doc>
      </member>
      <member name="ignore_icons"
              value="128"
              c:identifier="ASC_COMPOSE_FLAG_IGNORE_ICONS"
              glib:nick="ignore-icons"
              glib:name="ASC_COMPOSE_FLAG_IGNORE_ICONS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="58">Any icon information is completely ignored. Useful for later manual icon processing.</doc>
      </member>
      <member name="process_unpaired_desktop"
              value="256"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_UNPAIRED_DESKTOP"
              glib:nick="process-unpaired-desktop"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_UNPAIRED_DESKTOP">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="59">Process desktop-entry files that do not have a corresponding metainfo file.</doc>
      </member>
      <member name="propagate_custom"
              value="512"
              c:identifier="ASC_COMPOSE_FLAG_PROPAGATE_CUSTOM"
              glib:nick="propagate-custom"
              glib:name="ASC_COMPOSE_FLAG_PROPAGATE_CUSTOM">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="60">Whether all custom entries should be passed on to the output, ignoring the allowlist.</doc>
      </member>
      <member name="propagate_artifacts"
              value="1024"
              c:identifier="ASC_COMPOSE_FLAG_PROPAGATE_ARTIFACTS"
              glib:nick="propagate-artifacts"
              glib:name="ASC_COMPOSE_FLAG_PROPAGATE_ARTIFACTS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="61">Whether artifact data should be passed through to the generated output.</doc>
      </member>
      <member name="no_final_check"
              value="2048"
              c:identifier="ASC_COMPOSE_FLAG_NO_FINAL_CHECK"
              glib:nick="no-final-check"
              glib:name="ASC_COMPOSE_FLAG_NO_FINAL_CHECK">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="62">Disable the automatic finalization check to perform it manually at a later time.</doc>
      </member>
      <member name="no_partial_urls"
              value="4096"
              c:identifier="ASC_COMPOSE_FLAG_NO_PARTIAL_URLS"
              glib:nick="no-partial-urls"
              glib:name="ASC_COMPOSE_FLAG_NO_PARTIAL_URLS">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="63">Do not use `media_baseurl` and always embed complete URLs in generated metadata.</doc>
      </member>
    </bitfield>
    <class name="DirectoryUnit"
           c:symbol-prefix="directory_unit"
           c:type="AscDirectoryUnit"
           parent="Unit"
           glib:type-name="AscDirectoryUnit"
           glib:get-type="asc_directory_unit_get_type"
           glib:type-struct="DirectoryUnitClass">
      <source-position filename="compose/asc-directory-unit.h" line="42"/>
      <constructor name="new"
                   c:identifier="asc_directory_unit_new"
                   version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-directory-unit.c"
             line="665">Creates a new #AscDirectoryUnit.</doc>
        <source-position filename="compose/asc-directory-unit.h" line="44"/>
        <return-value transfer-ownership="full">
          <type name="DirectoryUnit" c:type="AscDirectoryUnit*"/>
        </return-value>
        <parameters>
          <parameter name="root_dir" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_root"
              c:identifier="asc_directory_unit_get_root"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-directory-unit.c"
             line="629">Get the root directory path for this unit.</doc>
        <source-position filename="compose/asc-directory-unit.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dirunit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-directory-unit.c"
                 line="631">an #AscDirectoryUnit instance.</doc>
            <type name="DirectoryUnit" c:type="AscDirectoryUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Unit" c:type="AscUnit"/>
      </field>
    </class>
    <record name="DirectoryUnitClass"
            c:type="AscDirectoryUnitClass"
            glib:is-gtype-struct-for="DirectoryUnit">
      <source-position filename="compose/asc-directory-unit.h" line="42"/>
      <field name="parent_class">
        <type name="UnitClass" c:type="AscUnitClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-directory-unit.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-directory-unit.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-directory-unit.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-directory-unit.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="Hint"
           c:symbol-prefix="hint"
           c:type="AscHint"
           parent="GObject.Object"
           glib:type-name="AscHint"
           glib:get-type="asc_hint_get_type"
           glib:type-struct="HintClass">
      <source-position filename="compose/asc-hint.h" line="41"/>
      <constructor name="new_for_tag"
                   c:identifier="asc_hint_new_for_tag"
                   version="0.14.0"
                   throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="507">Creates a new #AscHint with the given tag. If the selected tag was not registered+
with the global tag registry, %NULL is returned and an error is set.</doc>
        <source-position filename="compose/asc-hint.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Hint" c:type="AscHint*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="509">The tag ID to construct this hint for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_explanation_var"
              c:identifier="asc_hint_add_explanation_var"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="214">Add a replacement variable for the explanation text.</doc>
        <source-position filename="compose/asc-hint.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="216">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
          <parameter name="var_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="217">Name of the variable to be replaced.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="218">Replacement for the variable name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_explanation"
              c:identifier="asc_hint_format_explanation"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="450">Formats the explanation template to return a human-readable issue hint explanation,
with all placeholder variables replaced.

Explanation templates contain markup, so the result of this function is a snippet of
HTML, ready to be embedded into a generated report.

Use %asc_hint_format_explanation_plain if you need text to display without HTML
markup.</doc>
        <source-position filename="compose/asc-hint.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="463">Explanation text for this hint as HTML.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="452">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="format_explanation_plain"
              c:identifier="asc_hint_format_explanation_plain"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="473">Formats the explanation template like %asc_hint_format_explanation does, but resolves
all markup of the template into plain text: emphasis is dropped, code spans are marked
the way Markdown does, line breaks become actual line breaks, links are reduced to
their text followed by the URL they point to, and escaped characters are unescaped.</doc>
        <source-position filename="compose/asc-hint.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="482">Explanation text for this hint as plain text.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="475">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_explanation_template"
              c:identifier="asc_hint_get_explanation_template"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="143">Gets the explanation template for this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="145">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_explanation_vars_list"
              c:identifier="asc_hint_get_explanation_vars_list"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="246">Returns a list with the flattened key/value pairs for this hint.
Values are located in uneven list entries, following their keys in even list entries.</doc>
        <source-position filename="compose/asc-hint.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="253">A flattened #GPtrArray with the key/value pairs.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="248">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_severity"
              c:identifier="asc_hint_get_severity"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="109">Gets the issue severity of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="111">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tag" c:identifier="asc_hint_get_tag" version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="74">Gets the unique tag for the type of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="76">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_error"
              c:identifier="asc_hint_is_error"
              version="0.13.0">
        <source-position filename="compose/asc-hint.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="181">%TRUE if this hint describes an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="179">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid"
              c:identifier="asc_hint_is_valid"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="194">Check if this hint is valid (it requires at least a tag and a severity
in order to be considered valid).</doc>
        <source-position filename="compose/asc-hint.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="201">%TRUE if this hint is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="196">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="HintClass"
            c:type="AscHintClass"
            glib:is-gtype-struct-for="Hint">
      <source-position filename="compose/asc-hint.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-hint.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-hint.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-hint.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-hint.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="IconPolicy"
           c:symbol-prefix="icon_policy"
           c:type="AscIconPolicy"
           parent="GObject.Object"
           glib:type-name="AscIconPolicy"
           glib:get-type="asc_icon_policy_get_type"
           glib:type-struct="IconPolicyClass">
      <source-position filename="compose/asc-icon-policy.h" line="41"/>
      <constructor name="new"
                   c:identifier="asc_icon_policy_new"
                   version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="429">Creates a new #AscIconPolicy.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="76"/>
        <return-value transfer-ownership="full">
          <type name="IconPolicy" c:type="AscIconPolicy*"/>
        </return-value>
      </constructor>
      <method name="from_string"
              c:identifier="asc_icon_policy_from_string"
              version="1.0.2"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="332">Loads the icon policy from a textual representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="334">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
          <parameter name="serialized_policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="335">A policy string as returned by %asc_icon_policy_to_string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_policy"
              c:identifier="asc_icon_policy_set_policy"
              version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="165">Sets a designated state for an icon of the given size.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="167">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
          <parameter name="icon_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="168">the size of the icon to set policy for (e.g. 64 for 64x64px icons)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="icon_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="169">the icon scale factor, e.g. 1</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="170">the designated #AscIconState</doc>
            <type name="IconState" c:type="AscIconState"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="asc_icon_policy_to_string"
              version="1.0.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="289">Converts the current icon policy into a textual representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="295">The icon policy serialized into a string. Free with g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="291">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="IconPolicyClass"
            c:type="AscIconPolicyClass"
            glib:is-gtype-struct-for="IconPolicy">
      <source-position filename="compose/asc-icon-policy.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-icon-policy.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-icon-policy.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-icon-policy.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-icon-policy.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="IconPolicyIter" c:type="AscIconPolicyIter" version="0.15.2">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="40">A #AscIconPolicyIter structure represents an iterator that can be used
to iterate over the icon sizes / policy entries of an #AscIconPolicy.
#AscIconPolicyIter structures are typically allocated on the stack and
then initialized with asc_icon_policy_iter_init().</doc>
      <source-position filename="compose/asc-icon-policy.h" line="51"/>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy5" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy6" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="init"
              c:identifier="asc_icon_policy_iter_init"
              version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="211">Initializes a policy iterator for the policy entry list and associates it
it with @ipolicy.
The #AscIconPolicyIter structure is typically allocated on the stack
and does not need to be freed explicitly.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="213">an uninitialized #AscIconPolicyIter</doc>
            <type name="IconPolicyIter" c:type="AscIconPolicyIter*"/>
          </instance-parameter>
          <parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="214">an #AscIconPolicy</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next"
              c:identifier="asc_icon_policy_iter_next"
              version="0.15.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="235">Returns the current icon policy entry and advances the iterator.
Example:
|[&lt;!-- language="C" --&gt;
AscIconPolicyIter iter;
guint icon_size;
guint icon_scale;
AscIconState istate;

asc_icon_policy_iter_init (&amp;iter, ipolicy);
while (asc_icon_policy_iter_next (&amp;iter, &amp;icon_size, &amp;icon_scale, &amp;istate)) {
    // do something with the icon entry data
}
]|</doc>
        <source-position filename="compose/asc-icon-policy.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="256">%FALSE if the last entry has been reached.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="237">an initialized #AscIconPolicyIter</doc>
            <type name="IconPolicyIter" c:type="AscIconPolicyIter*"/>
          </instance-parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="238">Destination of the returned icon size</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="scale"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="239">Destination of the returned icon scale factor</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="state"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="240">Destination of the returned designated icon state.</doc>
            <type name="IconState" c:type="AscIconState*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="IconState"
                 version="0.15.2"
                 glib:type-name="AscIconState"
                 glib:get-type="asc_icon_state_get_type"
                 c:type="AscIconState">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.h"
           line="53">Designated state for an icon of a given size.</doc>
      <member name="ignored"
              value="0"
              c:identifier="ASC_ICON_STATE_IGNORED"
              glib:nick="ignored"
              glib:name="ASC_ICON_STATE_IGNORED">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="55">Ignore icons of this size.</doc>
      </member>
      <member name="cached_remote"
              value="1"
              c:identifier="ASC_ICON_STATE_CACHED_REMOTE"
              glib:nick="cached-remote"
              glib:name="ASC_ICON_STATE_CACHED_REMOTE">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="56">Create cache for the icon, and provide remote link as well.</doc>
      </member>
      <member name="cached_only"
              value="2"
              c:identifier="ASC_ICON_STATE_CACHED_ONLY"
              glib:nick="cached-only"
              glib:name="ASC_ICON_STATE_CACHED_ONLY">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="57">Set if the icon should be stored in an icon tarball and be cached locally.</doc>
      </member>
      <member name="remote_only"
              value="3"
              c:identifier="ASC_ICON_STATE_REMOTE_ONLY"
              glib:nick="remote-only"
              glib:name="ASC_ICON_STATE_REMOTE_ONLY">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="58">Set if this icon should be stored remotely and fetched on demand.</doc>
      </member>
      <function name="from_string"
                c:identifier="asc_icon_state_from_string"
                version="1.0.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="142">Converts the text representation to an enumerated value.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="148">a #AscIconState</doc>
          <type name="IconState" c:type="AscIconState"/>
        </return-value>
        <parameters>
          <parameter name="state_str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="144">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string"
                c:identifier="asc_icon_state_to_string"
                version="1.0.2">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="119">Converts the enumerated value to an text representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="125">string version of @istate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="istate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="121">the #AscIconState.</doc>
            <type name="IconState" c:type="AscIconState"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <enumeration name="ImageFormat"
                 version="0.14.0"
                 glib:type-name="AscImageFormat"
                 glib:get-type="asc_image_format_get_type"
                 c:type="AscImageFormat">
      <doc xml:space="preserve"
           filename="compose/asc-media.h"
           line="96">File format of an image.

All of these formats can be read, but renditions are only ever written as
%ASC_IMAGE_FORMAT_PNG or %ASC_IMAGE_FORMAT_JXL - the other values are for
classifying input data.</doc>
      <member name="unknown"
              value="0"
              c:identifier="ASC_IMAGE_FORMAT_UNKNOWN"
              glib:nick="unknown"
              glib:name="ASC_IMAGE_FORMAT_UNKNOWN">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="98">Unknown image format.</doc>
      </member>
      <member name="png"
              value="1"
              c:identifier="ASC_IMAGE_FORMAT_PNG"
              glib:nick="png"
              glib:name="ASC_IMAGE_FORMAT_PNG">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="99">PNG format</doc>
      </member>
      <member name="jxl"
              value="2"
              c:identifier="ASC_IMAGE_FORMAT_JXL"
              glib:nick="jxl"
              glib:name="ASC_IMAGE_FORMAT_JXL">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="100">JPEG-XL format</doc>
      </member>
      <member name="svg"
              value="3"
              c:identifier="ASC_IMAGE_FORMAT_SVG"
              glib:nick="svg"
              glib:name="ASC_IMAGE_FORMAT_SVG">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="101">SVG format</doc>
      </member>
      <member name="svgz"
              value="4"
              c:identifier="ASC_IMAGE_FORMAT_SVGZ"
              glib:nick="svgz"
              glib:name="ASC_IMAGE_FORMAT_SVGZ">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="102">Compressed SVG format</doc>
      </member>
      <member name="avif"
              value="5"
              c:identifier="ASC_IMAGE_FORMAT_AVIF"
              glib:nick="avif"
              glib:name="ASC_IMAGE_FORMAT_AVIF">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="103">AVIF format</doc>
      </member>
      <member name="webp"
              value="6"
              c:identifier="ASC_IMAGE_FORMAT_WEBP"
              glib:nick="webp"
              glib:name="ASC_IMAGE_FORMAT_WEBP">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="104">WebP format</doc>
      </member>
      <member name="jpeg"
              value="7"
              c:identifier="ASC_IMAGE_FORMAT_JPEG"
              glib:nick="jpeg"
              glib:name="ASC_IMAGE_FORMAT_JPEG">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="105">JPEG format</doc>
      </member>
      <member name="gif"
              value="8"
              c:identifier="ASC_IMAGE_FORMAT_GIF"
              glib:nick="gif"
              glib:name="ASC_IMAGE_FORMAT_GIF">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="106">GIF format</doc>
      </member>
      <function name="from_filename"
                c:identifier="asc_image_format_from_filename"
                version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="197">Returns the image format type based on the given file's filename.</doc>
        <source-position filename="compose/asc-media.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="203">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </return-value>
        <parameters>
          <parameter name="fname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="199">the filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="from_string"
                c:identifier="asc_image_format_from_string"
                version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="164">Converts the text representation to an enumerated value.</doc>
        <source-position filename="compose/asc-media.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="170">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="166">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string"
                c:identifier="asc_image_format_to_string"
                version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="131">Converts the enumerated value to an text representation.</doc>
        <source-position filename="compose/asc-media.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="137">string version of @format</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="133">the %AscImageFormat.</doc>
            <type name="ImageFormat" c:type="AscImageFormat"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <bitfield name="ImageSaveFlags"
              version="0.14.0"
              glib:type-name="AscImageSaveFlags"
              glib:get-type="asc_image_save_flags_get_type"
              c:type="AscImageSaveFlags">
      <doc xml:space="preserve"
           filename="compose/asc-media.h"
           line="78">The flags used for saving images.</doc>
      <member name="none"
              value="0"
              c:identifier="ASC_IMAGE_SAVE_FLAG_NONE"
              glib:nick="none"
              glib:name="ASC_IMAGE_SAVE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="80">No special flags set</doc>
      </member>
      <member name="lossless"
              value="1"
              c:identifier="ASC_IMAGE_SAVE_FLAG_LOSSLESS"
              glib:nick="lossless"
              glib:name="ASC_IMAGE_SAVE_FLAG_LOSSLESS">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="81">Encode the image losslessly</doc>
      </member>
      <member name="optimize"
              value="2"
              c:identifier="ASC_IMAGE_SAVE_FLAG_OPTIMIZE"
              glib:nick="optimize"
              glib:name="ASC_IMAGE_SAVE_FLAG_OPTIMIZE">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="82">Optimize generated PNG for size</doc>
      </member>
      <member name="sharpen"
              value="4"
              c:identifier="ASC_IMAGE_SAVE_FLAG_SHARPEN"
              glib:nick="sharpen"
              glib:name="ASC_IMAGE_SAVE_FLAG_SHARPEN">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="83">Sharpen the image to clarify detail</doc>
      </member>
    </bitfield>
    <enumeration name="ImageScaleMode"
                 version="1.2.0"
                 glib:type-name="AscImageScaleMode"
                 glib:get-type="asc_image_scale_mode_get_type"
                 c:type="AscImageScaleMode">
      <doc xml:space="preserve"
           filename="compose/asc-media.h"
           line="56">How an image rendition should be scaled. Every mode preserves the aspect ratio of
the source image - an image is never stretched or cropped to fill a target size.</doc>
      <member name="none"
              value="0"
              c:identifier="ASC_IMAGE_SCALE_MODE_NONE"
              glib:nick="none"
              glib:name="ASC_IMAGE_SCALE_MODE_NONE">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="58">Keep the original (loaded) image size.</doc>
      </member>
      <member name="pad"
              value="1"
              c:identifier="ASC_IMAGE_SCALE_MODE_PAD"
              glib:nick="pad"
              glib:name="ASC_IMAGE_SCALE_MODE_PAD">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="59">Scale to fit the target dimensions and center the
				result on a transparent canvas of exactly that size.</doc>
      </member>
      <member name="fit_width"
              value="2"
              c:identifier="ASC_IMAGE_SCALE_MODE_FIT_WIDTH"
              glib:nick="fit-width"
              glib:name="ASC_IMAGE_SCALE_MODE_FIT_WIDTH">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="61">Scale proportionally to match the target width.</doc>
      </member>
      <member name="fit_height"
              value="3"
              c:identifier="ASC_IMAGE_SCALE_MODE_FIT_HEIGHT"
              glib:nick="fit-height"
              glib:name="ASC_IMAGE_SCALE_MODE_FIT_HEIGHT">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="62">Scale proportionally to match the target height.</doc>
      </member>
    </enumeration>
    <record name="ImageSource"
            c:type="AscImageSource"
            opaque="1"
            version="1.2.0"
            glib:type-name="AscImageSource"
            glib:get-type="asc_image_source_get_type"
            c:symbol-prefix="image_source">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="232">Describes the image a media operation should read, and how it should be
loaded. After the operation has run, it also carries the dimensions the
source image was loaded at.</doc>
      <source-position filename="compose/asc-media.h" line="134"/>
      <constructor name="new"
                   c:identifier="asc_image_source_new"
                   version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="251">Create a new #AscImageSource for the given image data.</doc>
        <source-position filename="compose/asc-media.h" line="139"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="257">an #AscImageSource</doc>
          <type name="ImageSource" c:type="AscImageSource*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="253">The raw image data to process.</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="asc_image_source_copy" version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="292">Create a copy of an #AscImageSource, including any result data
it may already carry.</doc>
        <source-position filename="compose/asc-media.h" line="140"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="299">a new #AscImageSource</doc>
          <type name="ImageSource" c:type="AscImageSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="294">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="asc_image_source_free"
              version="1.2.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="274">Free an #AscImageSource. Bindings must not call this: they own the boxed value and
release it themselves, so freeing it here would free it twice.</doc>
        <source-position filename="compose/asc-media.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="276">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data"
              c:identifier="asc_image_source_get_data"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="319">Get the raw image data this source was created for.</doc>
        <source-position filename="compose/asc-media.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="325">The image data.</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="321">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="asc_image_source_get_height"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="393">Get the height the source image was loaded at. Only valid after the media
operation this source was passed to has completed successfully.</doc>
        <source-position filename="compose/asc-media.h" line="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="400">The source height in pixels, or 0 if it is not known yet.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="395">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_render_size"
              c:identifier="asc_image_source_get_render_size"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="336">Get the size vector graphics are rendered at.</doc>
        <source-position filename="compose/asc-media.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="338">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="339">Destination of the render width.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="340">Destination of the render height.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="asc_image_source_get_width"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="375">Get the width the source image was loaded at. Only valid after the media
operation this source was passed to has completed successfully.</doc>
        <source-position filename="compose/asc-media.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="382">The source width in pixels, or 0 if it is not known yet.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="377">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_render_size"
              c:identifier="asc_image_source_set_render_size"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="356">Set the size vector graphics should be rendered at. This has no effect
on raster images, which are always loaded at their native size.</doc>
        <source-position filename="compose/asc-media.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="358">an #AscImageSource</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="359">Width to render at, or 0 for the native size.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="360">Height to render at, or 0 for the native size.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="ImageTarget"
            c:type="AscImageTarget"
            opaque="1"
            version="1.2.0"
            glib:type-name="AscImageTarget"
            glib:get-type="asc_image_target_get_type"
            c:symbol-prefix="image_target">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="411">Describes one requested output rendition of a media operation, and carries
its result data after the operation was run. Renditions that were skipped
due to one of their source-size conditions are not an error: the operation
still succeeds, and %asc_image_target_get_skipped will return %TRUE.</doc>
      <source-position filename="compose/asc-media.h" line="156"/>
      <constructor name="new"
                   c:identifier="asc_image_target_new"
                   version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="440">Create a new #AscImageTarget. The image format the rendition is stored in
is derived from the file extension of @name.

@name must be a single path segment: it is resolved relative to the output
directory of the media operation, and must not contain any directory
components or refer to a parent directory.</doc>
        <source-position filename="compose/asc-media.h" line="161"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="454">an #AscImageTarget</doc>
          <type name="ImageTarget" c:type="AscImageTarget*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="442">Filename the rendition should be stored as.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="scale_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="443">an #AscImageScaleMode</doc>
            <type name="ImageScaleMode" c:type="AscImageScaleMode"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="444">Target width (used depending on @scale_mode).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="445">Target height (used depending on @scale_mode).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="asc_image_target_copy" version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="491">Create a deep copy of an #AscImageTarget, including any result data
it may already carry.</doc>
        <source-position filename="compose/asc-media.h" line="165"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="498">a new #AscImageTarget</doc>
          <type name="ImageTarget" c:type="AscImageTarget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="493">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="asc_image_target_free"
              version="1.2.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="472">Free an #AscImageTarget. Bindings must not call this: they own the boxed value and
release it themselves, so freeing it here would free it twice.</doc>
        <source-position filename="compose/asc-media.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="474">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_error_message"
              c:identifier="asc_image_target_get_error_message"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="770">Get the error message in case creating this particular rendition failed.
A failed rendition does not fail the media operation as a whole.</doc>
        <source-position filename="compose/asc-media.h" line="196"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="777">The error message, or %NULL if this rendition was fine.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="772">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="asc_image_target_get_height"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="571">Get the requested height of this rendition. Depending on the scale mode,
this may differ from the height the rendition is actually stored at.</doc>
        <source-position filename="compose/asc-media.h" line="172"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="578">The requested height in pixels.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="573">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="asc_image_target_get_name"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="519">Get the filename this rendition is stored as.</doc>
        <source-position filename="compose/asc-media.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="525">The rendition filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="521">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_only_downscale"
              c:identifier="asc_image_target_get_only_downscale"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="622">Get whether this rendition should be skipped rather than
considering to upscale it to the target size(s).</doc>
        <source-position filename="compose/asc-media.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="629">%TRUE if the rendition is never upscaled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="624">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_result_height"
              c:identifier="asc_image_target_get_result_height"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="753">Get the actual height of the stored rendition.</doc>
        <source-position filename="compose/asc-media.h" line="195"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="759">The rendition height in pixels, or 0 if it was not stored.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="755">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_result_width"
              c:identifier="asc_image_target_get_result_width"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="736">Get the actual width of the stored rendition.</doc>
        <source-position filename="compose/asc-media.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="742">The rendition width in pixels, or 0 if it was not stored.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="738">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_save_flags"
              c:identifier="asc_image_target_get_save_flags"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="589">Get the flags used when storing this rendition.</doc>
        <source-position filename="compose/asc-media.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="595">the #AscImageSaveFlags in use.</doc>
          <type name="ImageSaveFlags" c:type="AscImageSaveFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="591">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scale_mode"
              c:identifier="asc_image_target_get_scale_mode"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="536">Get the scaling mode this rendition is created with.</doc>
        <source-position filename="compose/asc-media.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="542">an #AscImageScaleMode</doc>
          <type name="ImageScaleMode" c:type="AscImageScaleMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="538">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_skipped"
              c:identifier="asc_image_target_get_skipped"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="717">Check whether this rendition was skipped because the source image did not
satisfy its source-size conditions. Only valid after the media operation
this target was passed to has completed successfully.</doc>
        <source-position filename="compose/asc-media.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="725">%TRUE if no file was written for this rendition.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="719">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_size_range"
              c:identifier="asc_image_target_get_source_size_range"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="657">Get the source image dimensions this rendition is restricted to.
A value of 0 means that the respective dimension is not limited.</doc>
        <source-position filename="compose/asc-media.h" line="182"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="659">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
          <parameter name="min_width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="660">Destination of the minimum source image width.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="min_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="661">Destination of the minimum source image height.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="max_width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="662">Destination of the maximum source image width.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="max_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="663">Destination of the maximum source image height.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="asc_image_target_get_width"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="553">Get the requested width of this rendition. Depending on the scale mode,
this may differ from the width the rendition is actually stored at.</doc>
        <source-position filename="compose/asc-media.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="560">The requested width in pixels.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="555">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_only_downscale"
              c:identifier="asc_image_target_set_only_downscale"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="640">Set whether this rendition should be skipped in case creating it would
mean upscaling the source image.</doc>
        <source-position filename="compose/asc-media.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="642">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
          <parameter name="only_downscale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="643">%TRUE to never upscale.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_save_flags"
              c:identifier="asc_image_target_set_save_flags"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="606">Set the flags used when storing this rendition.</doc>
        <source-position filename="compose/asc-media.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="608">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="609">the #AscImageSaveFlags to use.</doc>
            <type name="ImageSaveFlags" c:type="AscImageSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source_size_range"
              c:identifier="asc_image_target_set_source_size_range"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="688">Restrict the source images this rendition is created for. If the source
image's dimensions fall outside of the given range, the rendition is
skipped and no file is written for it, while the media operation as a
whole still succeeds.</doc>
        <source-position filename="compose/asc-media.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="690">an #AscImageTarget</doc>
            <type name="ImageTarget" c:type="AscImageTarget*"/>
          </instance-parameter>
          <parameter name="min_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="691">Minimum source image width, or 0 for no limit.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="min_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="692">Minimum source image height, or 0 for no limit.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="max_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="693">Maximum source image width, or 0 for no limit.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="max_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="694">Maximum source image height, or 0 for no limit.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Media"
           c:symbol-prefix="media"
           c:type="AscMedia"
           parent="GObject.Object"
           glib:type-name="AscMedia"
           glib:get-type="asc_media_get_type"
           glib:type-struct="MediaClass">
      <source-position filename="compose/asc-media.h" line="199"/>
      <constructor name="new" c:identifier="asc_media_new" version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="866">Creates a new #AscMedia.</doc>
        <source-position filename="compose/asc-media.h" line="201"/>
        <return-value transfer-ownership="full">
          <type name="Media" c:type="AscMedia*"/>
        </return-value>
      </constructor>
      <method name="ensure_worker"
              c:identifier="asc_media_ensure_worker"
              version="1.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="1372">Ensure a media worker process is running, spawning one if necessary.
This function is called implicitly by all media operations, calling
it explicitly is only useful to make worker startup problems surface
early.</doc>
        <source-position filename="compose/asc-media.h" line="211"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="1383">%TRUE if the worker is running.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="1374">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="1375">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_memory_limit"
              c:identifier="asc_media_get_memory_limit"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="974">Get the address space limit applied to the worker process in MiB,
or 0 if the worker may use as much memory as it wants.</doc>
        <source-position filename="compose/asc-media.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="976">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_request_timeout"
              c:identifier="asc_media_get_request_timeout"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="881">Get the request timeout in seconds.</doc>
        <source-position filename="compose/asc-media.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="883">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process_image"
              c:identifier="asc_media_process_image"
              version="1.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="2035">Load an image (in the media worker process) and store an arbitrary set of
scaled renditions of it in the given output directory. The directory is
created if it does not exist yet.

On success, the dimensions the source image was loaded at are recorded in
@source, and the result fields of all @targets are updated. Individual
renditions may still have failed - this is recorded in their error message
and does not affect the return value of this function.

Cancelling this operation terminates the media worker process, as its
pending reply would otherwise desynchronize the next request. A fresh
worker is spawned automatically for the next operation.</doc>
        <source-position filename="compose/asc-media.h" line="218"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="2057">%TRUE if the image was processed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="2037">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="2038">The #AscImageSource describing the image to process.</doc>
            <type name="ImageSource" c:type="AscImageSource*"/>
          </parameter>
          <parameter name="targets"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="2039">Renditions to generate, or %NULL to just read image info.</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="ImageTarget"/>
            </array>
          </parameter>
          <parameter name="out_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="2040">Directory to store the renditions in, may be %NULL if @targets is empty.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="2041">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_memory_limit"
              c:identifier="asc_media_set_memory_limit"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="992">Limit the amount of memory the worker process may use.
The limit is applied when the next worker process is spawned.</doc>
        <source-position filename="compose/asc-media.h" line="208"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="994">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
          <parameter name="limit_mib" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="995">Address space limit for the worker process in MiB, 0 for no limit.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_request_timeout"
              c:identifier="asc_media_set_request_timeout"
              version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="898">Set the time a single media operation may take before the worker
is assumed to hang and gets killed.</doc>
        <source-position filename="compose/asc-media.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="900">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
          <parameter name="seconds" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="901">New timeout in seconds, 0 for no timeout.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="asc_media_stop" version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="1154">Stop the worker process of this instance, if it is running.
A new worker will be spawned automatically if another media
operation is requested.</doc>
        <source-position filename="compose/asc-media.h" line="214"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="1156">an #AscMedia instance.</doc>
            <type name="Media" c:type="AscMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="MediaClass"
            c:type="AscMediaClass"
            glib:is-gtype-struct-for="Media">
      <source-position filename="compose/asc-media.h" line="199"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="MediaError"
                 version="1.2.0"
                 glib:type-name="AscMediaError"
                 glib:get-type="asc_media_error_get_type"
                 c:type="AscMediaError"
                 glib:error-domain="AscMediaError">
      <doc xml:space="preserve"
           filename="compose/asc-media.h"
           line="31">A media processing error.</doc>
      <member name="failed"
              value="0"
              c:identifier="ASC_MEDIA_ERROR_FAILED"
              glib:nick="failed"
              glib:name="ASC_MEDIA_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="33">Generic failure.</doc>
      </member>
      <member name="dead_worker"
              value="1"
              c:identifier="ASC_MEDIA_ERROR_DEAD_WORKER"
              glib:nick="dead-worker"
              glib:name="ASC_MEDIA_ERROR_DEAD_WORKER">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="34">The media worker process crashed or could not be spawned.</doc>
      </member>
      <member name="timeout"
              value="2"
              c:identifier="ASC_MEDIA_ERROR_TIMEOUT"
              glib:nick="timeout"
              glib:name="ASC_MEDIA_ERROR_TIMEOUT">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="35">A media operation took too long and was aborted.</doc>
      </member>
      <member name="protocol"
              value="3"
              c:identifier="ASC_MEDIA_ERROR_PROTOCOL"
              glib:nick="protocol"
              glib:name="ASC_MEDIA_ERROR_PROTOCOL">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="36">Communication with the media worker was corrupted.</doc>
      </member>
      <member name="unsupported"
              value="4"
              c:identifier="ASC_MEDIA_ERROR_UNSUPPORTED"
              glib:nick="unsupported"
              glib:name="ASC_MEDIA_ERROR_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="compose/asc-media.h"
             line="37">The requested operation or image type was not supported.</doc>
      </member>
      <function name="is_worker_failure"
                c:identifier="asc_media_error_is_worker_failure"
                version="1.2.0">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="110">Check whether the given error indicates that the media worker itself
malfunctioned, as opposed to the processed media simply being broken.
Only the former should be reported to users as a worker problem.</doc>
        <source-position filename="compose/asc-media.h" line="216"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="118">%TRUE if the worker misbehaved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="error"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-media.c"
                 line="112">A #GError returned by a media operation.</doc>
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </function>
      <function name="quark"
                c:identifier="asc_media_error_quark"
                version="1.2.0">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="97">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="Result"
           c:symbol-prefix="result"
           c:type="AscResult"
           parent="GObject.Object"
           glib:type-name="AscResult"
           glib:get-type="asc_result_get_type"
           glib:type-struct="ResultClass">
      <source-position filename="compose/asc-result.h" line="41"/>
      <constructor name="new" c:identifier="asc_result_new" version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="970">Creates a new #AscResult.</doc>
        <source-position filename="compose/asc-result.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Result" c:type="AscResult*"/>
        </return-value>
      </constructor>
      <method name="add_component"
              c:identifier="asc_result_add_component"
              version="0.13.0"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="538">Add component to the results set.</doc>
        <source-position filename="compose/asc-result.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="547">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="540">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="541">The #AsComponent to add.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="542">Source data used to generate the GCID hash, or %NULL if nonexistent.</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_component_with_string"
              c:identifier="asc_result_add_component_with_string"
              version="0.14.0"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="608">Add component to the results set, using string data.</doc>
        <source-position filename="compose/asc-result.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="617">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="610">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="611">The #AsComponent to add.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="612">Source data used to generate the GCID hash, or %NULL if nonexistent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint"
              c:identifier="asc_result_add_hint"
              shadowed-by="add_hint_v"
              version="0.13.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="877">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="887">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="879">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="880">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="881">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="882">First key to add a value for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="883">replacement keys and values for the issue explanation, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_by_cid"
              c:identifier="asc_result_add_hint_by_cid"
              shadowed-by="add_hint_by_cid_v"
              version="0.13.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="815">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="825">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="817">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="818">The component-ID of the affected #AsComponent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="819">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="820">First key to add a value for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="821">replacement keys and values for the issue explanation, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_by_cid_v"
              c:identifier="asc_result_add_hint_by_cid_v"
              shadows="add_hint_by_cid"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="847">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="856">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="849">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="850">The component-ID of the affected #AsComponent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="851">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="kv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="852">List of key-value pairs for replacement variables.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_simple"
              c:identifier="asc_result_add_hint_simple"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="912">Add an issue hint which does not have any variables to replace in its
explanation text for a component.</doc>
        <source-position filename="compose/asc-result.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="921">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="914">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="915">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="916">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_v"
              c:identifier="asc_result_add_hint_v"
              shadows="add_hint"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="937">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="946">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="939">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="940">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="941">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="kv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="942">List of key-value pairs for replacement variables.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="components_count"
              c:identifier="asc_result_components_count"
              version="0.13.0">
        <source-position filename="compose/asc-result.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="115">The amount of components found for this unit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="113">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_component_gcids"
              c:identifier="asc_result_fetch_component_gcids"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="509">Retrieve a list of all global component-IDs that this result knows of.</doc>
        <source-position filename="compose/asc-result.h" line="71"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="515">An array of global component IDs. Free with %g_free</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="511">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_component_ids_with_hints"
              c:identifier="asc_result_fetch_component_ids_with_hints"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="344">Gets list of component-IDs which do have issue hints associated with them.</doc>
        <source-position filename="compose/asc-result.h" line="65"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="350">An array of component-IDs. Free container with %g_free</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="346">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_components"
              c:identifier="asc_result_fetch_components"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="264">Gets all components this #AsResult instance contains.</doc>
        <source-position filename="compose/asc-result.h" line="61"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="270">An array of #AsComponent</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AppStream.Component"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="266">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_hints_all"
              c:identifier="asc_result_fetch_hints_all"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="312">Get a list of all hints for all components that are registered with this result.</doc>
        <source-position filename="compose/asc-result.h" line="64"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="318">An array of #AscHint</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Hint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="314">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="gcid_for_cid"
              c:identifier="asc_result_gcid_for_cid"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="468">Retrieve the global component-ID string for the given component-ID,
as long as component with the given ID is registered with this #AscResult.
Otherwise, %NULL is returned.</doc>
        <source-position filename="compose/asc-result.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="470">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="471">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="gcid_for_component"
              c:identifier="asc_result_gcid_for_component"
              version="0.14.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="488">Retrieve the global component-ID string for the given #AsComponent,
as long as component with the given ID is registered with this #AscResult.</doc>
        <source-position filename="compose/asc-result.h" line="69"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="496">The global component ID, or %NULL if
   @cpt is not registered with this result.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="490">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="491">Component to look for.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bundle_id"
              c:identifier="asc_result_get_bundle_id"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="207">Gets the ID name of the bundle (a package / Flatpak / any entity containing metadata)
that these these results are generated for.</doc>
        <source-position filename="compose/asc-result.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="209">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_kind"
              c:identifier="asc_result_get_bundle_kind"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="173">Gets the bundle kind these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="175">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_component"
              c:identifier="asc_result_get_component"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="244">Gets the component by its component-id-</doc>
        <source-position filename="compose/asc-result.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="251">An #AsComponent</doc>
          <type name="AppStream.Component" c:type="AsComponent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="246">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="247">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hints"
              c:identifier="asc_result_get_hints"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="292">Gets hints for a component with the given component-id.</doc>
        <source-position filename="compose/asc-result.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="299">An array of #AscHint or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Hint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="294">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="295">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_hint"
              c:identifier="asc_result_has_hint"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="698">Test if a hint tag is associated with a given component in this result.</doc>
        <source-position filename="compose/asc-result.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="706">%TRUE if a hint with this tag exists for the selected component.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="700">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="701">the #AsComponent to check</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="702">the hint tag to check for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hints_count"
              c:identifier="asc_result_hints_count"
              version="0.13.0">
        <source-position filename="compose/asc-result.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="132">The amount of hints emitted for this unit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="130">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ignored"
              c:identifier="asc_result_is_ignored"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="152">Check if an #AsComponent was set to be ignored in this result
(usually due to errors).</doc>
        <source-position filename="compose/asc-result.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="160">%TRUE if the component is ignored.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="154">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="155">the component to check for.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_component"
              c:identifier="asc_result_remove_component"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="661">Remove a component from the results set.</doc>
        <source-position filename="compose/asc-result.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="668">%TRUE if the component was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="663">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="664">The #AsComponent to remove.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_component_full"
              c:identifier="asc_result_remove_component_full"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="633">Remove a component from the results set.</doc>
        <source-position filename="compose/asc-result.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="641">%TRUE if the component was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="635">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="636">The #AsComponent to remove.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="remove_gcid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="637">%TRUE if global component ID should be unregistered as well.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_hints_for_cid"
              c:identifier="asc_result_remove_hints_for_cid"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="680">Remove all hints that we have associated with the selected component-ID.</doc>
        <source-position filename="compose/asc-result.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="682">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="683">The component ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_id"
              c:identifier="asc_result_set_bundle_id"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="225">Sets the name of the bundle these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="227">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="228">The new ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_kind"
              c:identifier="asc_result_set_bundle_kind"
              version="0.13.0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="190">Sets the kind of the bundle these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="192">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="unit_ignored"
              c:identifier="asc_result_unit_ignored"
              version="0.13.0">
        <source-position filename="compose/asc-result.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="98">%TRUE if this result means the analyzed unit was ignored entirely.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="96">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ResultClass"
            c:type="AscResultClass"
            glib:is-gtype-struct-for="Result">
      <source-position filename="compose/asc-result.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-result.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-result.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-result.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-result.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TranslateDesktopTextFn"
              c:type="AscTranslateDesktopTextFn"
              version="0.14.2">
      <doc xml:space="preserve"
           filename="compose/asc-compose.h"
           line="110">Function which is called while parsing a desktop-entry file to allow external
translations of string values. This is used in e.g. the Ubuntu distribution.

The return value must contain a list of strings with the locale name in even indices,
and the text translated to the preceding locale in the following odd indices.</doc>
      <source-position filename="compose/asc-compose.h" line="126"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="122">A new #GPtrArray containing the translation mapping.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="de" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="112">A pointer to the desktop-entry data we are reading.</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="113">The string to translate.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="114">Additional data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Unit"
           c:symbol-prefix="unit"
           c:type="AscUnit"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="AscUnit"
           glib:get-type="asc_unit_get_type"
           glib:type-struct="UnitClass">
      <source-position filename="compose/asc-unit.h" line="54"/>
      <virtual-method name="close" invoker="close" version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="296">Close this unit, possibly freeing its resources. Calls to read_data() or
get_contents() may not produce results until open() is called again.</doc>
        <source-position filename="compose/asc-unit.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="298">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="dir_exists" invoker="dir_exists" version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="347">Returns %TRUE if the directory exists and files in it are readable.</doc>
        <source-position filename="compose/asc-unit.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="349">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="dirname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="350">The directory name to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="file_exists"
                      invoker="file_exists"
                      version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="316">Returns %TRUE if the filename exists and is readable using %asc_unit_read_data.</doc>
        <source-position filename="compose/asc-unit.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="318">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="319">The filename to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open" invoker="open" version="0.14.5" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="275">Open this unit, populating its content listing.</doc>
        <source-position filename="compose/asc-unit.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="277">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read_data"
                      invoker="read_data"
                      version="0.14.5"
                      throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="367">Read the contents of the selected file into memory and return them.</doc>
        <source-position filename="compose/asc-unit.h" line="45"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="369">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="370">The file to read data for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_relevant_path"
              c:identifier="asc_unit_add_relevant_path"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="249">Add a path to the list of relevant directories.
A unit may only read data in paths that were previously
registered as relevant.</doc>
        <source-position filename="compose/asc-unit.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="251">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="252">path to be considered relevant</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="asc_unit_close" version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="296">Close this unit, possibly freeing its resources. Calls to read_data() or
get_contents() may not produce results until open() is called again.</doc>
        <source-position filename="compose/asc-unit.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="298">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dir_exists"
              c:identifier="asc_unit_dir_exists"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="347">Returns %TRUE if the directory exists and files in it are readable.</doc>
        <source-position filename="compose/asc-unit.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="349">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="dirname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="350">The directory name to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_exists"
              c:identifier="asc_unit_file_exists"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="316">Returns %TRUE if the filename exists and is readable using %asc_unit_read_data.</doc>
        <source-position filename="compose/asc-unit.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="318">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="319">The filename to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bundle_id"
              c:identifier="asc_unit_get_bundle_id"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="112">Gets the ID name of the bundle (a package / Flatpak / any entity containing metadata)
that this unit represents.</doc>
        <source-position filename="compose/asc-unit.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="114">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_id_fs_safe"
              c:identifier="asc_unit_get_bundle_id_fs_safe"
              version="0.15.1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="130">Gets the ID name of the bundle, normalized to be safe to use
in filenames. This may *not* be the same name as set via
asc_unit_set_bundle_id().</doc>
        <source-position filename="compose/asc-unit.h" line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="compose/asc-unit.c"
               line="138">The sanitized bundle ID, or %NULL if
   no bundle ID was set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="132">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_kind"
              c:identifier="asc_unit_get_bundle_kind"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="78">Gets the bundle kind of this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="80">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contents"
              c:identifier="asc_unit_get_contents"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="189">Get a list of all files contained by this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-unit.c"
               line="195">A file listing</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="191">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_relevant_paths"
              c:identifier="asc_unit_get_relevant_paths"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="230">Get a list of paths that are relevant for data processing.</doc>
        <source-position filename="compose/asc-unit.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-unit.c"
               line="236">A list of paths</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="232">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open"
              c:identifier="asc_unit_open"
              version="0.14.5"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="275">Open this unit, populating its content listing.</doc>
        <source-position filename="compose/asc-unit.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="277">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read_data"
              c:identifier="asc_unit_read_data"
              version="0.14.5"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="367">Read the contents of the selected file into memory and return them.</doc>
        <source-position filename="compose/asc-unit.h" line="81"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="369">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="370">The file to read data for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_id"
              c:identifier="asc_unit_set_bundle_id"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="152">Sets the ID of the bundle represented by this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="154">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="155">The new ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_kind"
              c:identifier="asc_unit_set_bundle_kind"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="95">Sets the kind of the bundle this unit represents.</doc>
        <source-position filename="compose/asc-unit.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="97">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contents"
              c:identifier="asc_unit_set_contents"
              version="0.14.5">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="208">Set list of files this unit contains.</doc>
        <source-position filename="compose/asc-unit.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="210">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="211">A list of files contained by this unit.</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="UnitClass"
            c:type="AscUnitClass"
            glib:is-gtype-struct-for="Unit">
      <source-position filename="compose/asc-unit.h" line="54"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="open">
        <callback name="open" throws="1">
          <source-position filename="compose/asc-unit.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="277">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close">
        <callback name="close">
          <source-position filename="compose/asc-unit.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="298">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="file_exists">
        <callback name="file_exists">
          <source-position filename="compose/asc-unit.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="318">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="319">The filename to check.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dir_exists">
        <callback name="dir_exists">
          <source-position filename="compose/asc-unit.h" line="43"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="349">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="dirname" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="350">The directory name to check.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read_data">
        <callback name="read_data" throws="1">
          <source-position filename="compose/asc-unit.h" line="45"/>
          <return-value transfer-ownership="full">
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="369">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="370">The file to read data for.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-unit.h" line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-unit.h" line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-unit.h" line="52"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-unit.h" line="53"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <docsection name="asc-globals">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="21">These settings are global to the process, and are shared by every #AscCompose
and #AscMedia instance in it. They are not synchronized against concurrent
write access, so an application has to apply its configuration before it starts
composing metadata, and must not change it while a compose run is in progress.</doc>
    </docsection>
    <docsection name="asc-media">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="21">#AscMedia provides all high-level media processing operations that
appstream-compose needs (processing images, extracting font metadata,
rendering font specimens, probing videos).

The actual media processing is performed by a separate worker process,
so parsing of untrusted media data is isolated.
Input data is passed to the worker exclusively via sealed memory file
descriptors, and every result is written into a descriptor that we opened
for it beforehand, so the worker never resolves a filesystem path and needs
no write access of its own at all - it can be sandboxed tightly.

We can not know in advance which renditions the worker will actually
produce, as it decides that from the source image it alone has parsed. So we
hand it one throwaway output file per candidate rendition and only give the
ones it used their final name afterwards, which also makes publishing a
result atomic.

An #AscMedia instance manages the lifecycle of exactly one worker process,
which is spawned lazily on first use and respawned (up to a limit) in case
it crashes. Instances must not be shared between threads - each thread
processing media must use its own #AscMedia instance.</doc>
    </docsection>
    <docsection name="asc-media-ipc">
      <doc xml:space="preserve"
           filename="compose/asc-media-ipc.c"
           line="21">Messages are GVariants sent as single datagrams over a SOCK_SEQPACKET Unix
socket pair. Bulk data (images, fonts, videos) is passed exclusively via
sealed memfds attached with SCM_RIGHTS; each rendered result is written into
a writable file descriptor that the client attached to the request.</doc>
    </docsection>
    <docsection name="asc-unit">
      <doc xml:space="preserve"
           filename="compose/asc-unit.c"
           line="21">#AscUnit is an abstract base class. See #AscDirectoryUnit
for a unit that reads its data from a directory tree.</doc>
    </docsection>
    <function name="build_component_global_id"
              c:identifier="asc_build_component_global_id"
              version="0.13.0"
              throws="1">
      <doc xml:space="preserve"
           filename="compose/asc-utils.c"
           line="66">Builds a global component ID from a component-id
and a checksum (usually Blake3) generated from the component data.

The global-id is used as a global, unique identifier for a component.
(while the component-ID is local, e.g. for one source).
Its primary usecase is to identify a media directory on the filesystem which is
associated with this component.

Since the result is used to construct filesystem paths, this function will refuse
to build a global ID unless every segment it is made of - the pieces of the
component-ID as well as @checksum - is safe to use as a directory name. The error
that is set in that case names the offending piece, and is meant to be shown to
whoever wrote the metadata.</doc>
      <source-position filename="compose/asc-utils.h" line="31"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="compose/asc-utils.c"
             line="86">The new global ID, or %NULL on error.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="component_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="68">an AppStream component ID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="checksum" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="69">a checksum as string generated from the component's combined metadata.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="component_get_source_icon"
              c:identifier="asc_component_get_source_icon"
              version="1.2.0">
      <doc xml:space="preserve"
           filename="compose/asc-utils.c"
           line="256">Find the unprocessed icon that a component was created with, that is the
icon reference that came straight from its metainfo or desktop-entry file.
A stock icon is preferred, but a local one is accepted as well to
accommodate for applications that used the "local" icon type wrong.

This is the icon that appstream-compose renders its icon set from. If
%ASC_COMPOSE_FLAG_IGNORE_ICONS is set, it is left on the component
untouched, so that the caller can run its own icon processing on it.</doc>
      <source-position filename="compose/asc-utils.h" line="37"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="compose/asc-utils.c"
             line="269">The source #AsIcon, or %NULL if the
   component has none.</doc>
        <type name="AppStream.Icon" c:type="AsIcon*"/>
      </return-value>
      <parameters>
        <parameter name="cpt" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="258">an #AsComponent instance.</doc>
          <type name="AppStream.Component" c:type="AsComponent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="compose_error_quark"
              c:identifier="asc_compose_error_quark"
              moved-to="ComposeError.quark"
              version="0.13.0">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="92">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="compute_content_checksum_for_data"
              c:identifier="asc_compute_content_checksum_for_data"
              version="1.1.3">
      <doc xml:space="preserve"
           filename="compose/asc-utils.c"
           line="166">Compute a checksum for the given content.

The output of this function is intended to be used with %asc_build_component_global_id
to form a unique global ID. The generated checksum is intended to be used as content-ID.
Do not assume it is cryptographically secure or has a certain length!</doc>
      <source-position filename="compose/asc-utils.h" line="34"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="compose/asc-utils.c"
             line="177">The hash as hexadecimal string. Free with %g_free</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="168">The data to hash.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="169">Length of @data.</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_add_hint_tag"
              c:identifier="asc_globals_add_hint_tag"
              version="0.14.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="544">Register a new hint tag. If a previous tag with the given name
already existed, the existing tag will not be replaced unless
@override_existing is set to %TRUE.
Please be careful when overriding tags! Tag severities can not
be lowered by overriding a tag.</doc>
      <source-position filename="compose/asc-globals.h" line="60"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="557">%TRUE if the tag was registered and did not exist previously.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="546">the tag-ID to add</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="severity" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="547">the tag severity as #AsIssueSeverity</doc>
          <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
        </parameter>
        <parameter name="explanation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="548">the tag explanatory message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="override_existing" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="549">whether an existing tag should be replaced</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_fetch_hint_tags"
              c:identifier="asc_globals_fetch_hint_tags"
              version="0.14.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="612">Retrieve all hint tags that we know.</doc>
      <source-position filename="compose/asc-globals.h" line="64"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="617">A list of valid hint tags. Free with %g_strfreev</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="globals_get_ffprobe_binary"
              c:identifier="asc_globals_get_ffprobe_binary"
              version="0.14.6">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="411">Get path to the "ffprobe" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="57"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="416">The binary path, or %NULL if ffprobe was
   not found. The string is owned by the global state and is valid until the
   setting is changed, which is prohibited once composing metadata has started.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_optipng_binary"
              c:identifier="asc_globals_get_optipng_binary"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="368">Get path to the "optipng" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="54"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="373">The binary path, or %NULL if optipng was
   not found. The string is owned by the global state and is valid until the
   setting is changed, which is prohibited once composing metadata has
   started.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_tmp_dir"
              c:identifier="asc_globals_get_tmp_dir"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="286">Get temporary directory used by appstream-compose.</doc>
      <source-position filename="compose/asc-globals.h" line="48"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="291">The temporary directory. The string is owned by the
   global state and is valid until the setting is changed, which is prohibited
   once composing metadata has started.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_use_optipng"
              c:identifier="asc_globals_get_use_optipng"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="326">Get whether images should be optimized using optipng.</doc>
      <source-position filename="compose/asc-globals.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="331">%TRUE if optipng should be used.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="globals_hint_tag_exists"
              c:identifier="asc_globals_hint_tag_exists"
              version="1.2.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="643">Check whether a hint tag with the given name is registered.</doc>
      <source-position filename="compose/asc-globals.h" line="65"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="649">%TRUE if the tag is known.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="645">A hint tag name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_hint_tag_explanation"
              c:identifier="asc_globals_hint_tag_explanation"
              version="0.14.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="678">Retrieve the explanation template of the given hint tag.</doc>
      <source-position filename="compose/asc-globals.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="683">An explanation template, or %NULL if the tag was not found.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_hint_tag_severity"
              c:identifier="asc_globals_hint_tag_severity"
              version="0.14.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="659">Retrieve the severity of the given hint tag.</doc>
      <source-position filename="compose/asc-globals.h" line="66"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="664">An #AsIssueSeverity or %AS_ISSUE_SEVERITY_UNKNOWN if the tag did not exist
         or has an unknown severity.</doc>
        <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_ffprobe_binary"
              c:identifier="asc_globals_set_ffprobe_binary"
              version="0.14.6">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="429">Set path to the "ffprobe" binary we should use.

This has to be done before composing metadata starts. Once work has
begun, changing any global setting is forbidden.</doc>
      <source-position filename="compose/asc-globals.h" line="58"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="431">the "ffprobe" binary path, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_optipng_binary"
              c:identifier="asc_globals_set_optipng_binary"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="387">Set path to the "optipng" binary we should use.

This has to be done before composing metadata starts. Once work has
begun, changing any global setting is forbidden.</doc>
      <source-position filename="compose/asc-globals.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="389">the "optipng" binary path, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_tmp_dir"
              c:identifier="asc_globals_set_tmp_dir"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="304">Set temporary directory used by appstream-compose.

This has to be done before composing metadata starts. Once work has
begun, changing any global setting is forbidden.</doc>
      <source-position filename="compose/asc-globals.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="306">the new temporary directory.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_use_optipng"
              c:identifier="asc_globals_set_use_optipng"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="342">Set whether images should be optimized using optipng.

This has to be done before composing metadata starts. Once work has
begun, changing any global setting is forbidden.</doc>
      <source-position filename="compose/asc-globals.h" line="52"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="enabled" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="344">%TRUE to optimize images with optipng.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_state_from_string"
              c:identifier="asc_icon_state_from_string"
              moved-to="IconState.from_string"
              version="1.0.2">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="142">Converts the text representation to an enumerated value.</doc>
      <source-position filename="compose/asc-icon-policy.h" line="74"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="148">a #AscIconState</doc>
        <type name="IconState" c:type="AscIconState"/>
      </return-value>
      <parameters>
        <parameter name="state_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="144">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_state_to_string"
              c:identifier="asc_icon_state_to_string"
              moved-to="IconState.to_string"
              version="1.0.2">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="119">Converts the enumerated value to an text representation.</doc>
      <source-position filename="compose/asc-icon-policy.h" line="73"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="125">string version of @istate</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="istate" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="121">the #AscIconState.</doc>
          <type name="IconState" c:type="AscIconState"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_format_from_filename"
              c:identifier="asc_image_format_from_filename"
              moved-to="ImageFormat.from_filename"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="197">Returns the image format type based on the given file's filename.</doc>
      <source-position filename="compose/asc-media.h" line="132"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="203">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
        <type name="ImageFormat" c:type="AscImageFormat"/>
      </return-value>
      <parameters>
        <parameter name="fname" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="199">the filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_format_from_string"
              c:identifier="asc_image_format_from_string"
              moved-to="ImageFormat.from_string"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="164">Converts the text representation to an enumerated value.</doc>
      <source-position filename="compose/asc-media.h" line="131"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="170">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
        <type name="ImageFormat" c:type="AscImageFormat"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="166">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_format_to_string"
              c:identifier="asc_image_format_to_string"
              moved-to="ImageFormat.to_string"
              version="0.13.0">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="131">Converts the enumerated value to an text representation.</doc>
      <source-position filename="compose/asc-media.h" line="130"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="137">string version of @format</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="133">the %AscImageFormat.</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_error_is_worker_failure"
              c:identifier="asc_media_error_is_worker_failure"
              moved-to="MediaError.is_worker_failure"
              version="1.2.0">
      <doc xml:space="preserve"
           filename="compose/asc-media.c"
           line="110">Check whether the given error indicates that the media worker itself
malfunctioned, as opposed to the processed media simply being broken.
Only the former should be reported to users as a worker problem.</doc>
      <source-position filename="compose/asc-media.h" line="216"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="118">%TRUE if the worker misbehaved.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="compose/asc-media.c"
               line="112">A #GError returned by a media operation.</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_error_quark"
              c:identifier="asc_media_error_quark"
              moved-to="MediaError.quark"
              version="1.2.0">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-media.c"
             line="97">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
