LiVES 3.2.0
liblives.hpp
Go to the documentation of this file.
1// liblives.hpp
2// LiVES (lives-exe)
3// (c) G. Finch <salsaman+lives@gmail.com> 2015 - 2018
4// Released under the GPL 3 or later
5// see file ../COPYING for licensing details
6
11#ifndef HAS_LIBLIVES_H
12#define HAS_LIBLIVES_H
13
17#define LIVES_VERSION_MAJOR 3
18
22#define LIVES_VERSION_MINOR 2
23
27#define LIVES_VERSION_MICRO 0
28
32#define LIVES_CHECK_VERSION(major, minor, micro) (major > LIVES_VERSION_MAJOR || (major == LIVES_VERSION_MAJOR && (minor > LIVES_VERSION_MINOR || (minor == LIVES_VERSION_MINOR && micro >= LIVES_VERSION_MICRO))))
33
34// defs shared with lbindings.c
35
39typedef enum {
42 // LIVES_FILE_CHOOSER_VIDEO_AUDIO_MULTI, ///< file chooser options for multiple video or audio files
43 //LIVES_FILE_CHOOSER_VIDEO_RANGE ///< file chooser options for video range (start time/number of frames)
45
49typedef enum {
54
55
59typedef enum {
67
68
72typedef enum {
76
77
81typedef enum {
88
91
93
96
97
100
102
104
105#ifndef DOXYGEN_SKIP
107#endif
109
110
114typedef enum {
118 //LIVES_CHAR_ENCODING_UTF16, ///< UTF-16 char encoding
120
124#define LIVES_CHAR_ENCODING_DEFAULT LIVES_CHAR_ENCODING_UTF8
125
129typedef enum {
130 // positive values for custom responses
143
144
148typedef enum {
153
154
158typedef enum {
166
167
171typedef enum {
174
175
179typedef enum {
184
185
189typedef enum {
194
195
197
198#ifdef __cplusplus
199
200#include <vector>
201#include <list>
202#include <map>
203
204#include <inttypes.h>
205
206#include <string>
207
211typedef unsigned long ulong;
212
213
214#ifndef DOXYGEN_SKIP
215extern "C" {
216void binding_cb(lives_callback_t cb_type, const char *msgstring, uint64_t id);
217}
218#endif
219
220using namespace std;
221
223
224
228namespace lives {
229
231
235typedef class livesApp livesApp;
236
240typedef class set set;
241
245typedef class clip clip;
246
250typedef class effectKey effectKey;
251
255typedef class effectKeyMap effectKeyMap;
256
260typedef class effect effect;
261
262
266typedef class player player;
267
268
272typedef class multitrack multitrack;
273
274
278typedef class block block;
279
280
284typedef class livesString livesString;
285
286
290typedef list<livesString> livesStringList;
291
292
294
295
300class livesString : public std::string {
301public:
302 livesString(const string &str = "", lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(str), m_encoding(e) {}
303 livesString(const string &str, size_t pos, size_t len = npos,
304 lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(str, pos,
305 len), m_encoding(e) {}
306 livesString(const char *s, lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(s), m_encoding(e) {}
307 livesString(const char *s, size_t n, lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(s, n),
308 m_encoding(e) {}
309 livesString(size_t n, char c, lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(n, c), m_encoding(e) {}
310 template <class InputIterator>
311 livesString(InputIterator first, InputIterator last,
312 lives_char_encoding_t e = LIVES_CHAR_ENCODING_DEFAULT) : std::string(first, last), m_encoding(e) {}
313
319 livesString toEncoding(lives_char_encoding_t enc);
320
325 void setEncoding(lives_char_encoding_t enc);
326
331 lives_char_encoding_t encoding();
332
333private:
334 lives_char_encoding_t m_encoding;
335};
336
337#ifndef DOXYGEN_SKIP
338typedef void *(*callback_f)(void *);
339
340typedef struct {
341 ulong id;
342 livesApp *object;
343 lives_callback_t cb_type;
344 callback_f func;
345 void *data;
346} closure;
347
348typedef list<closure *> closureList;
349typedef list<closure *>::iterator closureListIterator;
350#endif
351
355typedef struct {
357} modeChangedInfo;
358
359
363typedef struct {
364 int signum;
365} appQuitInfo;
366
367
368#ifndef DOXYGEN_SKIP
369typedef struct {
370 ulong id;
371 char *response;
372} _privateInfo;
373
374
375typedef bool (*private_callback_f)(_privateInfo *, void *);
376#endif
377
383typedef bool (*modeChanged_callback_f)(livesApp *, modeChangedInfo *, void *);
384
390typedef bool (*appQuit_callback_f)(livesApp *, appQuitInfo *, void *);
391
392
398typedef bool (*objectDestroyed_callback_f)(livesApp *, void *);
399
400
406class livesApp {
407 friend set;
408 friend clip;
409 friend effectKeyMap;
410 friend effectKey;
411 friend player;
412 friend multitrack;
413 friend block;
414
415public:
419 livesApp();
420
427 livesApp(int argc, char *argv[]);
428
433 ~livesApp();
434
440 bool isValid() const;
441
446 bool isReady() const;
447
453 bool isPlaying() const;
454
458 const set &getSet();
459
463 const effectKeyMap &getEffectKeyMap();
464
468 const player &getPlayer();
469
473 const multitrack &getMultitrack();
474
480 bool removeCallback(ulong id) const;
481
491 ulong addCallback(lives_callback_t cb_type, modeChanged_callback_f func, void *data) const;
492
502 ulong addCallback(lives_callback_t cb_type, appQuit_callback_f func, void *data) const;
503
513 ulong addCallback(lives_callback_t cb_type, objectDestroyed_callback_f func, void *data) const;
514
522 lives_dialog_response_t showInfo(livesString text, bool blocking = true);
523
537 livesString chooseFileWithPreview(livesString dirname, lives_filechooser_t chooser_type, livesString title = livesString(""));
538
553 clip openFile(livesString fname, bool with_audio = true, double stime = 0., int frames = 0, bool deinterlace = false);
554
563 livesStringList availableSets();
564
575 livesString chooseSet();
576
587 bool reloadSet(livesString setname);
588
596 bool setInteractive(bool setting);
597
603 bool interactive();
604
611 bool deinterlaceOption();
612
620
629 lives_interface_mode_t setMode(lives_interface_mode_t mode);//, livesMultitrackSettings settings=NULL);
630
637 lives_status_t status() const;
638
643 bool cancel();
644
645
646
647#ifndef DOXYGEN_SKIP
648 // For internal use only.
649 closureList &closures();
650 void invalidate();
651 void setClosures(closureList cl);
652
653 bool setPref(const char *prefidx, bool val) const;
654 bool setPref(const char *prefidx, int val) const;
655 bool setPref(const char *prefidx, int bitfield, bool val) const;
656
657#endif
658
659protected:
660 ulong addCallback(lives_callback_t cb_type, private_callback_f func, void *data) const;
661
662private:
663 ulong m_id;
664 closureList m_closures;
665 set *m_set;
666 player *m_player;
667 effectKeyMap *m_effectKeyMap;
668 multitrack *m_multitrack;
669
670 pthread_t *m_thread;
671
672 bool m_deinterlace;
673
674 ulong appendClosure(lives_callback_t cb_type, callback_f func, void *data) const;
675 void init(int argc, char *argv[]);
676
677 void operator=(livesApp const &); // Don't implement
678 livesApp(const livesApp &other); // Don't implement
679
680};
681
682
683
692class clip {
693 friend livesApp;
694 friend set;
695 friend block;
696 friend multitrack;
697 friend player;
698
699public:
700
704 clip();
705
712 bool isValid() const;
713
720 int frames();
721
728 int width();
729
736 int height();
737
744 double FPS();
745
755 double playbackFPS();
756
762 livesString name();
763
772 int audioRate();
773
783 int playbackAudioRate();
784
791 int audioChannels();
792
799 int audioSampleSize();
800
806 bool audioSigned();
807
813 lives_endian_t audioEndian();
814
815
821 double audioLength();
822
829 int selectionStart();
830
837 int selectionEnd();
838
839
845 bool selectAll();
846
854 bool setSelectionStart(unsigned int start);
855
863 bool setSelectionEnd(unsigned int end);
864
873 bool switchTo();
874
882 bool setIsBackground();
883
887 inline bool operator==(const clip &other) {
888 return other.m_uid == m_uid && m_lives == other.m_lives;
889 }
890
891protected:
892 clip(ulong uid, livesApp *lives = NULL);
893 ulong m_uid;
894
895private:
896 livesApp *m_lives;
897
898};
899
900
901
902#ifndef DOXYGEN_SKIP
903typedef vector<ulong> clipList;
904typedef vector<ulong>::iterator clipListIterator;
905#endif
906
908
909
915class set {
916 friend livesApp;
917
918public:
919
925 bool isValid() const;
926
932 livesString name() const;
933
944 bool setName(livesString name = livesString()) const;
945
957 bool save(livesString name, bool force_append = false) const;
958
964 bool save() const;
965
972 unsigned int numClips() const;
973
980 clip nthClip(unsigned int n) const;
981
989 int indexOf(clip c) const;
990
996 livesStringList layoutNames(unsigned int n) const;
997
1001 inline bool operator==(const set &other) const {
1002 return other.m_lives == m_lives;
1003 }
1004
1005
1006protected:
1007 set(livesApp *lives = NULL);
1008
1009private:
1010 livesApp *m_lives;
1011 clipList m_clips;
1012
1013 void update_clip_list(void);
1014
1015
1016};
1017
1018
1019
1020
1021
1027class player {
1028 friend livesApp;
1029
1030public:
1031
1037 bool isValid() const;
1038
1042 bool isPlaying() const;
1043
1044
1048 bool isRecording() const;
1049
1058 void setSepWin(bool setting) const;
1059
1064 bool sepWin() const;
1065
1072 void setFullScreen(bool setting) const;
1073
1078 bool fullScreen() const;
1079
1088 void setFS(bool setting) const;
1089
1095 bool play() const;
1096
1102 bool stop() const;
1103
1113 bool setForegroundClip(clip c) const;
1114
1122 clip foregroundClip() const;
1123
1133 bool setBackgroundClip(clip c) const;
1134
1142 clip backgroundClip() const;
1143
1158 double setPlaybackStartTime(double time) const;
1159
1172 int setVideoPlaybackFrame(int frame, bool background = false) const;
1173
1189 double videoPlaybackTime(bool background = false) const;
1190
1202 double setAudioPlaybackTime(double time) const;
1203
1217 double audioPlaybackTime() const;
1218
1227 double elapsedTime() const;
1228
1240 double setCurrentFPS(double fps) const;
1241
1250 double currentFPS() const;
1251
1260 int currentAudioRate() const;
1261
1270 lives_loop_mode_t setLoopMode(lives_loop_mode_t mode) const;
1271
1278 lives_loop_mode_t loopMode() const;
1279
1289 bool setPingPong(bool setting) const;
1290
1300 bool pingPong() const;
1301
1309 bool resyncFPS() const;
1310
1311
1315 inline bool operator==(const player &other) const {
1316 return other.m_lives == m_lives;
1317 }
1318
1319
1320protected:
1321 player(livesApp *lives = NULL);
1322
1323private:
1324 livesApp *m_lives;
1325
1326};
1327
1329
1336class effectKey {
1337 friend effectKeyMap;
1338public:
1342 effectKey();
1343
1350 bool isValid() const;
1351
1360 int key();
1361
1368 int numModes();
1369
1376 int numMappedModes();
1377
1387 int setCurrentMode(int mode);
1388
1395 int currentMode();
1396
1405 bool setEnabled(bool setting);
1406
1413 bool enabled();
1414
1423 int appendMapping(effect e);
1424
1436 bool removeMapping(int mode);
1437
1444 effect at(int mode);
1445
1446
1447
1448
1449
1453 inline bool operator==(const effectKey &other) {
1454 return other.m_key == m_key && m_lives == other.m_lives;
1455 }
1456
1457protected:
1458 effectKey(livesApp *lives, int key);
1459
1460private:
1461 int m_key;
1462 livesApp *m_lives;
1463
1464};
1465
1466
1467
1474class effectKeyMap {
1475 friend livesApp;
1476public:
1483 bool isValid() const;
1484
1490 bool clear() const;
1491
1500 effectKey at(int i) const;
1501
1509 size_t size() const;
1510
1514 inline bool operator==(const effectKeyMap &other) const {
1515 return other.m_lives == m_lives;
1516 }
1517
1524 inline effectKey operator [](int i) const {
1525 return effectKey(m_lives, i);
1526 }
1527
1528
1529protected:
1530 effectKeyMap(livesApp *lives);
1531
1532private:
1533 livesApp *m_lives;
1534};
1535
1536
1537
1542class effect {
1543 friend effectKey;
1544 friend multitrack;
1545public:
1560 effect(const livesApp &lives, livesString hashname, bool match_full = false);
1561
1577 effect(const livesApp &lives, livesString package, livesString fxname, livesString author = livesString(), int version = 0);
1578
1585 bool isValid() const;
1586
1590 inline bool operator==(const effect &other) {
1591 return other.m_idx == m_idx && m_lives == other.m_lives;
1592 }
1593
1594protected:
1595 effect();
1596 effect(livesApp *m_lives, int idx);
1597 livesApp *m_lives;
1598 int m_idx;
1599
1600private:
1601
1602};
1603
1604
1605
1611class block {
1612 friend multitrack;
1613
1614public:
1615
1622 bool isValid() const;
1623
1631 block(multitrack m, int track, double time);
1632
1638 double startTime();
1639
1645 double length();
1646
1652 clip clipSource();
1653
1660 int track();
1661
1671 bool remove();
1672
1686 bool moveTo(int track, double time);
1687
1688
1689
1690protected:
1694 block(multitrack *m = NULL, ulong uid = 0l);
1695
1696
1697private:
1698 ulong m_uid;
1699 livesApp *m_lives;
1700
1701 void invalidate();
1702};
1703
1704
1705
1710class multitrack {
1711 friend livesApp;
1712 friend block;
1713
1714public:
1715
1721 bool isValid() const;
1722
1727 bool isActive() const;
1728
1736 bool setCurrentTrack(int track) const;
1737
1746 int currentTrack() const;
1747
1758 double setCurrentTime(double time) const;
1759
1770 double currentTime() const;
1771
1778 livesString trackLabel(int track) const;
1779
1789 bool setTrackLabel(int track, livesString label = livesString()) const;
1790
1798 lives_gravity_t gravity() const;
1799
1807 lives_gravity_t setGravity(lives_gravity_t mode) const;
1808
1816 lives_insert_mode_t insertMode() const;
1817
1825 lives_insert_mode_t setInsertMode(lives_insert_mode_t mode) const;
1826
1827
1833 int addVideoTrack(bool in_front) const;
1834
1835
1841 int numVideoTracks() const;
1842
1843
1848 int numAudioTracks() const;
1849
1850
1856 double FPS() const;
1857
1882 block insertBlock(clip c, bool ignore_selection_limits = false, bool without_audio = false) const;
1883
1893 livesString wipeLayout(bool force = false) const;
1894
1902 livesString chooseLayout() const;
1903
1910 livesStringList availableLayouts() const;
1911
1924 bool reloadLayout(livesString filename) const;
1925
1941 livesString saveLayout(livesString name) const;
1942
1957 livesString saveLayout() const;
1958
1969 clip render(bool render_audio = true, bool normalise_audio = true) const;
1970
1979 effect autoTransition() const;
1980
1988 bool disableAutoTransition() const;
1989
2000 bool setAutoTransition(effect autotrans) const;
2001
2005 inline bool operator==(const multitrack &other) const {
2006 return m_lives == other.m_lives;
2007 }
2008
2009
2010protected:
2011 multitrack(livesApp *lives = NULL);
2012
2016 livesApp *m_lives;
2017
2018
2019};
2020
2021
2022
2023
2024
2025
2031namespace prefs {
2036livesString currentVideoLoadDir(const livesApp &lives);
2037
2042livesString currentAudioDir(const livesApp &lives);
2043
2058livesString tmpDir(const livesApp &lives);
2059
2065lives_audio_source_t audioSource(const livesApp &lives);
2066
2073bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc);
2074
2079lives_audio_player_t audioPlayer(const livesApp &lives);
2080
2088int audioPlayerRate(const livesApp &lives);
2089
2095
2100int rteKeysVirtual(const livesApp &lives);
2101
2106double maxFPS(const livesApp &lives);
2107
2113bool audioFollowsVideoChanges(const livesApp &lives);
2114
2120bool audioFollowsFPSChanges(const livesApp &lives);
2121
2128bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting);
2129
2136bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting);
2137
2144bool sepWinSticky(const livesApp &lives);
2145
2152bool setSepWinSticky(const livesApp &lives, bool);
2153
2160bool mtExitRender(const livesApp &lives);
2161
2169bool setMtExitRender(const livesApp &lives, bool setting);
2170
2171
2172}
2173
2174
2175}
2176
2177#endif // __cplusplus
2178
2179#endif //HAS_LIBLIVES_H
boolean normalise_audio(int fnum, double start, double end, float thresh)
Definition: audio.c:280
void binding_cb(lives_callback_t cb_type, const char *msgstring, ulong id)
Definition: liblives.cpp:2326
lives_filechooser_t
Filechooser hinting types.
Definition: liblives.hpp:39
@ LIVES_FILE_CHOOSER_AUDIO_ONLY
file chooser options for single audio file
Definition: liblives.hpp:41
@ LIVES_FILE_CHOOSER_VIDEO_AUDIO
file chooser options for single video or audio file
Definition: liblives.hpp:40
lives_endian_t
Endian values.
Definition: liblives.hpp:72
@ LIVES_LITTLEENDIAN
Definition: liblives.hpp:73
@ LIVES_BIGENDIAN
Definition: liblives.hpp:74
lives_interface_mode_t
LiVES operation mode.
Definition: liblives.hpp:49
@ LIVES_INTERFACE_MODE_MULTITRACK
multitrack mode
Definition: liblives.hpp:52
@ LIVES_INTERFACE_MODE_INVALID
livesApp instance is invalid
Definition: liblives.hpp:50
@ LIVES_INTERFACE_MODE_CLIPEDIT
clip editor mode
Definition: liblives.hpp:51
lives_insert_mode_t
Multitrack insert modes.
Definition: liblives.hpp:171
@ LIVES_INSERT_MODE_NORMAL
Definition: liblives.hpp:172
lives_status_t
LiVES operational status.
Definition: liblives.hpp:59
@ LIVES_STATUS_INVALID
livesApp instance is invalid
Definition: liblives.hpp:60
@ LIVES_STATUS_PLAYING
application is playing, only player commands will be responded to
Definition: liblives.hpp:63
@ LIVES_STATUS_NOTREADY
application is starting up; not ready
Definition: liblives.hpp:61
@ LIVES_STATUS_PROCESSING
application is processing, commands will be ignored
Definition: liblives.hpp:64
@ LIVES_STATUS_READY
application is ready for commands
Definition: liblives.hpp:62
@ LIVES_STATUS_PREVIEW
user is previewing an operation, commands will be ignored
Definition: liblives.hpp:65
lives_audio_player_t
Audio players.
Definition: liblives.hpp:158
@ LIVES_AUDIO_PLAYER_SOX
Audio playback is through Sox.
Definition: liblives.hpp:162
@ LIVES_AUDIO_PLAYER_MPLAYER2
Audio playback is through mplayer2.
Definition: liblives.hpp:164
@ LIVES_AUDIO_PLAYER_JACK
Audio playback is thorugh Jack.
Definition: liblives.hpp:161
@ LIVES_AUDIO_PLAYER_PULSE
Audio playback is through PulseAudio.
Definition: liblives.hpp:160
@ LIVES_AUDIO_PLAYER_MPLAYER
Audio playback is through mplayer.
Definition: liblives.hpp:163
@ LIVES_AUDIO_PLAYER_UNKNOWN
Unknown / invalid.
Definition: liblives.hpp:159
lives_callback_t
Callback types.
Definition: liblives.hpp:81
@ LIVES_CALLBACK_CLIP_CLOSED
sent after a clip is closed
Definition: liblives.hpp:95
@ LIVES_CALLBACK_APP_QUIT
sent when app quits
Definition: liblives.hpp:92
@ LIVES_CALLBACK_FRAME_SYNCH
sent when a frame is displayed
Definition: liblives.hpp:82
@ LIVES_CALLBACK_RECORD_STARTED
sent when record starts (TODO)
Definition: liblives.hpp:89
@ LIVES_CALLBACK_CLIPSET_OPENED
sent after a clip set is opened
Definition: liblives.hpp:98
@ LIVES_CALLBACK_CLIPSET_SAVED
sent after a clip set is closed
Definition: liblives.hpp:99
@ LIVES_CALLBACK_CLIP_OPENED
sent after a clip is opened
Definition: liblives.hpp:94
@ LIVES_CALLBACK_RECORD_STOPPED
sent when record stops (TODO)
Definition: liblives.hpp:90
@ LIVES_CALLBACK_PLAYBACK_STARTED
sent when a/v playback starts or clip is switched
Definition: liblives.hpp:83
@ LIVES_CALLBACK_PLAYBACK_STOPPED_RD
Definition: liblives.hpp:87
@ LIVES_CALLBACK_MODE_CHANGED
sent when interface mode changes
Definition: liblives.hpp:101
@ LIVES_CALLBACK_OBJECT_DESTROYED
sent when livesApp object is deleted
Definition: liblives.hpp:103
@ LIVES_CALLBACK_PRIVATE
for internal use
Definition: liblives.hpp:106
@ LIVES_CALLBACK_PLAYBACK_STOPPED
sent when a/v playback ends sent when a/v playback ends and there is recorded data for rendering/prev...
Definition: liblives.hpp:84
lives_gravity_t
Multitrack gravity.
Definition: liblives.hpp:179
@ LIVES_GRAVITY_LEFT
inserted blocks gravitate to the left
Definition: liblives.hpp:181
@ LIVES_GRAVITY_RIGHT
inserted blocks gravitate to the right
Definition: liblives.hpp:182
@ LIVES_GRAVITY_NORMAL
no gravity
Definition: liblives.hpp:180
#define LIVES_CHAR_ENCODING_DEFAULT
Default character encoding.
Definition: liblives.hpp:124
lives_loop_mode_t
Player looping modes (bitmap)
Definition: liblives.hpp:189
@ LIVES_LOOP_MODE_FIT_AUDIO
video keeps looping until audio playback finishes
Definition: liblives.hpp:192
@ LIVES_LOOP_MODE_CONTINUOUS
both video and audio loop continuously
Definition: liblives.hpp:191
@ LIVES_LOOP_MODE_NONE
no looping
Definition: liblives.hpp:190
lives_char_encoding_t
Character encoding types.
Definition: liblives.hpp:114
@ LIVES_CHAR_ENCODING_LOCAL8BIT
8 bit locale file encoding
Definition: liblives.hpp:116
@ LIVES_CHAR_ENCODING_FILESYSTEM
file system encoding (UTF-8 on windows, local8bit on others)
Definition: liblives.hpp:117
@ LIVES_CHAR_ENCODING_UTF8
UTF-8 char encoding.
Definition: liblives.hpp:115
lives_audio_source_t
Audio sources.
Definition: liblives.hpp:148
@ LIVES_AUDIO_SOURCE_EXTERNAL
Audio source is external to LiVES.
Definition: liblives.hpp:151
@ LIVES_AUDIO_SOURCE_INTERNAL
Audio source is internal to LiVES.
Definition: liblives.hpp:150
@ LIVES_AUDIO_SOURCE_UNKNOWN
Unknown / invalid.
Definition: liblives.hpp:149
lives_dialog_response_t
Dialog response values.
Definition: liblives.hpp:129
@ LIVES_DIALOG_RESPONSE_RESET
Reset button clicked.
Definition: liblives.hpp:136
@ LIVES_DIALOG_RESPONSE_NO
No button clicked.
Definition: liblives.hpp:141
@ LIVES_DIALOG_RESPONSE_RETRY
Retry button clicked.
Definition: liblives.hpp:134
@ LIVES_DIALOG_RESPONSE_OK
OK button clicked.
Definition: liblives.hpp:133
@ LIVES_DIALOG_RESPONSE_ACCEPT
Accept button clicked.
Definition: liblives.hpp:139
@ LIVES_DIALOG_RESPONSE_YES
Yes button clicked.
Definition: liblives.hpp:140
@ LIVES_DIALOG_RESPONSE_INVALID
INVALID response.
Definition: liblives.hpp:131
@ LIVES_DIALOG_RESPONSE_ABORT
Abort button clicked.
Definition: liblives.hpp:135
@ LIVES_DIALOG_RESPONSE_CANCEL
Cancel button clicked.
Definition: liblives.hpp:138
@ LIVES_DIALOG_RESPONSE_SHOW_DETAILS
Show details button clicked.
Definition: liblives.hpp:137
@ LIVES_DIALOG_RESPONSE_NONE
Response not obtained.
Definition: liblives.hpp:132
#define ulong
Definition: main.h:178
lives_mt * multitrack(weed_plant_t *event_list, int orig_file, double fps)
create and return lives_mt struct
Definition: multitrack.c:6448
bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc)
Definition: liblives.cpp:2237
bool isRealtimeAudioPlayer(lives_audio_player_t player_type)
Definition: liblives.cpp:2261
bool audioFollowsVideoChanges(const livesApp &lives)
Definition: liblives.cpp:2279
bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2289
lives_audio_source_t audioSource(const livesApp &lives)
Definition: liblives.cpp:2231
bool setSepWinSticky(const livesApp &lives, bool setting)
Definition: liblives.cpp:2304
bool audioFollowsFPSChanges(const livesApp &lives)
Definition: liblives.cpp:2284
bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2294
livesString currentAudioDir(const livesApp &lives)
Definition: liblives.cpp:2221
lives_audio_player_t audioPlayer(const livesApp &lives)
Definition: liblives.cpp:2242
bool mtExitRender(const livesApp &lives)
Definition: liblives.cpp:2309
int rteKeysVirtual(const livesApp &lives)
Definition: liblives.cpp:2269
livesString currentVideoLoadDir(const livesApp &lives)
Definition: liblives.cpp:2216
double maxFPS(const livesApp &lives)
Definition: liblives.cpp:2274
int audioPlayerRate(const livesApp &lives)
Definition: liblives.cpp:2250
livesString tmpDir(const livesApp &lives)
Definition: liblives.cpp:2226
bool setMtExitRender(const livesApp &lives, bool setting)
Definition: liblives.cpp:2314
bool sepWinSticky(const livesApp &lives)
Definition: liblives.cpp:2299
_prefs * prefs
Definition: preferences.h:847
const char * version(void)