o
    Vi                     @   s4   d dl Zd dlmZ ddlmZ G dd deZdS )    N)Optional   )WatermarkerBasec                	   @   sb   e Zd ZdZ		ddejdeej dedejfdd	Z		dd
ejdedee dejfddZ	dS )DummyWatermarkerz
    A dummy watermarker for testing and demonstration purposes.
    
    This watermarker doesn't actually embed or extract real watermarks,
    but serves as a placeholder implementation for testing the framework.
    ND  wav	watermarksample_ratereturnc                 K   s
   | dS )a  
        Simulates applying a watermark by simply rounding the audio signal.
        
        Args:
            wav: Input audio signal as numpy array
            watermark: Ignored in this implementation
            sample_rate: Ignored in this implementation
            **kwargs: Additional ignored parameters
            
        Returns:
            The input audio with minimal modification (rounded to 5 decimal places)
           )round)selfr   r   r	   kwargs r   K/home/ubuntu/.local/lib/python3.10/site-packages/perth/dummy_watermarker.pyapply_watermark   s   
z DummyWatermarker.apply_watermarkwatermarked_wavwatermark_lengthc                 K   s*   |dur|nd}t jjdd|dt jS )a  
        Simulates extracting a watermark by returning random data.
        
        Args:
            watermarked_wav: Watermarked audio signal as numpy array
            sample_rate: Ignored in this implementation
            watermark_length: Length of the dummy watermark to generate
            **kwargs: Additional ignored parameters
            
        Returns:
            A random binary watermark of specified length or default 32 bits
        N    r      )size)nprandomrandintastypefloat32)r   r   r	   r   r   lengthr   r   r   get_watermark   s   zDummyWatermarker.get_watermark)Nr   )r   N)
__name__
__module____qualname____doc__r   ndarrayr   intr   r   r   r   r   r   r      s     
r   )numpyr   typingr   watermarkerr   r   r   r   r   r   <module>   s    