VirtualBox

Changeset 105266 in vbox for trunk/src/VBox/Main/idl


Ignore:
Timestamp:
Jul 11, 2024 7:49:37 AM (6 months ago)
Author:
vboxsync
Message:

Recording: Implemented support for a dedicated progress object, which is exposed to API clients. This can be used for better tracking the recording progress as well as for error reporting. The RecordingSettings API also now has a dedicated start() method to start recording, as well as support for attaching to an already ongoing recording by retrieving the progress object at a later time. Adapted FE/Qt (draft, see @todos), FE/VBoxManage and the Validation Kit testdriver to the new APIs. VBoxManage also can attach to an ongoing recording now. The recording progress object also will have multiple operations to get the recording progress for convenience. bugref:10718

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r105255 r105266  
    316316<application
    317317  name="VirtualBox"
    318   uuid="a89ce63a-c7c9-4380-a62a-ffb9052ddb37"
     318  uuid="61ff179a-5f10-4077-81f4-060beba09dec"
    319319  supportsErrorInfo="yes"
    320320>
     
    486486    <desc>
    487487      Platform architecture is not supported.
     488    </desc>
     489  </result>
     490
     491  <result name="VBOX_E_RECORDING_ERROR" value="0x80BB0013">
     492    <desc>
     493      A recording error has occurred.
    488494    </desc>
    489495  </result>
     
    63706376  <interface
    63716377    name="IRecordingSettings" extends="$unknown"
    6372     uuid="D88F2A5A-47C7-4A3F-AAE1-1B516817DB41"
     6378    uuid="bea3ef5c-de2f-4b74-aa3a-15d6249371a0"
    63736379    wsmap="managed"
    63746380    rest="managed"
     
    63916397    </method>
    63926398
     6399    <method name="start">
     6400      <desc>Starts recording and returns a progress object.</desc>
     6401      <param name="progress" type="IProgress" dir="return">
     6402        <desc>The recording progress object for this VM.</desc>
     6403      </param>
     6404      <result name="E_FAIL">
     6405        Unable to start recording due to recording already being started or not
     6406        available. See error message for more information.
     6407      </result>
     6408    </method>
     6409
    63936410    <attribute name="enabled" type="boolean" default="false">
    63946411      <desc>
    6395         This setting determines whether VirtualBox uses recording to record a
    6396         VM session.</desc>
     6412        This setting determines whether recording is enabled for this VM.
     6413
     6414        Note that this attribute does not actually start or stop recording.
     6415        For starting recording, use <link to="IRecordingSettings::start"/>, for
     6416        stopping, use the the progress object via <link to="IRecordingSettings::progress"/>.
     6417
     6418        If a VM is being started with this setting enabled, recording automatically
     6419        will be started with the currently configured recording settings.
     6420      </desc>
    63976421    </attribute>
    63986422
     
    64016425        This setting returns an array for recording settings of all configured
    64026426        virtual screens.</desc>
     6427    </attribute>
     6428
     6429    <attribute name="progress" type="IProgress" readonly="yes">
     6430      <desc>
     6431        Returns the recording progress object.
     6432
     6433        Cancelling the progress will stop the recording.
     6434
     6435        <result name="E_FAIL">
     6436          Failed to get the recording progress object due to not (yet) started
     6437          recording.
     6438        </result>
     6439      </desc>
    64036440    </attribute>
    64046441
     
    2460424641  <interface
    2460524642    name="IInternalSessionControl" extends="$unknown"
    24606     uuid="5045c372-2e8f-4d9e-ad9d-121ab1661146"
     24643    uuid="739160a6-53ea-465b-bb6b-5326c20a3c0c"
    2460724644    internal="yes"
    2460824645    wsmap="suppress"
     
    2496024997    </method>
    2496124998
    24962     <method name="onRecordingChange">
    24963       <desc>
    24964         Triggered when recording settings have changed.
    24965       </desc>
    24966       <param name="enable" type="boolean" dir="in">
    24967         <desc>TODO</desc>
     24999    <method name="onRecordingStateChange">
     25000      <desc>
     25001        Triggered when a recording state got changed.
     25002      </desc>
     25003      <param name="enabled" type="boolean" dir="in">
     25004        <desc>
     25005          Whether recording was enabled or disabled.
     25006        </desc>
     25007      </param>
     25008      <param name="progress" type="IProgress" dir="out">
     25009        <desc>Progress object.</desc>
     25010      </param>
     25011    </method>
     25012
     25013    <method name="onRecordingScreenStateChange">
     25014      <desc>
     25015        Triggered when a recording screen state got changed.
     25016      </desc>
     25017      <param name="enabled" type="boolean" dir="in">
     25018        <desc>
     25019          Whether recording for that screen was enabled or disabled.
     25020        </desc>
     25021      </param>
     25022      <param name="screen" type="unsigned long" dir="in">
     25023        <desc>
     25024          Number of screen for which the event has happened.
     25025        </desc>
    2496825026      </param>
    2496925027    </method>
     
    2692326981  <enum
    2692426982    name="VBoxEventType"
    26925     uuid="f698ab32-91e4-4379-b99c-174cebecfa5e"
     26983    uuid="0c8f8bd7-c5d8-4085-83c2-558a4025b215"
    2692626984    >
    2692726985
     
    2728227340      </desc>
    2728327341    </const>
    27284     <const name="OnRecordingChanged" value="91">
    27285       <desc>
    27286         See <link to="IRecordingChangedEvent">IRecordingChangeEvent</link>.
     27342    <const name="OnRecordingStateChanged" value="91">
     27343      <desc>
     27344        See <link to="IRecordingStateChangedEvent">IRecordingStateChangeEvent</link>.
    2728727345      </desc>
    2728827346    </const>
     
    2745427512      </desc>
    2745527513    </const>
     27514    <const name="OnRecordingScreenStateChanged" value="125">
     27515      <desc>
     27516        See <link to="IRecordingScreenStateChangedEvent">IRecordingScreenStateChangeEvent</link>.
     27517      </desc>
     27518    </const>
    2745627519    <!-- End event marker -->
    27457     <const name="End" value="125">
     27520    <const name="End" value="126">
    2745827521      <desc>
    2745927522        Must be last event, used for iterations and structures relying on numerical event values.
     
    2900129064
    2900229065  <interface
    29003     name="IRecordingChangedEvent" extends="IEvent"
    29004     uuid="B5DDB370-08A7-4C8F-910D-47AABD67253A"
    29005     wsmap="managed" autogen="VBoxEvent" id="OnRecordingChanged"
     29066    name="IRecordingStateChangedEvent" extends="IEvent"
     29067    uuid="e578bb9c-e88d-416b-bb45-08a4e7a5b463"
     29068    wsmap="managed" autogen="VBoxEvent" id="OnRecordingStateChanged"
    2900629069    >
    2900729070    <desc>
    29008       Notification when recording settings have changed.
    29009     </desc>
    29010     <attribute name="midlDoesNotLikeEmptyInterfaces" readonly="yes" type="boolean"/>
     29071      Notification when the machine's recording state has changed.
     29072    </desc>
     29073    <attribute name="enabled" type="boolean" readonly="yes">
     29074      <desc>
     29075        Whether recording was enabled or disabled.
     29076      </desc>
     29077    </attribute>
     29078    <attribute name="error" type="IVirtualBoxErrorInfo" readonly="yes">
     29079      <desc>
     29080        Error information in case the event is indicating an error.
     29081      </desc>
     29082    </attribute>
     29083  </interface>
     29084
     29085  <interface
     29086    name="IRecordingScreenStateChangedEvent" extends="IRecordingStateChangedEvent"
     29087    uuid="5900472f-cc58-48ac-a088-b571b77f839b"
     29088    wsmap="managed" autogen="VBoxEvent" id="OnRecordingScreenStateChanged"
     29089    >
     29090    <desc>
     29091      Notification when a screen recording state has changed.
     29092    </desc>
     29093    <attribute name="screen" type="unsigned long" readonly="yes">
     29094      <desc>
     29095        Number of screen for which the event has happened.
     29096      </desc>
     29097    </attribute>
    2901129098  </interface>
    2901229099
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette