Hello, On 7 January 2016 at 03:38, Cedric BAIL <cedric.b...@free.fr> wrote: > > > [...] > > Edje_Common.h > > edje_size_class_list ( ) >
I'm not a fan of this. It's just like text_class and color_class, so fine, but I think an iterator would have been better. Consistency is important, though. > > edje_mmap_size_class_iterator_new ( Eina_File* f ) > > edje_mmap_text_class_iterator_new ( Eina_File* f ) > > edje_size_class_active_iterator_new ( ) > > edje_text_class_active_iterator_new ( ) > OK, so those APIs are in fact useless right now. They return an iterator to a private struct: Edje_Size_Class or Edje_Text_Class. A few solutions: - Make those structs public and STABLE - Keep them opaque but add APIs to inspect them (eg. edje_size_class_iterator_item_name_get() , edje_size_class_iterator_item_del() ...) - Remove these APIs (they return a different set than the class_list functions) Also, what about EO and bindings here? What do you guys think? All those APIs need test cases btw. > > Edje_Legacy.h > > edje_object_size_class_del ( Evas_Object* obj, char const* size_class ) > > edje_object_text_class_del ( Evas_Object* obj, char const* text_class ) > > I am fine with all the above one. > Are those necessary? Adding legacy APIs for new things. No EO equivalent? > eina_value.h > > eina_value_optional_empty_is ( Eina_Value const* value, Eina_Bool* > > is_empty ) > > eina_value_optional_empty_new ( ) > > eina_value_optional_type_get ( Eina_Value* value )> > eina_value_optional_new ( Eina_Value_Type const* subtype, void const* > > value ) > > eina_value_optional_pget ( Eina_Value* value, void* subvalue ) > > eina_value_optional_pset ( Eina_Value* value, Eina_Value_Type const* > > subtype, void const* subvalue ) > > eina_value_optional_reset ( Eina_Value* value ) > > EINA_VALUE_TYPE_OPTIONAL [data] > So those optional values are really just values that may be unset? I'm not sure why a normal eina_value can't just have the empty property, and have a void type that stores nothing. Did I miss something? > > eina_matrix.h > > eina_matrix2_array_set ( Eina_Matrix2* m, double const* v ) > > eina_matrix2_copy ( Eina_Matrix2* dst, Eina_Matrix2 const* src ) > > eina_matrix2_identity ( Eina_Matrix2* m ) > > eina_matrix2_inverse ( Eina_Matrix2* out, Eina_Matrix2 const* mat ) > > eina_matrix2_multiply ( Eina_Matrix2* out, Eina_Matrix2 const* mat_a, > > Eina_Matrix2 const* mat_b ) > > eina_matrix2_multiply_copy ( Eina_Matrix2* out, Eina_Matrix2 const* > > mat_a, Eina_Matrix2 const* mat_b ) > > eina_matrix2_type_get ( Eina_Matrix2 const* m ) > > eina_matrix2_values_get ( Eina_Matrix2 const* m, double* xx, double* xy, > > double* yx, double* yy ) > > eina_matrix2_values_set ( Eina_Matrix2* m, double xx, double xy, double > > yx, double yy ) > > eina_matrix3_array_set ( Eina_Matrix3* m, double const* v ) > > eina_matrix3_copy ( Eina_Matrix3* dst, Eina_Matrix3 const* src ) > > eina_matrix3_multiply ( Eina_Matrix3* out, Eina_Matrix3 const* mat_a, > > Eina_Matrix3 const* mat_b ) > > eina_matrix3_multiply_copy ( Eina_Matrix3* out, Eina_Matrix3 const* > > mat_a, Eina_Matrix3 const* mat_b ) > > eina_matrix3_position_transform_set ( Eina_Matrix3* out, double const > > p_x, double const p_y ) > > eina_matrix3_scale_transform_set ( Eina_Matrix3* out, double s_x, double > > s_y ) > > eina_matrix4_array_set ( Eina_Matrix4* m, double const* v ) > > eina_matrix4_copy ( Eina_Matrix4* dst, Eina_Matrix4 const* src ) > > eina_matrix4_multiply_copy ( Eina_Matrix4* out, Eina_Matrix4 const* > > mat_a, Eina_Matrix4 const* mat_b ) > > eina_matrix4_ortho_set ( Eina_Matrix4* m, double left, double right, > > double bottom, double top, double dnear, double dfar ) > > eina_normal3_matrix_get ( Eina_Matrix3* out, Eina_Matrix4 const* m ) > > > > eina_quaternion.h > > eina_quaternion_angle_plains ( Eina_Quaternion* a, Eina_Quaternion* b ) > > eina_quaternion_array_set ( Eina_Quaternion* dst, double const* v ) > > eina_quaternion_copy ( Eina_Quaternion* dst, Eina_Quaternion const* src ) > > eina_quaternion_distance_get ( Eina_Quaternion const* a, Eina_Quaternion > > const* b ) > > eina_quaternion_distance_square_get ( Eina_Quaternion const* a, > > Eina_Quaternion const* b ) > > eina_quaternion_homogeneous_regulate ( Eina_Quaternion* out, > > Eina_Quaternion const* v ) > > eina_quaternion_inverse ( Eina_Quaternion* out, Eina_Quaternion const* q > ) > > eina_quaternion_length_get ( Eina_Quaternion const* v ) > > eina_quaternion_length_square_get ( Eina_Quaternion const* v ) > > eina_quaternion_subtract ( Eina_Quaternion* out, Eina_Quaternion const* > > a, Eina_Quaternion const* b ) > > eina_quaternion_transform ( Eina_Quaternion* out, Eina_Quaternion const* > > v, Eina_Matrix4 const* m ) > > I am fine with all the above eina change. > Do they need to be EAPI? Why not static inline? (I know some of them are quite big, though) > > > eina_str.h > > eina_str_base64_decode ( char const* src, int* decoded_str_len ) > > eina_str_base64_encode ( unsigned char const* src, unsigned int len ) > > eina_str_base64url_decode ( char const* src, int* decoded_str_len ) > > eina_str_base64url_encode ( unsigned char const* src, unsigned int len ) > > eina_strftime ( char const* format, struct tm const* tm ) > > I have been wondering for some time if we shouldn't move this base64 > function in their own header/namespace. It would be easier to find ? > Any though about that ? > Why not. Or maybe in emile? :) > > eina_strbuf.h > > eina_strbuf_substr_get ( Eina_Strbuf* buf, size_t pos, size_t len ) > > eina_strbuf_tolower ( Eina_Strbuf* buf ) > > > > eina_tmpstr.h > > eina_tmpstr_manage_new ( char* str ) > > eina_tmpstr_manage_new_length ( char* str, size_t length ) > > > > eina_unicode.h > > eina_unicode_unicode_to_utf8_range ( Eina_Unicode const* uni, int ulen, > > int* _len ) > > > > > > eina_vector.h > > eina_vector2_add ( Eina_Vector2* out, Eina_Vector2 const* a, > > Eina_Vector2 const* b ) > > eina_vector2_array_set ( Eina_Vector2* dst, double const* v ) > > eina_vector2_copy ( Eina_Vector2* dst, Eina_Vector2 const* src ) > > eina_vector2_distance_get ( Eina_Vector2 const* a, Eina_Vector2 const* b > ) > > eina_vector2_distance_square_get ( Eina_Vector2 const* a, Eina_Vector2 > > const* b ) > > eina_vector2_dot_product ( Eina_Vector2 const* a, Eina_Vector2 const* b ) > > eina_vector2_homogeneous_direction_transform ( Eina_Vector2* out, > > Eina_Matrix3 const* m, Eina_Vector2 const* v ) > > eina_vector2_homogeneous_position_transform ( Eina_Vector2* out, > > Eina_Matrix3 const* m, Eina_Vector2 const* v ) > > eina_vector2_length_get ( Eina_Vector2 const* v ) > > eina_vector2_length_square_get ( Eina_Vector2 const* v ) > > eina_vector2_negate ( Eina_Vector2* out, Eina_Vector2 const* v ) > > eina_vector2_normalize ( Eina_Vector2* out, Eina_Vector2 const* v ) > > eina_vector2_scale ( Eina_Vector2* out, Eina_Vector2 const* v, double > > scale ) > > eina_vector2_set ( Eina_Vector2* dst, double x, double y ) > > eina_vector2_subtract ( Eina_Vector2* out, Eina_Vector2 const* a, > > Eina_Vector2 const* b ) > > eina_vector2_transform ( Eina_Vector2* out, Eina_Matrix2 const* m, > > Eina_Vector2 const* v ) > > Fine with all the above eina function. > They need test cases. -- Jean-Philippe André ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel