## EntangleSession

EntangleSession — a collection of media files

## Functions

EntangleSession * | entangle_session_new ()
const char * | entangle_session_directory ()
const char * | entangle_session_filename_pattern ()
char * | entangle_session_next_filename ()
gboolean | entangle_session_load ()
void | entangle_session_add_media ()
void | entangle_session_remove_media ()
int | entangle_session_get_media_count ()
EntangleMedia * | entangle_session_get_media ()

## Properties

char * | directory | Read / Write / Construct Only
char * | filename-pattern | Read / Write / Construct Only

## Signals

void | session-media-added | Run First
void | session-media-removed | Run First

## Types and Values

#define | ENTANGLE_TYPE_SESSION
| EntangleSession

## Object Hierarchy

        GObject
        ╰── EntangleSession

## Description

The EntangleSession object represents a collection of media files used during the current capture session.

## Functions

### entangle_session_new ()

    EntangleSession *
    entangle_session_new (const char *directory,
                          const char *filenamePattern);

Create a new sesssion tracking media files present in `directory` . The `filenamePattern` is used to generate filenames for newly created files

#### Parameters

directory | the directory associated witht session |
filenamePattern | the filename generator pattern |

#### Returns

the new session.

[transfer full]

### entangle_session_directory ()

    const char *
    entangle_session_directory (EntangleSession *session);

Get the directory associated with the session

#### Parameters

session | the session instance. | [transfer none]

#### Returns

the session directory.

[transfer none]

### entangle_session_filename_pattern ()

    const char *
    entangle_session_filename_pattern (EntangleSession *session);

Get the filename generator pattern

#### Parameters

session | the session instance. | [transfer none]

#### Returns

the filename pattern.

[transfer none]

### entangle_session_next_filename ()

    char *
    entangle_session_next_filename (EntangleSession *session,
                                    EntangleCameraFile *file);

Generate a new unique filename for `file` , taking into account its file extension and any previously generated filename.

#### Parameters

session | the session instance. | [transfer none]
file | the file to obtain a filename for. | [transfer none]

#### Returns

the new filename.

[transfer full]

### entangle_session_load ()

    gboolean
    entangle_session_load (EntangleSession *session);

Load all the files present in the directory associated with the session

#### Parameters

session | the session instance. | [transfer none]

#### Returns

TRUE if the session was loaded

### entangle_session_add_media ()

    void
    entangle_session_add_media (EntangleSession *session,
                                EntangleMedia *media);

Add `media` to the `session`

#### Parameters

session | the session instance. | [transfer none]
media | the media file to add to the session. | [transfer none]

### entangle_session_remove_media ()

    void
    entangle_session_remove_media (EntangleSession *session,
                                   EntangleMedia *media);

Remove `media` from the `session`

#### Parameters

session | the session instance. | [transfer none]
media | the media to remove from the session. | [transfer none]

### entangle_session_get_media_count ()

    int
    entangle_session_get_media_count (EntangleSession *session);

Get the total number of media files in the session

#### Parameters

session | the session instance. | [transfer none]

#### Returns

the file count

### entangle_session_get_media ()

    EntangleMedia *
    entangle_session_get_media (EntangleSession *session,
                                int idx);

Get the media file at position `idx` in the session

#### Parameters

session | the session instance. | [transfer none]
idx | index of the media file to fetch |

#### Returns

the media file.

[transfer none]

## Types and Values

### ENTANGLE_TYPE_SESSION

    #define ENTANGLE_TYPE_SESSION (entangle_session_get_type())

### EntangleSession

    typedef struct _EntangleSession EntangleSession;

## Property Details

### The `“directory”` property

      “directory”                char *

Full path to session file.

Owner: EntangleSession

Flags: Read / Write / Construct Only

Default value: NULL

### The `“filename-pattern”` property

      “filename-pattern”         char *

Pattern for creating new filenames.

Owner: EntangleSession

Flags: Read / Write / Construct Only

Default value: NULL

## Signal Details

### The `“session-media-added”` signal

    void
    user_function (EntangleSession *entanglesession,
                   EntangleMedia   *arg1,
                   gpointer         user_data)

Flags: Run First

### The `“session-media-removed”` signal

    void
    user_function (EntangleSession *entanglesession,
                   EntangleMedia   *arg1,
                   gpointer         user_data)

Flags: Run First