nihed-cros-libva: convert surface query status to enum
[nihav-player.git] / nihed-cros-libva / src / surface.rs
index ddc1f157d3b591bc7091c087baa647fa94f9e9f3..fe1174908439a448627dc5d1d0a8f1ae7f19ca0d 100644 (file)
@@ -111,14 +111,20 @@ impl Surface {
     }
 
     /// Wrapper over `vaQuerySurfaceStatus` to find out any pending ops on the render target.
-    pub fn query_status(&self) -> VAResult<bindings::VASurfaceStatus::Type> {
+    pub fn query_status(&self) -> VAResult<VASurfaceStatus> {
         let mut status: bindings::VASurfaceStatus::Type = 0;
         // Safe because `self` represents a valid VASurface.
         (unsafe {
             bindings::vaQuerySurfaceStatus(self.display.handle(), self.id, &mut status)
         })
         .check()?;
-        Ok(status)
+        match status {
+            bindings::VASurfaceStatus::VASurfaceRendering => Ok(VASurfaceStatus::Rendering),
+            bindings::VASurfaceStatus::VASurfaceDisplaying => Ok(VASurfaceStatus::Displaying),
+            bindings::VASurfaceStatus::VASurfaceReady => Ok(VASurfaceStatus::Ready),
+            bindings::VASurfaceStatus::VASurfaceSkipped => Ok(VASurfaceStatus::Skipped),
+            _ => Err(VAError::Unknown),
+        }
     }
 
     /// Returns the ID of this surface.