Hello Gerel.

   I've just started adapting the run length filter.
   So the initialization function would be as follows,
   ##
   pdf_status_t pdf_stm_f_rl_init (pdf_hash_t params, pdf_hash_t state);
   ###

Note that now we are using a void pointer for the internal state.

   Now, suppose that I want to use that filter in 'decode mode'. So the params
   argument should have a "mode" -> pdf_stm_f_rl_mode_t (enum). The question is,
   should I add that parameter to the state hash ? I think I shouldn't since the
   params is also given to the apply function anyways, and it's not
   'state'.

You want to write _two_ different filters: a RunLength Encoding filter
and a RunLength Decoding filter.

Of course the best option would be to have a lot of generic code
working for both cases, but each filter should provide the init/apply
pair.

   OTOH, regarding,
   ##
   pdf_status_t
   pdf_text_new_from_host (const pdf_char_t *str,
                           const pdf_size_t size,
                           const pdf_text_host_encoding_t enc,
                           pdf_text_t *text);
   ###

   Do we need to give the host encoding as argument ? I thought that
   the function itself would get it doing
   "pdf_text_get_host_encoding()". Am I wrong ?

Just use pdf_text_get_host_encoding() as the third parameter. See
'pdf-fsys-disk.c' to find some examples of its use.



Reply via email to