| Tizen Native API
    7.0
    | 
The Layer API provides functions to manage layers.
Required Header
#include <media_editor.h>
Overview
The Mediaeditor Layer API allows you to:
- add/remove layer to internal timeline
- activate/deactivate layer which is already added
- move layer
| Functions | |
| int | mediaeditor_add_layer (mediaeditor_h editor, unsigned int *layer_id, unsigned int *layer_priority) | 
| Adds a layer to timeline. | |
| int | mediaeditor_remove_layer (mediaeditor_h editor, unsigned int layer_id) | 
| Removes a layer from timeline. | |
| int | mediaeditor_move_layer (mediaeditor_h editor, unsigned int layer_id, unsigned int layer_priority) | 
| Moves a layer_id layer to layer_priority position. | |
| int | mediaeditor_activate_layer (mediaeditor_h editor, unsigned int layer_id) | 
| Activates given layer on timeline. The layer will be included when it's rendered. | |
| int | mediaeditor_deactivate_layer (mediaeditor_h editor, unsigned int layer_id) | 
| Deactivates given layer on timeline. | |
| int | mediaeditor_get_layer_priority (mediaeditor_h editor, unsigned int layer_id, unsigned int *layer_priority) | 
| Gets the priority of layer_id layer. | |
| int | mediaeditor_get_layer_lowest_priority (mediaeditor_h editor, unsigned int *layer_priority) | 
| Gets the lowest priority of all layers. | |
| int | mediaeditor_get_layer_id (mediaeditor_h editor, unsigned int layer_priority, unsigned int *layer_id) | 
| Gets the layer ID of layer_priority layer. | |
| int | mediaeditor_set_layer_priority_changed_cb (mediaeditor_h editor, mediaeditor_layer_priority_changed_cb callback, void *user_data) | 
| Sets a callback function to be invoked when a layer priority is changed. | |
| int | mediaeditor_unset_layer_priority_changed_cb (mediaeditor_h editor) | 
| Unsets a layer priority changed callback function. | |
| Typedefs | |
| typedef void(* | mediaeditor_layer_priority_changed_cb )(mediaeditor_layer_info_s *layer_infos, unsigned int size, void *user_data) | 
| Called when the priority of layers is changed. | |
Typedef Documentation
| typedef void(* mediaeditor_layer_priority_changed_cb)(mediaeditor_layer_info_s *layer_infos, unsigned int size, void *user_data) | 
Called when the priority of layers is changed.
- Since :
- 7.0
- Remarks:
- layer_info should be released using free().
- Parameters:
- 
  [in] layer_infos The layer information including layer id and its priority. It's array. [in] size The number of layer_infos array [in] user_data The user data passed from the callback registration function 
Function Documentation
| int mediaeditor_activate_layer | ( | mediaeditor_h | editor, | 
| unsigned int | layer_id | ||
| ) | 
Activates given layer on timeline. The layer will be included when it's rendered.
- Since :
- 7.0
- Remarks:
- Note that the newly created layer will be activated by default.
- Parameters:
- 
  [in] editor The media editor handle [in] layer_id The layer ID 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
- See also:
- mediaeditor_deactivate_layer()
| int mediaeditor_add_layer | ( | mediaeditor_h | editor, | 
| unsigned int * | layer_id, | ||
| unsigned int * | layer_priority | ||
| ) | 
Adds a layer to timeline.
- Since :
- 7.0
- Remarks:
- Layers are responsible for ordering of contained clips. The order is determined by layers' priorities.
 The layers are stacked in a hierarchical structure.
 e.g. If we have 3 layers, it will have the following hierarchy.
 Top : layer ID 1, layer priority 0 (The highest priority) layer ID 2, layer priority 1 Bottom : layer ID 3, layer priority 2 (The lowest priority)Priorities are always a continuous sequence, with no numbers missing in-between.
 For example, priorities 0, 1, 3, 4 are not possible.
 But, layer Id could be a discontinuous sequence. Please refer to examples of mediaeditor_remove_layer().
 The layer_priority of newly added layer will be lowest priority.
- Parameters:
- 
  [in] editor The media editor handle [out] layer_id The layer ID. It'll be used when you want to control this layer. [out] layer_priority The layer priority represents the hierarchical ordering of contained clips. 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
| int mediaeditor_deactivate_layer | ( | mediaeditor_h | editor, | 
| unsigned int | layer_id | ||
| ) | 
Deactivates given layer on timeline.
- Since :
- 7.0
- Remarks:
- The layer is not removed actually but just excluded when it's rendered.
- Parameters:
- 
  [in] editor The media editor handle [in] layer_id The layer ID 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
- See also:
- mediaeditor_activate_layer()
| int mediaeditor_get_layer_id | ( | mediaeditor_h | editor, | 
| unsigned int | layer_priority, | ||
| unsigned int * | layer_id | ||
| ) | 
Gets the layer ID of layer_priority layer.
- Since :
- 7.0
- Parameters:
- 
  [in] editor The media editor handle [in] layer_priority The layer priority [out] layer_id The layer ID 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation 
| int mediaeditor_get_layer_lowest_priority | ( | mediaeditor_h | editor, | 
| unsigned int * | layer_priority | ||
| ) | 
Gets the lowest priority of all layers.
- Since :
- 7.0
- Parameters:
- 
  [in] editor The media editor handle [out] layer_priority The lowest layer priority 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation 
| int mediaeditor_get_layer_priority | ( | mediaeditor_h | editor, | 
| unsigned int | layer_id, | ||
| unsigned int * | layer_priority | ||
| ) | 
Gets the priority of layer_id layer.
- Since :
- 7.0
- Parameters:
- 
  [in] editor The media editor handle [in] layer_id The layer ID [out] layer_priority The layer priority 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation 
| int mediaeditor_move_layer | ( | mediaeditor_h | editor, | 
| unsigned int | layer_id, | ||
| unsigned int | layer_priority | ||
| ) | 
Moves a layer_id layer to layer_priority position.
- Since :
- 7.0
- Remarks:
- e.g. There're 3 layers.
 case 1 : move layer ID 1 to layer priority 0.
 Nothing happens.
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) moving | bottom : layer ID 3, layer priority 2 (including 5 clips) ------------------------------------------------------------------ | top : layer ID 1, layer priority 0 (including 1 clips) After | layer ID 2, layer priority 1 (including 3 clips) moving | bottom : layer ID 3, layer priority 2 (including 5 clips)
 case 2 : move layer ID 3 to layer priority 1.
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) moving | bottom : layer ID 3, layer priority 2 (including 5 clips) ------------------------------------------------------------------ | top : layer ID 1, layer priority 0 (including 1 clips) After | layer ID 3, layer priority 1 (including 5 clips) moving | bottom : layer ID 2, layer priority 2 (including 3 clips)
 case 3 : move layer ID 1 to layer priority 3.
 (Currently, there's no priority 3 layer.)
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) moving | bottom : layer ID 3, layer priority 2 (including 5 clips) ------------------------------------------------------------------ | top : layer ID 2, layer priority 0 (including 3 clips) After | layer ID 3, layer priority 1 (including 5 clips) moving | bottom : layer ID 1, layer priority 2 (including 1 clips)
 case 4 : move layer ID 1 to layer priority 5.
 (Currently, there's no priority 5 layer and it's not continuous sequence.)
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) moving | bottom : layer ID 3, layer priority 2 (including 5 clips) ------------------------------------------------------------------ | top : layer ID 2, layer priority 0 (including 3 clips) After | layer ID 3, layer priority 1 (including 5 clips) moving | bottom : layer ID 1, layer priority 2 (including 1 clips)
 If you can move layer to the lowest priority position, you can get the lowest priority using mediaeditor_get_layer_lowest_priority()
- Parameters:
- 
  [in] editor The media editor handle [in] layer_id The layer ID [in] layer_priority The target layer priority that layer_id is moved 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
- Postcondition:
- mediaeditor_layer_priority_changed_cb() will be invoked if it's set.
| int mediaeditor_remove_layer | ( | mediaeditor_h | editor, | 
| unsigned int | layer_id | ||
| ) | 
Removes a layer from timeline.
- Since :
- 7.0
- Remarks:
- The other layer's layer ID is not changed after removing layer_id.
 If layer_id is not bottom layer, layer priority will be rearranged.
 e.g. There're 3 layers like the followings.
 
 case 1 : remove layer ID 3.
 The layer ID 3 is removed and other layers' priorities are not rearranged.
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) removing | bottom : layer ID 3, layer priority 2 (including 5 clips) -------------------------------------------------------------------- After | top : layer ID 1, layer priority 0 (including 1 clips) removing | bottom : layer ID 2, layer priority 1 (including 3 clips)
 case 2 : remove layer ID 1.
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) removing | bottom : layer ID 3, layer priority 2 (including 5 clips) -------------------------------------------------------------------- After | top : layer ID 2, layer priority 0 (including 3 clips) removing | bottom : layer ID 3, layer priority 1 (including 5 clips)
 * case 3 : remove layer ID 2 and add a new layer.
 | top : layer ID 1, layer priority 0 (including 1 clips) Before | layer ID 2, layer priority 1 (including 3 clips) removing | bottom : layer ID 3, layer priority 2 (including 5 clips) -------------------------------------------------------------------- After | top : layer ID 1, layer priority 0 (including 1 clips) removing | bottom : layer ID 3, layer priority 1 (including 5 clips) -------------------------------------------------------------------- After | top : layer ID 1, layer priority 0 (including 1 clips) adding | : layer ID 3, layer priority 1 (including 5 clips) a layer | bottom : layer ID 4, layer priority 2 (including 7 clips)
- Parameters:
- 
  [in] editor The media editor handle [in] layer_id The layer ID 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
- Postcondition:
- mediaeditor_layer_priority_changed_cb() will be invoked if it's set.
| int mediaeditor_set_layer_priority_changed_cb | ( | mediaeditor_h | editor, | 
| mediaeditor_layer_priority_changed_cb | callback, | ||
| void * | user_data | ||
| ) | 
Sets a callback function to be invoked when a layer priority is changed.
- Since :
- 7.0
- Parameters:
- 
  [in] editor The media editor handle [in] callback Callback function pointer [in] user_data The user data to be passed to the callback function 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.
- Postcondition:
- mediaeditor_layer_priority_changed_cb() will be invoked.
| int mediaeditor_unset_layer_priority_changed_cb | ( | mediaeditor_h | editor | ) | 
Unsets a layer priority changed callback function.
- Since :
- 7.0
- Parameters:
- 
  [in] editor The media editor handle 
- Returns:
- 0on success, otherwise a negative error value
- Return values:
- 
  MEDIAEDITOR_ERROR_NONE Successful MEDIAEDITOR_ERROR_INVALID_PARAMETER Invalid parameter MEDIAEDITOR_ERROR_INVALID_OPERATION Invalid operation MEDIAEDITOR_ERROR_INVALID_STATE Invalid state 
- Precondition:
- editor state must be set to MEDIAEDITOR_STATE_IDLE.