Author: fanningpj
Date: Thu Sep 14 14:56:01 2023
New Revision: 1912315

URL: http://svn.apache.org/viewvc?rev=1912315&view=rev
Log:
[bug-67005] XSLFPictureShape - audio-related methods. Thanks to Max

Added:
    poi/trunk/test-data/slideshow/EmbeddedAudio.pptx
Modified:
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java
    poi/trunk/src/resources/ooxml-lite-report.clazz
    poi/trunk/src/resources/ooxml-lite-report.xsb

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java?rev=1912315&r1=1912314&r2=1912315&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
 Thu Sep 14 14:56:01 2023
@@ -469,6 +469,27 @@ public class XSLFPictureShape extends XS
         return null;
     }
 
+    private CTApplicationNonVisualDrawingProps 
getCTApplicationNonVisualDrawing() {
+        CTPictureNonVisual nvPicPr = getCTPictureNonVisual();
+        return nvPicPr == null ? null : nvPicPr.getNvPr();
+    }
+
+    /**
+     * @return boolean; true if the picture is an audio
+     */
+    public boolean isAudioFile() {
+        CTApplicationNonVisualDrawingProps nvPr = 
getCTApplicationNonVisualDrawing();
+        return nvPr != null && nvPr.isSetAudioFile();
+    }
+
+    /**
+     * @return the link ID for the audio file
+     */
+    public String getAudioFileLink() {
+        CTApplicationNonVisualDrawingProps nvPr = 
getCTApplicationNonVisualDrawing();
+        return nvPr != null && nvPr.isSetAudioFile() ? 
nvPr.getAudioFile().getLink() : null;
+    }
+
     private CTPictureNonVisual getCTPictureNonVisual() {
         XmlObject xmlObject = getXmlObject();
         if (xmlObject instanceof CTPicture) {
@@ -477,4 +498,4 @@ public class XSLFPictureShape extends XS
         }
         return null;
     }
-}
\ No newline at end of file
+}

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java?rev=1912315&r1=1912314&r2=1912315&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java
 Thu Sep 14 14:56:01 2023
@@ -359,4 +359,24 @@ class TestXSLFPictureShape {
             assertEquals(ps.getVideoFileLink(), "rId2");
         }
     }
+
+    @Test
+    void testIsSetAudioFile() throws IOException {
+        try (XMLSlideShow ppt = openSampleDocument("EmbeddedAudio.pptx")) {
+            XSLFSlide slide = ppt.getSlides().get(0);
+            XSLFPictureShape ps = (XSLFPictureShape) slide.getShapes().get(0);
+
+            assertTrue(ps.isAudioFile());
+        }
+    }
+
+    @Test
+    void testGetAudioLink() throws IOException {
+        try (XMLSlideShow ppt = openSampleDocument("EmbeddedAudio.pptx")) {
+            XSLFSlide slide = ppt.getSlides().get(0);
+            XSLFPictureShape ps = (XSLFPictureShape) slide.getShapes().get(0);
+
+            assertEquals(ps.getAudioFileLink(), "rId2");
+        }
+    }
 }
\ No newline at end of file

Modified: poi/trunk/src/resources/ooxml-lite-report.clazz
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/resources/ooxml-lite-report.clazz?rev=1912315&r1=1912314&r2=1912315&view=diff
==============================================================================
--- poi/trunk/src/resources/ooxml-lite-report.clazz (original)
+++ poi/trunk/src/resources/ooxml-lite-report.clazz Thu Sep 14 14:56:01 2023
@@ -2525,3 +2525,5 @@ org/openxmlformats/schemas/drawingml/x20
 org/openxmlformats/schemas/drawingml/x2006/main/CTPositiveFixedAngle
 org/openxmlformats/schemas/drawingml/x2006/chart/impl/STAxisUnitImpl
 org/openxmlformats/schemas/drawingml/x2006/chart/STAxisUnit
+org/openxmlformats/schemas/drawingml/x2006/main/impl/CTAudioFileImpl
+org/openxmlformats/schemas/drawingml/x2006/main/CTAudioFile

Modified: poi/trunk/src/resources/ooxml-lite-report.xsb
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/resources/ooxml-lite-report.xsb?rev=1912315&r1=1912314&r2=1912315&view=diff
==============================================================================
--- poi/trunk/src/resources/ooxml-lite-report.xsb (original)
+++ poi/trunk/src/resources/ooxml-lite-report.xsb Thu Sep 14 14:56:01 2023
@@ -1175,3 +1175,4 @@ ctdlblpos9ce4type
 stdlblpos1cf4type
 staxisunit6cc7type
 chartelement2
+ctaudiofile1563type

Added: poi/trunk/test-data/slideshow/EmbeddedAudio.pptx
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/EmbeddedAudio.pptx?rev=1912315&view=auto
==============================================================================
Binary files poi/trunk/test-data/slideshow/EmbeddedAudio.pptx (added) and 
poi/trunk/test-data/slideshow/EmbeddedAudio.pptx Thu Sep 14 14:56:01 2023 differ



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org

Reply via email to