
    7j
              
       f   d Z ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
 ddlmZ d Zd	 Zd
 Z ej                   dddedd       ej                   dddedd       ej                   ddded       ej                   ddddd       ej"                  d      d                                    Zy) z"Generate rgblight_breathe_table.h
    N)ArgumentTypeError)cli)GPL2_HEADER_C_LIKEGENERATED_HEADER_C_LIKE)
dump_lines)normpathc                 F    t        |       } | dk\  r| dk  r| S t        d      )N   g@z*Breathing center must be between 1 and 2.7)floatr   values    [/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/generate/rgb_breathe_table.pybreathing_centerr      s)    %LEzesl LMM    c                 N    t        |       } | t        dd      v r| S t        d      )Nr      z'Breathing max must be between 0 and 255)intranger   r   s    r   breathing_maxr      s*    JEa IJJr   c           	         dgdz  }t        dd      D ]  }t        t        j                  t        j                  |dz  t        j
                  z              |t        j                  z  z
  |t        j                  dt        j                  z  z
  z  z        ||<    d}t        dd      D ]  }d|z  }|dj                  d|z	        z  }t        dd|      D ]I  }||dz  dk(  rd	ndz  }|d
j                  ||         z  }|||z   dk  rdndz  }|||z   dz  dk(  rdndz  }K |dz  }||dk  rdndz  } dj                  |||      }| j                  |       y )Nr   r      r
       z&#if RGBLIGHT_BREATHE_TABLE_SIZE == {}
   z    z0x{:02X},
 z#endif   z

z#define RGBLIGHT_EFFECT_BREATHE_TABLE

// Breathing center: {0:.2f}
// Breathing max:    {1:d}

const uint8_t PROGMEM rgblight_effect_breathe_table[] = {{
{2}
}};

static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);
)	r   r   mathexpsinpieformatappend)	linescentermaximumbreathe_valuesposvalues_templatessteptable_templates	            r   _generate_tabler/      s   S3YNQ} G"TXXdhhc	TWW7L.M%NQWZ^Z`Z`Q`%`elptpvpvyz  ~B  ~D  ~D  zD  qD  fE  %F  GsG O1a[ 3AvDKKCSTHUUC& 	FCqAv2=Oz001DEEOsTzS&8sb@Od
a'71'<t#EO		F 	8#QU623
 F67O,  
LL r   z-cz--centerTg?z8The breathing center value, from 1 to 2.7. Default: 1.85)arg_onlytypedefaulthelpz-mz--maxr   z8The breathing maximum value, from 0 to 255. Default: 255z-oz--outputzFile to write to)r0   r1   r3   z-qz--quiet
store_truez&Quiet mode, only output error messages)r0   actionr3   z.Generates an RGB Light breathing table header.c                     t         t        ddg}t        || j                  j                  | j                  j
                         t        | j                  j                  || j                  j                         y)znGenerate a rgblight_breathe_table.h file containing a breathing LUT for RGB Lighting (Underglow) feature.
    z#pragma oncez// clang-format offN)	r   r   r/   argsr'   maxr   outputquiet)r   header_liness     r   generate_rgb_breathe_tabler<   ?   sN     '(?QfgLL#((//388<<@ sxxchhnn=r   )__doc__r   argparser   milcr   qmk.constantsr   r   qmk.commandsr   qmk.pathr   r   r   r/   argument
subcommandr<    r   r   <module>rF      s     &  E # NK!D dJ4Dd  ZT  UdGd  SM  NdJHCUVdI\Hpq@A
> B r W N U

>r   