cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d2d35a66b49ea80bde0b49f0ae755f1ca562fa05

commit d2d35a66b49ea80bde0b49f0ae755f1ca562fa05
Author: Andrii Kroitor <[email protected]>
Date:   Fri Dec 12 04:33:26 2014 +0100

    edje: Edje_Edit - add API for program actions PLAY_SAMPLE and PLAY_TONE
    
    Summary:
    Added initialisation, deletion, getters and setters for following
    programs fields: sample_name, speed, channel, tone_name, duration.
    
    @feature
    
    Reviewers: cedric, seoz, Hermet
    
    Subscribers: cedric, reutskiy.v.v
    
    Differential Revision: https://phab.enlightenment.org/D1753
    
    Signed-off-by: Cedric BAIL <[email protected]>
---
 src/lib/edje/Edje_Edit.h |  95 ++++++++++++++++++++++++++++++++++++++++
 src/lib/edje/edje_edit.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 206 insertions(+), 1 deletion(-)

diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h
index 35e7e6b..544ea07 100644
--- a/src/lib/edje/Edje_Edit.h
+++ b/src/lib/edje/Edje_Edit.h
@@ -5952,6 +5952,101 @@ EAPI double 
edje_edit_program_transition_time_get(Evas_Object *obj, const char *
  */
 EAPI Eina_Bool edje_edit_program_transition_time_set(Evas_Object *obj, const 
char *prog, double seconds);
 
+/** Get sample name of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ *
+ * @return const char* sample_name on success, NULL otherwise.
+ */
+EAPI const char * edje_edit_program_sample_name_get(Evas_Object *obj, const 
char *prog);
+
+/** Set sample name of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ * @param name The name of the sample.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_program_sample_name_set(Evas_Object *obj, const char 
*prog, const char *name);
+
+/** Get tone name of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ *
+ * @return const char* tone_name on success, NULL otherwise.
+ */
+EAPI const char * edje_edit_program_tone_name_get(Evas_Object *obj, const char 
*prog);
+
+/** Set tone name of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ * @param name The name of the tone.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_program_tone_name_set(Evas_Object *obj, const char 
*prog, const char *name);
+
+/** Get sample speed of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ *
+ * @return double speed on success, -1 otherwise.
+ */
+EAPI double edje_edit_program_sample_speed_get(Evas_Object *obj, const char 
*prog);
+
+/** Set sample speed of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ * @param speed New speed value.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_program_sample_speed_set(Evas_Object *obj, const char 
*prog, double speed);
+
+/** Get tone duration of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ *
+ * @return double duration on success, -1 otherwise.
+ */
+EAPI double edje_edit_program_tone_duration_get(Evas_Object *obj, const char 
*prog);
+
+/** Set tone duration of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ * @param duration New duration value.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_program_tone_duration_set(Evas_Object *obj, const 
char *prog, double duration);
+
+/** Get sample channel of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ *
+ * @return channel on success, 0 otherwise.
+ */
+EAPI unsigned char edje_edit_program_channel_get(Evas_Object *obj, const char 
*prog);
+
+/** Set sample channel of the program.
+ *
+ * @param obj Object being edited.
+ * @param prog The name of the program.
+ * @param channel New channel value.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_program_channel_set(Evas_Object *obj, const char 
*prog, Edje_Channel channel);
+
 /** Get filter part name of the program.
  *
  * @param obj Object being edited.
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 12d6e51..c4e8252 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -8040,7 +8040,11 @@ edje_edit_program_add(Evas_Object *obj, const char *name)
    epr->tween.time = ZERO;
    epr->targets = NULL;
    epr->after = NULL;
-
+   epr->sample_name = NULL;
+   epr->speed = 1.0;
+   epr->channel = EDJE_CHANNEL_EFFECT;
+   epr->tone_name = NULL;
+   epr->duration = 0.1;
 
    //Update table_programs
    ed->collection->patterns.table_programs_size++;
@@ -8125,6 +8129,8 @@ edje_edit_program_del(Evas_Object *obj, const char *prog)
    _edje_if_string_free(ed, epr->filter.state);
    _edje_if_string_free(ed, epr->state);
    _edje_if_string_free(ed, epr->state2);
+   _edje_if_string_free(ed, epr->sample_name);
+   _edje_if_string_free(ed, epr->tone_name);
 
    EINA_LIST_FREE(epr->targets, prt)
      free(prt);
@@ -8302,6 +8308,110 @@ edje_edit_program_source_set(Evas_Object *obj, const 
char *prog, const char *sou
 }
 
 EAPI const char *
+edje_edit_program_sample_name_get(Evas_Object *obj, const char *prog)
+{
+   GET_EPR_OR_RETURN(NULL);
+
+   if (!epr->sample_name) return NULL;
+   return eina_stringshare_add(epr->sample_name);
+}
+
+EAPI Eina_Bool
+edje_edit_program_sample_name_set(Evas_Object *obj, const char *prog, const 
char *name)
+{
+   GET_ED_OR_RETURN(EINA_FALSE);
+   GET_EPR_OR_RETURN(EINA_FALSE);
+
+   if (!name) return EINA_FALSE;
+
+   _edje_if_string_free(ed, epr->sample_name);
+   epr->sample_name = eina_stringshare_add(name);
+
+   return EINA_TRUE;
+}
+
+EAPI const char *
+edje_edit_program_tone_name_get(Evas_Object *obj, const char *prog)
+{
+   GET_EPR_OR_RETURN(NULL);
+
+   if (!epr->tone_name) return NULL;
+   return eina_stringshare_add(epr->tone_name);
+}
+
+EAPI Eina_Bool
+edje_edit_program_tone_name_set(Evas_Object *obj, const char *prog, const char 
*name)
+{
+   GET_ED_OR_RETURN(EINA_FALSE);
+   GET_EPR_OR_RETURN(EINA_FALSE);
+
+   if (!name) return EINA_FALSE;
+
+   _edje_if_string_free(ed, epr->tone_name);
+   epr->tone_name = eina_stringshare_add(name);
+
+   return EINA_TRUE;
+}
+
+EAPI double
+edje_edit_program_sample_speed_get(Evas_Object *obj, const char *prog)
+{
+   GET_EPR_OR_RETURN(-1);
+
+   return epr->speed;
+}
+
+EAPI Eina_Bool
+edje_edit_program_sample_speed_set(Evas_Object *obj, const char *prog, double 
speed)
+{
+   GET_EPR_OR_RETURN(EINA_FALSE);
+
+   if (speed < 0) return EINA_FALSE;
+
+   epr->speed = speed;
+
+   return EINA_TRUE;
+}
+
+EAPI double
+edje_edit_program_tone_duration_get(Evas_Object *obj, const char *prog)
+{
+   GET_EPR_OR_RETURN(-1);
+
+   return epr->duration;
+}
+
+EAPI Eina_Bool
+edje_edit_program_tone_duration_set(Evas_Object *obj, const char *prog, double 
duration)
+{
+   GET_EPR_OR_RETURN(EINA_FALSE);
+
+   if (duration < 0) return EINA_FALSE;
+
+   epr->duration = duration;
+
+   return EINA_TRUE;
+}
+
+EAPI unsigned char
+edje_edit_program_channel_get(Evas_Object *obj, const char *prog)
+{
+   GET_EPR_OR_RETURN(0);
+
+   return epr->channel;
+}
+
+EAPI Eina_Bool
+edje_edit_program_channel_set(Evas_Object *obj, const char *prog, Edje_Channel 
channel)
+{
+   GET_EPR_OR_RETURN(EINA_FALSE);
+
+   epr->channel = channel;
+
+   return EINA_TRUE;
+}
+
+EAPI const char *
 edje_edit_program_filter_part_get(Evas_Object *obj, const char *prog)
 {
    GET_EPR_OR_RETURN(NULL);

-- 


Reply via email to