Commit Graph

86 Commits

Author SHA1 Message Date
baldurk dfe07d6822 Update application API to 1.6.0, add capture title setter 2022-11-21 13:49:15 +00:00
baldurk 33ea305efd Show message in connection window for unsupported API capture
* This is helpful when the normal overlay is not available or visible such as in
  VR headsets
2022-08-05 13:03:32 +01:00
Jake Turner f5a2bae23c Set the enable state for Save, Delete actions
Disable the actions when no captures are selected
2022-06-20 10:12:40 +01:00
baldurk dee3c37d90 Fix some edge cases when handling unsaved captures. Closes #2554
* The 'no to all' option should always be present if there are multiple unsaved
  captures across the connections, even if the current connection only has one
  capture and so otherwise wouldn't have a 'no to all' option.
* The 'no to all' option will always discard all unsaved captures in all
  connections when closing the window, if the user clicks no on the confirmation
  of this, abort the close operation entirely and let them decide how to handle
  it (e.g. discarding/saving captures in connections individually).
2022-04-18 17:06:44 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
baldurk e99260ab6c Add a context menu item for renaming captures in connection panel 2022-02-15 17:15:48 +00:00
baldurk 089126c34b Add a new in-app API function ShowReplayUI to raise the UI window
* This is not guaranteed to work, e.g. on windows where for good reason
  background windows can't necessarily raise themselves.
2022-01-12 11:24:22 +00:00
baldurk 3587f8e448 When closing multiple capture connections apply 'No to All' answer wider
* This means if you're closing multiple connections and click 'no to all' when
  prompting save of instead of discarding just the captures in that connection
  then going on to prompt for the next, it discards all remaining captures.
2022-01-12 11:24:22 +00:00
baldurk 2752008d13 Ensure consistency when saving the current capture. Closes #2358
* If we save the current capture from a connection window we want to do that via
  the main window so the UI can be properly updated and so we can save it
  properly through the replay manager, so the old one can be removed safely.
2021-09-14 13:25:02 +01:00
baldurk 1ef790ab80 Update capture connections when an open capture is saved. Closes #2352 2021-08-27 11:33:40 +01:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk e5f4ca7bb8 Remove use of const char * in public API and OS specific where possible
* This prevents unnecessary conversions back and forth between rdcstr and const
  char * when going through interfaces. In the OS specific layer this is rarely
  an issue because most of the implementations don't convert to rdcstr, but it
  is convenient to be able to pass in an rdcstr directly. The few cases where
  there's an unecessary construction of an rdcstr is acceptable.
* A couple of places in the public API need to return a string from a global
  function, so can't return an rdcstr due to C ABI, so they still return a const
  char *.
* Similarly const char * is kept for logging, to avoid a dependency on rdcstr
  and because that's one place where unnecessary conversions/constructions may
  be impactful.
2020-12-07 17:44:50 +00:00
baldurk 381fdbe06b Fix missing format argument in error message 2020-09-17 17:43:28 +01:00
baldurk b2d85982a5 Hide capture progress bar if the application disconnects mid-capture 2020-05-26 16:46:14 +01:00
baldurk 7539533cb9 Populate new child processes immediately in capture connection panel 2020-05-22 22:09:44 +01:00
baldurk 54abdc3d14 Fix racy cross-thread access to target control connection. Closes #1857 2020-04-29 18:48:51 +01:00
baldurk 936e6372cb Remove use of 3rdparty/ prefix from includes
* We instead always have 3rdparty/ in the relevant include search paths and rely
  on that. Each library still has its own unique base dir within 3rdparty to
  clarify where the include is coming from.
2020-03-11 18:00:53 +00:00
baldurk 6579dfc666 Add protection against target control connection dropping immediately 2020-03-05 10:39:36 +00:00
baldurk f7cb742a4c Display capture file size in capture connection window. Closes #1723 2020-02-14 19:31:59 +00:00
baldurk 7dd116abd4 Remove redundant/tautological comparisons identified by PVS Studio 2020-01-21 18:28:56 +00:00
baldurk e9182377e5 NULL out connection handle after shutdown 2020-01-13 16:55:05 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk e302ecfe83 Don't leak target control handle 2019-12-17 15:51:16 +00:00
baldurk 4458ab3205 Remove assumptions that captures are always frames
* Previously we had "Frame X" and "Start of Frame" hardcoded in the event
  browser, and the end of frame was in many cases assumed to be a present call.
  However with the in-application API this is not necessarily true.
* Presents are now serialised separately in all APIs and displayed wherever they
  happen in the frame, and if there is no present at the end of the frame an
  "End of Capture" marker is inserted. Similarly API-defined captures are not
  given a potentially misleading frame number.
2019-11-21 17:09:01 +00:00
baldurk e9dda8343f When deleting temp files, remove from the recent file list. Closes #1540
* If the UI was launched with a filename as a parameter to open the capture, it
  will be added to the recent capture file list. Only later (relatively
  speaking) if we make a capture connection will we realise that it is temporary
  and potentially delete the file. If we do so, remove the capture from the
  recent file list.
2019-10-10 16:48:42 +01:00
baldurk 6203909791 Expose replay options to the UI
* The defaults can be configured from the settings menu, and there's a new "Open
  Capture with Options" menu option to open a capture with different options
  temporarily.
2019-08-27 18:51:56 +01:00
baldurk 20be9f3d52 Add ReplayOptions struct to contain replay-time configuration
* Not currently exposed to the UI or used by the drivers, we just pass the
  default object through
2019-08-27 18:51:56 +01:00
baldurk 06f2e61b8f Refactor RemoteHost to be copyable with shared storage
* This allows RemoteHost handles to still be valid and usable (if returning
  empty data) when they are deleted/removed if the device is disconnected, as
  well as providing better multi-thread access (they lock internally)
2019-07-31 17:51:12 +01:00
baldurk bd36bccd43 Synchronise properly when passing commands to capture connection thread 2019-06-18 15:54:38 +01:00
baldurk fe406b8ce9 Fix capture times not being timezone-adjusted. Closes #1393 2019-05-27 10:56:08 +01:00
baldurk 605f77217d Don't automatically open a single capture if a dialog is open
* Prevents a crash if the LiveCapture window is closed while it owns a popup
  dialog for e.g. saving or deleting a capture.
2019-05-27 10:21:30 +01:00
baldurk 02abe02fe8 Add the option to save all selected captures at once
* The filename selected is used as a base, then -frameXYZ is appended to each
  capture.
2019-02-13 18:50:52 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
tabi.katalin 369d93b99c Cycle active window with button
A new button is added to the UI so that we can cycle the currently active window when there are more windows to capture.  It's like pressing the F11 button but it works on Android too.
2018-10-10 10:19:43 +01:00
baldurk 91ac88d6b5 Add an '(Active)' suffix on active APIs to be clearer about it 2018-10-04 16:07:36 +01:00
baldurk 553a68de19 Add 'No to All' button when closing a capture connection. Closes #1101 2018-09-07 14:22:47 +01:00
baldurk 296050e298 Add copy progress bar for copies over target control connections 2018-09-06 13:17:12 +01:00
baldurk 9b7581011e Add a per-capture API to target control protocol
* This means that if an application uses more than one API, the correct API is
  listed for each capture.
2018-08-13 18:27:26 +01:00
baldurk 7d55ecbc48 Add 'capture frame immediately' button
* This should be more obvious especially on e.g. android where there's no
  overlay and key shortcut.
2018-08-06 16:23:02 +01:00
baldurk 196daacfb4 Don't clear selection when clicking on an item. Closes #1061 2018-08-01 17:29:35 +01:00
baldurk b3bc00738d Don't enumerate window titles when we just need a list of PIDs 2018-05-23 17:28:56 +01:00
baldurk 082ab4d75d GUIInvoke takes a QObject* to avoid callbacks after object lifetime
* The GUIInvoke object takes a QObject, and uses QPointer to check that
  it hasn't been deleted when the callback fires. This prevents delayed
  callbacks from executing after the object has been deleted and
  crashing.
* In most cases the pointer is just 'this'.
2018-05-08 11:54:34 +01:00
Baldur Karlsson 93cebc715c Only show texture viewer when closing live capture if we got a capture 2018-03-13 15:49:31 +00:00
baldurk 7b3e1be030 When auto-opening a single capture, try to raise the texture viewer
* This gives a better 'first impression' when opening a capture than
  falling back to the last panel that is the launch executable panel
  in 95% of cases.
2018-02-24 23:22:22 +00:00
baldurk 8de37336ad Adjust capture connection scrolling to be reasonable on the mouse wheel 2018-02-12 20:47:58 +00:00
baldurk 10649d9af3 Set number of frames to capture with instantaneous trigger. Refs #871 2018-02-12 16:58:05 +00:00
baldurk e20a31d23f Add friendlier error message when overwriting current file. Refs #862
* Only the currently open capture can save over its file, other captures
  cannot overwrite it while it's in use.
2018-02-09 01:32:49 +00:00
baldurk 5150a9531b Allow queuing a sequence of frames both before capture, or while running
* We also make the frame counting consistent: Frame 0 is the frame from
  device initialisation to first present, Frame 1 is from first present
  to second, and so on after that.
2018-01-24 11:38:37 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 0fef1c0a44 Display richer status in capture connection window.
* This includes the capture progress bar that will appear, as well as
  better information about the active API.
2017-12-29 18:30:44 +00:00