<?xml version="1.0"?>
<typesystem>
    
    <rejection class="Phonon::ObjectDescriptionData" />
    <rejection class="Phonon::ObjectDescriptionModelData" />
    <rejection class="Phonon::MediaNodeDestructionHandler" />
    <rejection class="Phonon::GlobalConfig" />
    <rejection class="Phonon::IODeviceStream" />
    <rejection class="Phonon::Factory" />
    <rejection class="Phonon::Experimental" />
    <rejection class="Phonon::ObjectDescriptionModel" />
    <rejection class="AudioOutputAdaptor" />    
    <rejection class="*" field-name="k_ptr" />
    
    <namespace-type name="Phonon" />
    <namespace-type name="Phonon::BackendCapabilities" java-name="BackendCapabilities" />

    <!-- ### causes moc-related linker error -->
    <!-- <object-type name="Phonon::BackendCapabilities::Notifier" java-name="Notifier" /> -->
    
    <enum-type name="Phonon::Category">
        <reject-enum-value name="LastCategory" />
    </enum-type>
    <enum-type name="Phonon::DiscType" />
    <enum-type name="Phonon::ErrorType" />
    <enum-type name="Phonon::MetaData" />
    <enum-type name="Phonon::ObjectDescriptionType" />
    <enum-type name="Phonon::State" />
    
    <enum-type name="Phonon::AddonInterface::AngleCommand" />
    <enum-type name="Phonon::AddonInterface::ChapterCommand" />
    <enum-type name="Phonon::AddonInterface::Interface" />
    <enum-type name="Phonon::AddonInterface::NavigationCommand" />
    <enum-type name="Phonon::AddonInterface::TitleCommand" />
    <enum-type name="Phonon::BackendInterface::Class" />
    <enum-type name="Phonon::EffectParameter::Hint" flags="Phonon::EffectParameter::Hints" />
    <enum-type name="Phonon::MediaController::Feature" flags="Phonon::MediaController::Features" />
    <enum-type name="Phonon::MediaSource::Type" />
    <enum-type name="Phonon::VideoWidget::AspectRatio" />
    <enum-type name="Phonon::VideoWidget::ScaleMode" />
    <enum-type name="Phonon::VolumeFaderEffect::FadeCurve" />                         

    <interface-type name="Phonon::AbstractVideoOutput" java-name="AbstractVideoOutput" />
    <interface-type name="Phonon::AddonInterface" java-name="AbstractAddon" />
    <interface-type name="Phonon::AudioOutputInterface" java-name="AudioOutputInterface" />
    <interface-type name="Phonon::BackendInterface" java-name="AbstractBackend" />
    <interface-type name="Phonon::EffectInterface" java-name="AbstractEffect" />
    <interface-type name="Phonon::MediaNode" java-name="MediaNode" />
    
    <interface-type name="Phonon::MediaObjectInterface" java-name="AbstractMediaObject" />
    <interface-type name="Phonon::PlatformPlugin" java-name="PlatformPlugin" />
    <interface-type name="Phonon::StreamInterface" java-name="AbstractStream" />
    <interface-type name="Phonon::VideoWidgetInterface" java-name="AbstractVideoWidget" />
    <interface-type name="Phonon::VolumeFaderInterface" java-name="AbstractVolumeFader" />

    <value-type name="Phonon::EffectParameter" java-name="EffectParameter">
        <modify-function signature="EffectParameter()" remove="all" /> <!-- internal -->
        <modify-function signature="operator&lt;(const Phonon::EffectParameter &amp;)const" remove="all" /> <!-- internal -->
        <modify-function signature="operator&gt;(const Phonon::EffectParameter &amp;)const" remove="all" /> <!-- internal -->
        <modify-function signature="id()const" remove="all" /> <!-- internal -->
        <modify-function signature="operator=(Phonon::EffectParameter)" remove="all" /> <!-- Covered by copy constructor -->
    </value-type>
    <value-type name="Phonon::MediaSource" java-name="MediaSource">
        <modify-function signature="operator=(Phonon::MediaSource)" remove="all" /> <!-- Covered by copy constructor -->
    </value-type>
    <value-type name="Phonon::Path" java-name="Path">
        <modify-function signature="disconnect()" rename="disconnectPath" />
        <modify-function signature="operator=(Phonon::Path)" remove="all" /> <!-- Covered by copy constructor -->
        <modify-function signature="insertEffect(Phonon::EffectDescription,Phonon::Effect*)">
            <modify-argument index="1">
                <reference-count action="add" variable-name="__rcEffects" />
            </modify-argument>
            <modify-argument index="2">
                <reference-count action="ignore" />
            </modify-argument>
        </modify-function>
        <modify-function signature="insertEffect(Phonon::Effect*,Phonon::Effect*)">
            <modify-argument index="1">
                <reference-count action="add" variable-name="__rcEffects" />
            </modify-argument>
            <modify-argument index="2">
                <reference-count action="ignore" />
            </modify-argument>
        </modify-function>        
        <modify-function signature="removeEffect(Phonon::Effect*)">
            <modify-argument index="1">
                <reference-count action="remove" variable-name="__rcEffects" />
            </modify-argument>
        </modify-function>
    </value-type>
    <value-type name="Phonon::ObjectDescription" generate="no" />
    <value-type name="Phonon::EffectDescription" java-name="EffectDescription" />
    <value-type name="Phonon::AudioOutputDevice" java-name="AudioOutputDevice" />

    <object-type name="Phonon::AbstractAudioOutput" java-name="AbstractAudioOutput" />
    <object-type name="Phonon::AbstractMediaStream" java-name="AbstractMediaStream" />
    <object-type name="Phonon::AudioOutput" java-name="AudioOutput" />
    <object-type name="Phonon::Effect" java-name="Effect" />
    <object-type name="Phonon::EffectWidget" java-name="EffectWidget" />
    <object-type name="Phonon::MediaController" java-name="MediaController" />
    <object-type name="Phonon::MediaObject" java-name="MediaObject">     
        <modify-function signature="enqueue(const QList&lt;QUrl&gt; &amp;)" rename="enqueueUrls" />
        <modify-function signature="setQueue(const QList&lt;QUrl&gt; &amp;)" rename="setQueueToUrls" />
    </object-type>
    <object-type name="Phonon::SeekSlider" java-name="SeekSlider">
        <modify-function signature="setMediaObject(Phonon::MediaObject*)">
            <modify-argument index="1">
                <reference-count action="set" variable-name="__rcMediaObject" />
            </modify-argument>
        </modify-function>
    </object-type>
    <object-type name="Phonon::VideoPlayer" java-name="VideoPlayer" />
    <object-type name="Phonon::VideoWidget" java-name="VideoWidget" />
    <object-type name="Phonon::VolumeFaderEffect" java-name="VolumeFaderEffect" />
    <object-type name="Phonon::VolumeSlider" java-name="VolumeSlider">
        <modify-function signature="setAudioOutput(Phonon::AudioOutput*)">
            <modify-argument index="1">
                <reference-count action="set" variable-name="__rcAudioOutput" />
            </modify-argument>
        </modify-function>
    </object-type>

    <suppress-warning text="WARNING(MetaJavaBuilder) :: Final class 'AbstractAudioOutput' set to non-final, as it is extended by other classes" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'QDBus' does not have a type entry" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: private virtual function 'create(const QString &amp; name)' in 'QTextCodecPlugin'" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: private virtual function 'keys() const' in 'QTextCodecPlugin'" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'MediaSource' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'Path' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'EffectParameter' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'Phonon_ObjectDescription' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'EffectDescription' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'AudioOutputDevice' has equals operators but no qHash() function" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'Phonon::operator&lt;&lt;', unmatched return type 'QDebug'" />
    <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'Phonon::ObjectDescription::ObjectDescription', unmatched parameter type 'QExplicitlySharedDataPointer&lt;ObjectDescriptionData&gt; const&amp;'" />








  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AudioOutputInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.VolumeFaderEffect' for enum 'FadeCurve' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::MediaSource' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::MediaController' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QAbstractXmlForwardIterator' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: enum 'QFormLayout::FormStyle' is specified in typesystem, but not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AbstractAudioOutput' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'DiscType' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AudioOutput' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.VideoWidget' for enum 'AspectRatio' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::Effect' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.MediaSource' for enum 'Type' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VolumeSlider' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::BackendInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::EffectParameter' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VideoWidget' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::StreamInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'ErrorType' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.VideoWidget' for enum 'ScaleMode' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractAddon' for enum 'Interface' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::MediaObjectInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'MetaData' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::Path' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.EffectParameter' for enum 'Hint' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.MediaController' for enum 'Feature' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VideoPlayer' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::MediaObject' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractBackend' for enum 'Class' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractAddon' for enum 'AngleCommand' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractAddon' for enum 'TitleCommand' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VolumeFaderEffect' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AudioOutputDevice' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::ObjectDescription' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::EffectDescription' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VideoWidgetInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::EffectInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'State' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::SeekSlider' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractAddon' for enum 'NavigationCommand' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::MediaNode' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'Category' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'JObjectWrapper' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AbstractMediaStream' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::PlatformPlugin' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AddonInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.Phonon' for enum 'ObjectDescriptionType' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.phonon.AbstractAddon' for enum 'ChapterCommand' is not declared" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::AbstractVideoOutput' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::EffectWidget' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'Phonon::VolumeFaderInterface' is specified in typesystem, but not defined. This could potentially lead to compilation errors." />

  
</typesystem>
