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 
39 typedef 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 
49 typedef enum {
54 
55 
59 typedef enum {
67 
68 
72 typedef enum {
76 
77 
81 typedef enum {
88 
91 
93 
96 
97 
100 
102 
104 
105 #ifndef DOXYGEN_SKIP
106  LIVES_CALLBACK_PRIVATE = 32768
107 #endif
109 
110 
114 typedef enum {
118  //LIVES_CHAR_ENCODING_UTF16, ///< UTF-16 char encoding
120 
124 #define LIVES_CHAR_ENCODING_DEFAULT LIVES_CHAR_ENCODING_UTF8
125 
129 typedef enum {
130  // positive values for custom responses
143 
144 
148 typedef enum {
153 
154 
158 typedef enum {
166 
167 
171 typedef enum {
174 
175 
179 typedef enum {
184 
185 
189 typedef 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 
211 typedef unsigned long ulong;
212 
213 
214 #ifndef DOXYGEN_SKIP
215 extern "C" {
216 void binding_cb(lives_callback_t cb_type, const char *msgstring, uint64_t id);
217 }
218 #endif
219 
220 using namespace std;
221 
223 
224 
228 namespace lives {
229 
231 
235 typedef class livesApp livesApp;
236 
240 typedef class set set;
241 
245 typedef class clip clip;
246 
250 typedef class effectKey effectKey;
251 
255 typedef class effectKeyMap effectKeyMap;
256 
260 typedef class effect effect;
261 
262 
266 typedef class player player;
267 
268 
272 typedef class multitrack multitrack;
273 
274 
278 typedef class block block;
279 
280 
284 typedef class livesString livesString;
285 
286 
290 typedef list<livesString> livesStringList;
291 
292 
294 
295 
300 class livesString : public std::string {
301 public:
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 
333 private:
334  lives_char_encoding_t m_encoding;
335 };
336 
337 #ifndef DOXYGEN_SKIP
338 typedef void *(*callback_f)(void *);
339 
340 typedef struct {
341  ulong id;
342  livesApp *object;
343  lives_callback_t cb_type;
344  callback_f func;
345  void *data;
346 } closure;
347 
348 typedef list<closure *> closureList;
349 typedef list<closure *>::iterator closureListIterator;
350 #endif
351 
355 typedef struct {
357 } modeChangedInfo;
358 
359 
363 typedef struct {
364  int signum;
365 } appQuitInfo;
366 
367 
368 #ifndef DOXYGEN_SKIP
369 typedef struct {
370  ulong id;
371  char *response;
372 } _privateInfo;
373 
374 
375 typedef bool (*private_callback_f)(_privateInfo *, void *);
376 #endif
377 
383 typedef bool (*modeChanged_callback_f)(livesApp *, modeChangedInfo *, void *);
384 
390 typedef bool (*appQuit_callback_f)(livesApp *, appQuitInfo *, void *);
391 
392 
398 typedef bool (*objectDestroyed_callback_f)(livesApp *, void *);
399 
400 
406 class livesApp {
407  friend set;
408  friend clip;
409  friend effectKeyMap;
410  friend effectKey;
411  friend player;
412  friend multitrack;
413  friend block;
414 
415 public:
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 
619  lives_interface_mode_t mode();
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 
659 protected:
660  ulong addCallback(lives_callback_t cb_type, private_callback_f func, void *data) const;
661 
662 private:
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 
692 class clip {
693  friend livesApp;
694  friend set;
695  friend block;
696  friend multitrack;
697  friend player;
698 
699 public:
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 
891 protected:
892  clip(ulong uid, livesApp *lives = NULL);
893  ulong m_uid;
894 
895 private:
896  livesApp *m_lives;
897 
898 };
899 
900 
901 
902 #ifndef DOXYGEN_SKIP
903 typedef vector<ulong> clipList;
904 typedef vector<ulong>::iterator clipListIterator;
905 #endif
906 
908 
909 
915 class set {
916  friend livesApp;
917 
918 public:
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 
1006 protected:
1007  set(livesApp *lives = NULL);
1008 
1009 private:
1010  livesApp *m_lives;
1011  clipList m_clips;
1012 
1013  void update_clip_list(void);
1014 
1015 
1016 };
1017 
1018 
1019 
1020 
1021 
1027 class player {
1028  friend livesApp;
1029 
1030 public:
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 
1320 protected:
1321  player(livesApp *lives = NULL);
1322 
1323 private:
1324  livesApp *m_lives;
1325 
1326 };
1327 
1329 
1336 class effectKey {
1337  friend effectKeyMap;
1338 public:
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 
1457 protected:
1458  effectKey(livesApp *lives, int key);
1459 
1460 private:
1461  int m_key;
1462  livesApp *m_lives;
1463 
1464 };
1465 
1466 
1467 
1474 class effectKeyMap {
1475  friend livesApp;
1476 public:
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 
1529 protected:
1530  effectKeyMap(livesApp *lives);
1531 
1532 private:
1533  livesApp *m_lives;
1534 };
1535 
1536 
1537 
1542 class effect {
1543  friend effectKey;
1544  friend multitrack;
1545 public:
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 
1594 protected:
1595  effect();
1596  effect(livesApp *m_lives, int idx);
1597  livesApp *m_lives;
1598  int m_idx;
1599 
1600 private:
1601 
1602 };
1603 
1604 
1605 
1611 class block {
1612  friend multitrack;
1613 
1614 public:
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 
1690 protected:
1694  block(multitrack *m = NULL, ulong uid = 0l);
1695 
1696 
1697 private:
1698  ulong m_uid;
1699  livesApp *m_lives;
1700 
1701  void invalidate();
1702 };
1703 
1704 
1705 
1710 class multitrack {
1711  friend livesApp;
1712  friend block;
1713 
1714 public:
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 
2010 protected:
2011  multitrack(livesApp *lives = NULL);
2012 
2016  livesApp *m_lives;
2017 
2018 
2019 };
2020 
2021 
2022 
2023 
2024 
2025 
2031 namespace prefs {
2036 livesString currentVideoLoadDir(const livesApp &lives);
2037 
2042 livesString currentAudioDir(const livesApp &lives);
2043 
2058 livesString tmpDir(const livesApp &lives);
2059 
2065 lives_audio_source_t audioSource(const livesApp &lives);
2066 
2073 bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc);
2074 
2079 lives_audio_player_t audioPlayer(const livesApp &lives);
2080 
2088 int audioPlayerRate(const livesApp &lives);
2089 
2095 
2100 int rteKeysVirtual(const livesApp &lives);
2101 
2106 double maxFPS(const livesApp &lives);
2107 
2113 bool audioFollowsVideoChanges(const livesApp &lives);
2114 
2120 bool audioFollowsFPSChanges(const livesApp &lives);
2121 
2128 bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting);
2129 
2136 bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting);
2137 
2144 bool sepWinSticky(const livesApp &lives);
2145 
2152 bool setSepWinSticky(const livesApp &lives, bool);
2153 
2160 bool mtExitRender(const livesApp &lives);
2161 
2169 bool setMtExitRender(const livesApp &lives, bool setting);
2170 
2171 
2172 }
2173 
2174 
2175 }
2176 
2177 #endif // __cplusplus
2178 
2179 #endif //HAS_LIBLIVES_H
LIVES_AUDIO_PLAYER_UNKNOWN
@ LIVES_AUDIO_PLAYER_UNKNOWN
Unknown / invalid.
Definition: liblives.hpp:159
LIVES_GRAVITY_NORMAL
@ LIVES_GRAVITY_NORMAL
no gravity
Definition: liblives.hpp:180
LIVES_INSERT_MODE_NORMAL
@ LIVES_INSERT_MODE_NORMAL
Definition: liblives.hpp:172
LIVES_STATUS_PROCESSING
@ LIVES_STATUS_PROCESSING
application is processing, commands will be ignored
Definition: liblives.hpp:64
LIVES_INTERFACE_MODE_MULTITRACK
@ LIVES_INTERFACE_MODE_MULTITRACK
multitrack mode
Definition: liblives.hpp:52
LIVES_AUDIO_PLAYER_JACK
@ LIVES_AUDIO_PLAYER_JACK
Audio playback is thorugh Jack.
Definition: liblives.hpp:161
lives::prefs::audioPlayerRate
int audioPlayerRate(const livesApp &lives)
Definition: liblives.cpp:2250
lives_callback_t
lives_callback_t
Callback types.
Definition: liblives.hpp:81
lives::prefs::setAudioSource
bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc)
Definition: liblives.cpp:2237
version
const char * version(void)
LIVES_AUDIO_SOURCE_EXTERNAL
@ LIVES_AUDIO_SOURCE_EXTERNAL
Audio source is external to LiVES.
Definition: liblives.hpp:151
LIVES_DIALOG_RESPONSE_INVALID
@ LIVES_DIALOG_RESPONSE_INVALID
INVALID response.
Definition: liblives.hpp:131
LIVES_CALLBACK_MODE_CHANGED
@ LIVES_CALLBACK_MODE_CHANGED
sent when interface mode changes
Definition: liblives.hpp:101
lives_dialog_response_t
lives_dialog_response_t
Dialog response values.
Definition: liblives.hpp:129
LIVES_CALLBACK_OBJECT_DESTROYED
@ LIVES_CALLBACK_OBJECT_DESTROYED
sent when livesApp object is deleted
Definition: liblives.hpp:103
LIVES_AUDIO_PLAYER_PULSE
@ LIVES_AUDIO_PLAYER_PULSE
Audio playback is through PulseAudio.
Definition: liblives.hpp:160
prefs
_prefs * prefs
Definition: preferences.h:847
lives::prefs::setAudioFollowsVideoChanges
bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2289
lives::prefs::audioSource
lives_audio_source_t audioSource(const livesApp &lives)
Definition: liblives.cpp:2231
LIVES_DIALOG_RESPONSE_RESET
@ LIVES_DIALOG_RESPONSE_RESET
Reset button clicked.
Definition: liblives.hpp:136
LIVES_INTERFACE_MODE_CLIPEDIT
@ LIVES_INTERFACE_MODE_CLIPEDIT
clip editor mode
Definition: liblives.hpp:51
lives_status_t
lives_status_t
LiVES operational status.
Definition: liblives.hpp:59
lives::prefs::audioPlayer
lives_audio_player_t audioPlayer(const livesApp &lives)
Definition: liblives.cpp:2242
LIVES_AUDIO_PLAYER_MPLAYER2
@ LIVES_AUDIO_PLAYER_MPLAYER2
Audio playback is through mplayer2.
Definition: liblives.hpp:164
lives_endian_t
lives_endian_t
Endian values.
Definition: liblives.hpp:72
LIVES_CHAR_ENCODING_FILESYSTEM
@ LIVES_CHAR_ENCODING_FILESYSTEM
file system encoding (UTF-8 on windows, local8bit on others)
Definition: liblives.hpp:117
lives::prefs::audioFollowsVideoChanges
bool audioFollowsVideoChanges(const livesApp &lives)
Definition: liblives.cpp:2279
LIVES_CALLBACK_FRAME_SYNCH
@ LIVES_CALLBACK_FRAME_SYNCH
sent when a frame is displayed
Definition: liblives.hpp:82
LIVES_STATUS_READY
@ LIVES_STATUS_READY
application is ready for commands
Definition: liblives.hpp:62
lives::prefs::sepWinSticky
bool sepWinSticky(const livesApp &lives)
Definition: liblives.cpp:2299
lives::prefs::maxFPS
double maxFPS(const livesApp &lives)
Definition: liblives.cpp:2274
lives::prefs::setMtExitRender
bool setMtExitRender(const livesApp &lives, bool setting)
Definition: liblives.cpp:2314
lives_gravity_t
lives_gravity_t
Multitrack gravity.
Definition: liblives.hpp:179
LIVES_CALLBACK_CLIPSET_OPENED
@ LIVES_CALLBACK_CLIPSET_OPENED
sent after a clip set is opened
Definition: liblives.hpp:98
LIVES_STATUS_INVALID
@ LIVES_STATUS_INVALID
livesApp instance is invalid
Definition: liblives.hpp:60
LIVES_CALLBACK_APP_QUIT
@ LIVES_CALLBACK_APP_QUIT
sent when app quits
Definition: liblives.hpp:92
LIVES_LITTLEENDIAN
@ LIVES_LITTLEENDIAN
Definition: liblives.hpp:73
LIVES_AUDIO_PLAYER_MPLAYER
@ LIVES_AUDIO_PLAYER_MPLAYER
Audio playback is through mplayer.
Definition: liblives.hpp:163
LIVES_DIALOG_RESPONSE_YES
@ LIVES_DIALOG_RESPONSE_YES
Yes button clicked.
Definition: liblives.hpp:140
LIVES_AUDIO_SOURCE_UNKNOWN
@ LIVES_AUDIO_SOURCE_UNKNOWN
Unknown / invalid.
Definition: liblives.hpp:149
LIVES_AUDIO_SOURCE_INTERNAL
@ LIVES_AUDIO_SOURCE_INTERNAL
Audio source is internal to LiVES.
Definition: liblives.hpp:150
LIVES_STATUS_PREVIEW
@ LIVES_STATUS_PREVIEW
user is previewing an operation, commands will be ignored
Definition: liblives.hpp:65
LIVES_GRAVITY_LEFT
@ LIVES_GRAVITY_LEFT
inserted blocks gravitate to the left
Definition: liblives.hpp:181
lives_insert_mode_t
lives_insert_mode_t
Multitrack insert modes.
Definition: liblives.hpp:171
LIVES_CHAR_ENCODING_UTF8
@ LIVES_CHAR_ENCODING_UTF8
UTF-8 char encoding.
Definition: liblives.hpp:115
LIVES_LOOP_MODE_NONE
@ LIVES_LOOP_MODE_NONE
no looping
Definition: liblives.hpp:190
LIVES_CALLBACK_PLAYBACK_STOPPED_RD
@ LIVES_CALLBACK_PLAYBACK_STOPPED_RD
Definition: liblives.hpp:87
LIVES_DIALOG_RESPONSE_ACCEPT
@ LIVES_DIALOG_RESPONSE_ACCEPT
Accept button clicked.
Definition: liblives.hpp:139
LIVES_CALLBACK_CLIPSET_SAVED
@ LIVES_CALLBACK_CLIPSET_SAVED
sent after a clip set is closed
Definition: liblives.hpp:99
LIVES_LOOP_MODE_CONTINUOUS
@ LIVES_LOOP_MODE_CONTINUOUS
both video and audio loop continuously
Definition: liblives.hpp:191
LIVES_CALLBACK_CLIP_OPENED
@ LIVES_CALLBACK_CLIP_OPENED
sent after a clip is opened
Definition: liblives.hpp:94
lives::prefs::currentAudioDir
livesString currentAudioDir(const livesApp &lives)
Definition: liblives.cpp:2221
LIVES_CALLBACK_PLAYBACK_STARTED
@ LIVES_CALLBACK_PLAYBACK_STARTED
sent when a/v playback starts or clip is switched
Definition: liblives.hpp:83
LIVES_STATUS_NOTREADY
@ LIVES_STATUS_NOTREADY
application is starting up; not ready
Definition: liblives.hpp:61
lives_interface_mode_t
lives_interface_mode_t
LiVES operation mode.
Definition: liblives.hpp:49
LIVES_FILE_CHOOSER_AUDIO_ONLY
@ LIVES_FILE_CHOOSER_AUDIO_ONLY
file chooser options for single audio file
Definition: liblives.hpp:41
LIVES_BIGENDIAN
@ LIVES_BIGENDIAN
Definition: liblives.hpp:74
lives_audio_source_t
lives_audio_source_t
Audio sources.
Definition: liblives.hpp:148
LIVES_INTERFACE_MODE_INVALID
@ LIVES_INTERFACE_MODE_INVALID
livesApp instance is invalid
Definition: liblives.hpp:50
lives::prefs::isRealtimeAudioPlayer
bool isRealtimeAudioPlayer(lives_audio_player_t player_type)
Definition: liblives.cpp:2261
lives::prefs::currentVideoLoadDir
livesString currentVideoLoadDir(const livesApp &lives)
Definition: liblives.cpp:2216
LIVES_DIALOG_RESPONSE_OK
@ LIVES_DIALOG_RESPONSE_OK
OK button clicked.
Definition: liblives.hpp:133
LIVES_CALLBACK_CLIP_CLOSED
@ LIVES_CALLBACK_CLIP_CLOSED
sent after a clip is closed
Definition: liblives.hpp:95
lives::prefs::setAudioFollowsFPSChanges
bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2294
LIVES_CALLBACK_PRIVATE
@ LIVES_CALLBACK_PRIVATE
for internal use
Definition: liblives.hpp:106
multitrack
lives_mt * multitrack(weed_plant_t *event_list, int orig_file, double fps)
create and return lives_mt struct
Definition: multitrack.c:6448
lives_char_encoding_t
lives_char_encoding_t
Character encoding types.
Definition: liblives.hpp:114
lives::prefs::setSepWinSticky
bool setSepWinSticky(const livesApp &lives, bool setting)
Definition: liblives.cpp:2304
LIVES_DIALOG_RESPONSE_CANCEL
@ LIVES_DIALOG_RESPONSE_CANCEL
Cancel button clicked.
Definition: liblives.hpp:138
binding_cb
void binding_cb(lives_callback_t cb_type, const char *msgstring, ulong id)
Definition: liblives.cpp:2326
lives_audio_player_t
lives_audio_player_t
Audio players.
Definition: liblives.hpp:158
LIVES_LOOP_MODE_FIT_AUDIO
@ LIVES_LOOP_MODE_FIT_AUDIO
video keeps looping until audio playback finishes
Definition: liblives.hpp:192
LIVES_CALLBACK_RECORD_STOPPED
@ LIVES_CALLBACK_RECORD_STOPPED
sent when record stops (TODO)
Definition: liblives.hpp:90
LIVES_AUDIO_PLAYER_SOX
@ LIVES_AUDIO_PLAYER_SOX
Audio playback is through Sox.
Definition: liblives.hpp:162
LIVES_DIALOG_RESPONSE_SHOW_DETAILS
@ LIVES_DIALOG_RESPONSE_SHOW_DETAILS
Show details button clicked.
Definition: liblives.hpp:137
LIVES_CALLBACK_PLAYBACK_STOPPED
@ 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::prefs::tmpDir
livesString tmpDir(const livesApp &lives)
Definition: liblives.cpp:2226
LIVES_CALLBACK_RECORD_STARTED
@ LIVES_CALLBACK_RECORD_STARTED
sent when record starts (TODO)
Definition: liblives.hpp:89
LIVES_DIALOG_RESPONSE_RETRY
@ LIVES_DIALOG_RESPONSE_RETRY
Retry button clicked.
Definition: liblives.hpp:134
lives
Definition: liblives.cpp:57
normalise_audio
boolean normalise_audio(int fnum, double start, double end, float thresh)
Definition: audio.c:280
lives::prefs::rteKeysVirtual
int rteKeysVirtual(const livesApp &lives)
Definition: liblives.cpp:2269
LIVES_DIALOG_RESPONSE_NONE
@ LIVES_DIALOG_RESPONSE_NONE
Response not obtained.
Definition: liblives.hpp:132
LIVES_DIALOG_RESPONSE_ABORT
@ LIVES_DIALOG_RESPONSE_ABORT
Abort button clicked.
Definition: liblives.hpp:135
LIVES_GRAVITY_RIGHT
@ LIVES_GRAVITY_RIGHT
inserted blocks gravitate to the right
Definition: liblives.hpp:182
lives::prefs::mtExitRender
bool mtExitRender(const livesApp &lives)
Definition: liblives.cpp:2309
lives::prefs::audioFollowsFPSChanges
bool audioFollowsFPSChanges(const livesApp &lives)
Definition: liblives.cpp:2284
LIVES_CHAR_ENCODING_LOCAL8BIT
@ LIVES_CHAR_ENCODING_LOCAL8BIT
8 bit locale file encoding
Definition: liblives.hpp:116
LIVES_DIALOG_RESPONSE_NO
@ LIVES_DIALOG_RESPONSE_NO
No button clicked.
Definition: liblives.hpp:141
lives_filechooser_t
lives_filechooser_t
Filechooser hinting types.
Definition: liblives.hpp:39
ulong
#define ulong
Definition: main.h:178
LIVES_CHAR_ENCODING_DEFAULT
#define LIVES_CHAR_ENCODING_DEFAULT
Default character encoding.
Definition: liblives.hpp:124
lives_loop_mode_t
lives_loop_mode_t
Player looping modes (bitmap)
Definition: liblives.hpp:189
LIVES_STATUS_PLAYING
@ LIVES_STATUS_PLAYING
application is playing, only player commands will be responded to
Definition: liblives.hpp:63
LIVES_FILE_CHOOSER_VIDEO_AUDIO
@ LIVES_FILE_CHOOSER_VIDEO_AUDIO
file chooser options for single video or audio file
Definition: liblives.hpp:40