liblives  2.4.1-svn
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
liblives.hpp
Go to the documentation of this file.
1 // liblives.hpp
2 // LiVES (lives-exe)
3 // (c) G. Finch <salsaman@gmail.com> 2015
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 2
18 
22 #define LIVES_VERSION_MINOR 4
23 
27 #define LIVES_VERSION_MICRO 1
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 
35 // defs shared with lbindings.c
36 
40 typedef enum {
43  // LIVES_FILE_CHOOSER_VIDEO_AUDIO_MULTI, ///< file chooser options for multiple video or audio files
44  //LIVES_FILE_CHOOSER_VIDEO_RANGE ///< file chooser options for video range (start time/number of frames)
46 
50 typedef enum {
55 
56 
60 typedef enum {
68 
69 
73 typedef enum {
74  LIVES_LITTLEENDIAN,
75  LIVES_BIGENDIAN
77 
78 
82 typedef enum {
89 
92 
94 
97 
98 
101 
103 
105 
106 #ifndef DOXYGEN_SKIP
107  LIVES_CALLBACK_PRIVATE = 32768
108 #endif
110 
111 
112 
116 typedef enum {
120  //LIVES_CHAR_ENCODING_UTF16, ///< UTF-16 char encoding
122 
126 #define LIVES_CHAR_ENCODING_DEFAULT LIVES_CHAR_ENCODING_UTF8
127 
131 typedef enum {
132 // positive values for custom responses
145 
146 
150 typedef enum {
155 
156 
160 typedef enum {
168 
169 
170 
174 typedef enum {
175  LIVES_INSERT_MODE_NORMAL
177 
178 
179 
183 typedef enum {
188 
189 
190 
194 typedef enum {
199 
200 
202 
203 #ifdef __cplusplus
204 
205 #include <vector>
206 #include <list>
207 #include <map>
208 
209 #include <inttypes.h>
210 
211 #include <string>
212 
216 typedef unsigned long ulong;
217 
218 
219 #ifndef DOXYGEN_SKIP
220 extern "C" {
221  void binding_cb (lives_callback_t cb_type, const char *msgstring, uint64_t id);
222 }
223 #endif
224 
225 using namespace std;
226 
228 
229 
230 
231 
232 
236 namespace lives {
237 
239 
243  typedef class livesApp livesApp;
244 
248  typedef class set set;
249 
253  typedef class clip clip;
254 
258  typedef class effectKey effectKey;
259 
263  typedef class effectKeyMap effectKeyMap;
264 
268  typedef class effect effect;
269 
270 
274  typedef class player player;
275 
276 
280  typedef class multitrack multitrack;
281 
282 
286  typedef class block block;
287 
288 
292  typedef class livesString livesString;
293 
294 
298  typedef list<livesString> livesStringList;
299 
300 
302 
303 
308  class livesString : public std::string {
309  public:
310  livesString(const string& str="", lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e), std::string(str) {}
311  livesString(const string& str, size_t pos, size_t len = npos, lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e),
312  std::string(str, pos, len) {}
313  livesString(const char* s, lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e), std::string(s) {}
314  livesString(const char* s, size_t n, lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e), std::string(s, n) {}
315  livesString(size_t n, char c, lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e), std::string(n, c) {}
316  template <class InputIterator>
317  livesString (InputIterator first, InputIterator last,
318  lives_char_encoding_t e=LIVES_CHAR_ENCODING_DEFAULT) : m_encoding(e), std::string(first, last) {}
319 
325  livesString toEncoding(lives_char_encoding_t enc);
326 
331  void setEncoding(lives_char_encoding_t enc);
332 
337  lives_char_encoding_t encoding();
338 
339  private:
340  lives_char_encoding_t m_encoding;
341  };
342 
343 #ifndef DOXYGEN_SKIP
344  typedef void *(*callback_f)(void *);
345 
346  typedef struct {
347  ulong id;
348  livesApp *object;
349  lives_callback_t cb_type;
350  callback_f func;
351  void *data;
352  } closure;
353 
354  typedef list<closure *> closureList;
355  typedef list<closure *>::iterator closureListIterator;
356 #endif
357 
361  typedef struct {
363  } modeChangedInfo;
364 
365 
369  typedef struct {
370  int signum;
371  } appQuitInfo;
372 
373 
374 #ifndef DOXYGEN_SKIP
375  typedef struct {
376  ulong id;
377  char *response;
378  } _privateInfo;
379 
380 
381  typedef bool (*private_callback_f)(_privateInfo *, void *);
382 #endif
383 
389  typedef bool (*modeChanged_callback_f)(livesApp *, modeChangedInfo *, void *);
390 
396  typedef bool (*appQuit_callback_f)(livesApp *, appQuitInfo *, void *);
397 
398 
404  typedef bool (*objectDestroyed_callback_f)(livesApp *, void *);
405 
406 
407 
413  class livesApp {
414  friend set;
415  friend clip;
416  friend effectKeyMap;
417  friend effectKey;
418  friend player;
419  friend multitrack;
420  friend block;
421 
422  public:
426  livesApp();
427 
434  livesApp(int argc, char *argv[]);
435 
440  ~livesApp();
441 
447  bool isValid() const;
448 
453  bool isReady() const;
454 
460  bool isPlaying() const;
461 
465  const set& getSet();
466 
470  const effectKeyMap& getEffectKeyMap();
471 
475  const player& getPlayer();
476 
480  const multitrack& getMultitrack();
481 
487  bool removeCallback(ulong id) const;
488 
498  ulong addCallback(lives_callback_t cb_type, modeChanged_callback_f func, void *data) const;
499 
509  ulong addCallback(lives_callback_t cb_type, appQuit_callback_f func, void *data) const;
510 
520  ulong addCallback(lives_callback_t cb_type, objectDestroyed_callback_f func, void *data) const;
521 
529  lives_dialog_response_t showInfo(livesString text, bool blocking=true);
530 
544  livesString chooseFileWithPreview(livesString dirname, lives_filechooser_t chooser_type, livesString title=livesString(""));
545 
560  clip openFile(livesString fname, bool with_audio=true, double stime=0., int frames=0, bool deinterlace=false);
561 
570  livesStringList availableSets();
571 
582  livesString chooseSet();
583 
594  bool reloadSet(livesString setname);
595 
603  bool setInteractive(bool setting);
604 
610  bool interactive();
611 
618  bool deinterlaceOption();
619 
626  lives_interface_mode_t mode();
627 
636  lives_interface_mode_t setMode(lives_interface_mode_t mode);//, livesMultitrackSettings settings=NULL);
637 
644  lives_status_t status() const;
645 
650  bool cancel();
651 
652 
653 
654 #ifndef DOXYGEN_SKIP
655  // For internal use only.
656  closureList& closures();
657  void invalidate();
658  void setClosures(closureList cl);
659 
660  bool setPref(int prefidx, bool val) const;
661  bool setPref(int prefidx, int val) const;
662  bool setPref(int prefidx, int bitfield, bool val) const;
663 
664 #endif
665 
666  protected:
667  ulong addCallback(lives_callback_t cb_type, private_callback_f func, void *data) const;
668 
669  private:
670  ulong m_id;
671  closureList m_closures;
672  set * m_set;
673  player *m_player;
674  effectKeyMap * m_effectKeyMap;
675  multitrack *m_multitrack;
676 
677  pthread_t *m_thread;
678 
679  bool m_deinterlace;
680 
681  ulong appendClosure(lives_callback_t cb_type, callback_f func, void *data) const;
682  void init(int argc, char *argv[]);
683 
684  void operator=(livesApp const&); // Don't implement
685  livesApp(const livesApp &other); // Don't implement
686 
687  };
688 
689 
690 
691 
700  class clip {
701  friend livesApp;
702  friend set;
703  friend block;
704  friend multitrack;
705  friend player;
706 
707  public:
708 
712  clip();
713 
720  bool isValid() const;
721 
728  int frames();
729 
736  int width();
737 
744  int height();
745 
752  double FPS();
753 
763  double playbackFPS();
764 
770  livesString name();
771 
780  int audioRate();
781 
791  int playbackAudioRate();
792 
799  int audioChannels();
800 
807  int audioSampleSize();
808 
814  bool audioSigned();
815 
821  lives_endian_t audioEndian();
822 
823 
829  double audioLength();
830 
837  int selectionStart();
838 
845  int selectionEnd();
846 
847 
853  bool selectAll();
854 
862  bool setSelectionStart(unsigned int start);
863 
871  bool setSelectionEnd(unsigned int end);
872 
881  bool switchTo();
882 
890  bool setIsBackground();
891 
895  inline bool operator==(const clip& other) {
896  return other.m_uid == m_uid && m_lives == other.m_lives;
897  }
898 
899  protected:
900  clip(ulong uid, livesApp *lives=NULL);
901  ulong m_uid;
902 
903  private:
904  livesApp *m_lives;
905 
906  };
907 
908 
909 
910 #ifndef DOXYGEN_SKIP
911  typedef vector<ulong> clipList;
912  typedef vector<ulong>::iterator clipListIterator;
913 #endif
914 
916 
917 
923  class set {
924  friend livesApp;
925 
926  public:
927 
933  bool isValid() const;
934 
940  livesString name() const;
941 
952  bool setName(livesString name=livesString()) const;
953 
965  bool save(livesString name, bool force_append=false) const;
966 
972  bool save() const;
973 
980  unsigned int numClips() const;
981 
988  clip nthClip(unsigned int n) const;
989 
997  int indexOf(clip c) const;
998 
1004  livesStringList layoutNames(unsigned int n) const;
1005 
1009  inline bool operator==(const set& other) const {
1010  return other.m_lives == m_lives;
1011  }
1012 
1013 
1014  protected:
1015  set(livesApp *lives=NULL);
1016 
1017  private:
1018  livesApp *m_lives;
1019  clipList m_clips;
1020 
1021  void update_clip_list(void);
1022 
1023 
1024  };
1025 
1026 
1027 
1028 
1029 
1035  class player {
1036  friend livesApp;
1037 
1038  public:
1039 
1045  bool isValid() const;
1046 
1050  bool isPlaying() const;
1051 
1052 
1056  bool isRecording() const;
1057 
1066  void setSepWin(bool setting) const;
1067 
1072  bool sepWin() const;
1073 
1080  void setFullScreen(bool setting) const;
1081 
1086  bool fullScreen() const;
1087 
1096  void setFS(bool setting) const;
1097 
1103  bool play() const;
1104 
1110  bool stop() const;
1111 
1121  bool setForegroundClip(clip c) const;
1122 
1130  clip foregroundClip() const;
1131 
1141  bool setBackgroundClip(clip c) const;
1142 
1150  clip backgroundClip() const;
1151 
1166  double setPlaybackStartTime(double time) const;
1167 
1180  int setVideoPlaybackFrame(int frame, bool background=false) const;
1181 
1197  double videoPlaybackTime(bool background=false) const;
1198 
1210  double setAudioPlaybackTime(double time) const;
1211 
1225  double audioPlaybackTime() const;
1226 
1235  double elapsedTime() const;
1236 
1248  double setCurrentFPS(double fps) const;
1249 
1258  double currentFPS() const;
1259 
1268  int currentAudioRate() const;
1269 
1278  lives_loop_mode_t setLoopMode(lives_loop_mode_t mode) const;
1279 
1286  lives_loop_mode_t loopMode() const;
1287 
1297  bool setPingPong(bool setting) const;
1298 
1308  bool pingPong() const;
1309 
1317  bool resyncFPS() const;
1318 
1319 
1323  inline bool operator==(const player& other) const {
1324  return other.m_lives == m_lives;
1325  }
1326 
1327 
1328  protected:
1329  player(livesApp *lives=NULL);
1330 
1331  private:
1332  livesApp *m_lives;
1333 
1334  };
1335 
1337 
1344  class effectKey {
1345  friend effectKeyMap;
1346  public:
1350  effectKey();
1351 
1358  bool isValid() const;
1359 
1368  int key();
1369 
1376  int numModes();
1377 
1384  int numMappedModes();
1385 
1395  int setCurrentMode(int mode);
1396 
1403  int currentMode();
1404 
1413  bool setEnabled(bool setting);
1414 
1421  bool enabled();
1422 
1431  int appendMapping(effect e);
1432 
1444  bool removeMapping(int mode);
1445 
1452  effect at(int mode);
1453 
1457  inline bool operator==(const effectKey& other) {
1458  return other.m_key == m_key && m_lives == other.m_lives;
1459  }
1460 
1461  protected:
1462  effectKey(livesApp *lives, int key);
1463 
1464  private:
1465  int m_key;
1466  livesApp *m_lives;
1467 
1468  };
1469 
1470 
1471 
1479  friend livesApp;
1480  public:
1487  bool isValid() const;
1488 
1494  bool clear() const;
1495 
1504  effectKey at(int i) const;
1505 
1513  size_t size() const;
1514 
1518  inline bool operator==(const effectKeyMap& other) const {
1519  return other.m_lives == m_lives;
1520  }
1521 
1528  inline effectKey operator [] (int i) const {
1529  return effectKey(m_lives, i);
1530  }
1531 
1532 
1533  protected:
1534  effectKeyMap(livesApp *lives);
1535 
1536  private:
1537  livesApp *m_lives;
1538  };
1539 
1540 
1541 
1546  class effect {
1547  friend effectKey;
1548  friend multitrack;
1549  public:
1564  effect(const livesApp &lives, livesString hashname, bool match_full=false);
1565 
1581  effect(const livesApp &lives, livesString package, livesString fxname, livesString author=livesString(), int version=0);
1582 
1589  bool isValid() const;
1590 
1594  inline bool operator==(const effect& other) {
1595  return other.m_idx == m_idx && m_lives == other.m_lives;
1596  }
1597 
1598  protected:
1599  effect();
1600  effect(livesApp *m_lives, int idx);
1601  livesApp *m_lives;
1602  int m_idx;
1603 
1604  private:
1605 
1606  };
1607 
1608 
1609 
1615  class block {
1616  friend multitrack;
1617 
1618  public:
1619 
1626  bool isValid() const;
1627 
1635  block(multitrack m, int track, double time);
1636 
1642  double startTime();
1643 
1649  double length();
1650 
1656  clip clipSource();
1657 
1664  int track();
1665 
1675  bool remove();
1676 
1690  bool moveTo(int track, double time);
1691 
1692 
1693 
1694  protected:
1698  block(multitrack *m=NULL, ulong uid=0l);
1699 
1700 
1701  private:
1702  ulong m_uid;
1703  livesApp *m_lives;
1704 
1705  void invalidate();
1706  };
1707 
1708 
1709 
1714  class multitrack {
1715  friend livesApp;
1716  friend block;
1717 
1718  public:
1719 
1725  bool isValid() const;
1726 
1731  bool isActive() const;
1732 
1740  bool setCurrentTrack(int track) const;
1741 
1750  int currentTrack() const;
1751 
1762  double setCurrentTime(double time) const;
1763 
1774  double currentTime() const;
1775 
1782  livesString trackLabel(int track) const;
1783 
1793  bool setTrackLabel(int track, livesString label=livesString()) const;
1794 
1802  lives_gravity_t gravity() const;
1803 
1811  lives_gravity_t setGravity(lives_gravity_t mode) const;
1812 
1820  lives_insert_mode_t insertMode() const;
1821 
1829  lives_insert_mode_t setInsertMode(lives_insert_mode_t mode) const;
1830 
1831 
1837  int addVideoTrack(bool in_front) const;
1838 
1839 
1845  int numVideoTracks() const;
1846 
1847 
1852  int numAudioTracks() const;
1853 
1854 
1860  double FPS() const;
1861 
1886  block insertBlock(clip c, bool ignore_selection_limits=false, bool without_audio=false) const;
1887 
1897  livesString wipeLayout(bool force=false) const;
1898 
1906  livesString chooseLayout() const;
1907 
1914  livesStringList availableLayouts() const;
1915 
1928  bool reloadLayout(livesString filename) const;
1929 
1945  livesString saveLayout(livesString name) const;
1946 
1961  livesString saveLayout() const;
1962 
1973  clip render(bool render_audio=true, bool normalise_audio=true) const;
1974 
1983  effect autoTransition() const;
1984 
1992  bool disableAutoTransition() const;
1993 
2004  bool setAutoTransition(effect autotrans) const;
2005 
2009  inline bool operator==(const multitrack& other) const {
2010  return m_lives == other.m_lives;
2011  }
2012 
2013 
2014  protected:
2015  multitrack(livesApp *lives=NULL);
2016 
2021 
2022 
2023  };
2024 
2025 
2026 
2027 
2028 
2029 
2035  namespace prefs {
2040  livesString currentVideoLoadDir(const livesApp &lives);
2041 
2046  livesString currentAudioDir(const livesApp &lives);
2047 
2062  livesString tmpDir(const livesApp &lives);
2063 
2070 
2077  bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc);
2078 
2084 
2092  int audioPlayerRate(const livesApp &lives);
2093 
2099 
2104  int rteKeysVirtual(const livesApp &lives);
2105 
2110  double maxFPS(const livesApp &lives);
2111 
2117  bool audioFollowsVideoChanges(const livesApp &lives);
2118 
2124  bool audioFollowsFPSChanges(const livesApp &lives);
2125 
2132  bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting);
2133 
2140  bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting);
2141 
2148  bool sepWinSticky(const livesApp &lives);
2149 
2156  bool setSepWinSticky(const livesApp &lives, bool);
2157 
2164  bool mtExitRender(const livesApp &lives);
2165 
2173  bool setMtExitRender(const livesApp &lives, bool setting);
2174 
2175 
2176  }
2177 
2178 
2179 }
2180 
2181 #endif // __cplusplus
2182 
2183 #endif //HAS_LIBLIVES_H
class multitrack multitrack
typedef
Definition: liblives.hpp:280
livesString currentAudioDir(const livesApp &lives)
Definition: liblives.cpp:2248
application is processing, commands will be ignored
Definition: liblives.hpp:65
Abort button clicked.
Definition: liblives.hpp:137
livesString tmpDir(const livesApp &lives)
Despite the name, this is the working directory for the LiVES application.
Definition: liblives.cpp:2253
lives_audio_source_t
Audio sources.
Definition: liblives.hpp:150
Reset button clicked.
Definition: liblives.hpp:138
8 bit locale file encoding
Definition: liblives.hpp:118
class "livesApp".
Definition: liblives.hpp:413
bool sepWinSticky(const livesApp &lives)
Definition: liblives.cpp:2329
No button clicked.
Definition: liblives.hpp:143
application is playing, only player commands will be responded to
Definition: liblives.hpp:64
sent when interface mode changes
Definition: liblives.hpp:102
class "player".
Definition: liblives.hpp:1035
sent when livesApp object is deleted
Definition: liblives.hpp:104
multitrack mode
Definition: liblives.hpp:53
bool audioFollowsVideoChanges(const livesApp &lives)
Definition: liblives.cpp:2309
bool(* appQuit_callback_f)(livesApp *, appQuitInfo *, void *)
Type of callback function for LIVES_CALLBACK_APP_QUIT.
Definition: liblives.hpp:396
bool operator==(const effect &other)
Definition: liblives.hpp:1594
lives_interface_mode_t mode
mode changed to
Definition: liblives.hpp:362
file chooser options for single video or audio file
Definition: liblives.hpp:41
bool setMtExitRender(const livesApp &lives, bool setting)
Definition: liblives.cpp:2344
bool operator==(const player &other) const
Definition: liblives.hpp:1323
lives_filechooser_t
Filechooser hinting types.
Definition: liblives.hpp:40
Audio source is external to LiVES.
Definition: liblives.hpp:153
bool operator==(const clip &other)
Definition: liblives.hpp:895
class "multitrack".
Definition: liblives.hpp:1714
sent when app quits
Definition: liblives.hpp:93
clip editor mode
Definition: liblives.hpp:52
Unknown / invalid.
Definition: liblives.hpp:161
lives_endian_t
Endian values.
Definition: liblives.hpp:73
Audio playback is through PulseAudio.
Definition: liblives.hpp:162
lives_insert_mode_t
Multitrack insert modes.
Definition: liblives.hpp:174
bool operator==(const effectKey &other)
Definition: liblives.hpp:1457
livesString currentVideoLoadDir(const livesApp &lives)
Definition: liblives.cpp:2243
livesApp instance is invalid
Definition: liblives.hpp:61
class block block
typedef
Definition: liblives.hpp:286
bool(* modeChanged_callback_f)(livesApp *, modeChangedInfo *, void *)
Type of callback function for LIVES_CALLBACK_MODE_CHANGED.
Definition: liblives.hpp:389
double maxFPS(const livesApp &lives)
Definition: liblives.cpp:2304
bool setAudioFollowsFPSChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2324
int signum
signal which caused the app to exit, or 0 if the user or script quit normally.
Definition: liblives.hpp:370
file system encoding (UTF-8 on windows, local8bit on others)
Definition: liblives.hpp:119
int audioPlayerRate(const livesApp &lives)
Returns the audio rate for the player.
Definition: liblives.cpp:2278
Audio source is internal to LiVES.
Definition: liblives.hpp:152
class player player
typedef
Definition: liblives.hpp:274
sent when a frame is displayed
Definition: liblives.hpp:83
class "effectKey".
Definition: liblives.hpp:1344
Struct passed to appQuit callback.
Definition: liblives.hpp:369
lives_loop_mode_t
Player looping modes (bitmap)
Definition: liblives.hpp:194
class set set
typedef
Definition: liblives.hpp:248
list< livesString > livesStringList
typedef
Definition: liblives.hpp:298
lives_audio_player_t
Audio players.
Definition: liblives.hpp:160
Audio playback is through mplayer2.
Definition: liblives.hpp:166
sent after a clip is opened
Definition: liblives.hpp:95
class clip clip
typedef
Definition: liblives.hpp:253
Audio playback is through mplayer.
Definition: liblives.hpp:165
class "block".
Definition: liblives.hpp:1615
Yes button clicked.
Definition: liblives.hpp:142
application is ready for commands
Definition: liblives.hpp:63
class livesString livesString
typedef
Definition: liblives.hpp:292
inserted blocks gravitate to the left
Definition: liblives.hpp:185
sent after a clip set is opened
Definition: liblives.hpp:99
UTF-8 char encoding.
Definition: liblives.hpp:117
sent when a/v playback ends and there is recorded data for rendering/previewing
Definition: liblives.hpp:88
lives_dialog_response_t
Dialog response values.
Definition: liblives.hpp:131
#define LIVES_CHAR_ENCODING_DEFAULT
Default character encoding.
Definition: liblives.hpp:126
no looping
Definition: liblives.hpp:195
livesApp * m_lives
The linked LiVES application.
Definition: liblives.hpp:2020
user is previewing an operation, commands will be ignored
Definition: liblives.hpp:66
Unknown / invalid.
Definition: liblives.hpp:151
OK button clicked.
Definition: liblives.hpp:135
both video and audio loop continuously
Definition: liblives.hpp:196
Accept button clicked.
Definition: liblives.hpp:141
lives_callback_t
Callback types.
Definition: liblives.hpp:82
sent after a clip is closed
Definition: liblives.hpp:96
sent after a clip set is closed
Definition: liblives.hpp:100
class "set".
Definition: liblives.hpp:923
bool operator==(const set &other) const
Definition: liblives.hpp:1009
file chooser options for single audio file
Definition: liblives.hpp:42
bool isRealtimeAudioPlayer(lives_audio_player_t player_type)
Definition: liblives.cpp:2289
lives_char_encoding_t
Character encoding types.
Definition: liblives.hpp:116
livesApp instance is invalid
Definition: liblives.hpp:51
video keeps looping until audio playback finishes
Definition: liblives.hpp:197
bool audioFollowsFPSChanges(const livesApp &lives)
Definition: liblives.cpp:2314
class effect effect
typedef
Definition: liblives.hpp:268
bool operator==(const multitrack &other) const
Definition: liblives.hpp:2009
sent when record starts (TODO)
Definition: liblives.hpp:90
int rteKeysVirtual(const livesApp &lives)
Definition: liblives.cpp:2299
sent when a/v playback starts or clip is switched
Definition: liblives.hpp:84
lives_interface_mode_t
LiVES operation mode.
Definition: liblives.hpp:50
Retry button clicked.
Definition: liblives.hpp:136
class "clip".
Definition: liblives.hpp:700
unsigned long ulong
typedef
Definition: liblives.hpp:216
bool mtExitRender(const livesApp &lives)
Definition: liblives.cpp:2339
sent when record stops (TODO)
Definition: liblives.hpp:91
class "effectKeyMap".
Definition: liblives.hpp:1478
class effectKey effectKey
typedef
Definition: liblives.hpp:258
lives_status_t
LiVES operational status.
Definition: liblives.hpp:60
class "effect".
Definition: liblives.hpp:1546
Audio playback is through Sox.
Definition: liblives.hpp:164
lives_audio_source_t audioSource(const livesApp &lives)
Definition: liblives.cpp:2258
application is starting up; not ready
Definition: liblives.hpp:62
sent when a/v playback ends
Definition: liblives.hpp:85
class "livesString".
Definition: liblives.hpp:308
bool setAudioSource(const livesApp &lives, lives_audio_source_t asrc)
Set the audio source.
Definition: liblives.cpp:2264
bool operator==(const effectKeyMap &other) const
Definition: liblives.hpp:1518
class effectKeyMap effectKeyMap
typedef
Definition: liblives.hpp:263
Cancel button clicked.
Definition: liblives.hpp:140
Response not obtained.
Definition: liblives.hpp:134
Audio playback is thorugh Jack.
Definition: liblives.hpp:163
inserted blocks gravitate to the right
Definition: liblives.hpp:186
bool setSepWinSticky(const livesApp &lives, bool setting)
Definition: liblives.cpp:2334
bool(* objectDestroyed_callback_f)(livesApp *, void *)
Type of callback function for LIVES_CALLBACK_OBJECT_DESTROYED.
Definition: liblives.hpp:404
class livesApp livesApp
typedef
Definition: liblives.hpp:243
lives_audio_player_t audioPlayer(const livesApp &lives)
Definition: liblives.cpp:2269
Show details button clicked.
Definition: liblives.hpp:139
Struct passed to modeChanged callback.
Definition: liblives.hpp:361
lives_gravity_t
Multitrack gravity.
Definition: liblives.hpp:183
no gravity
Definition: liblives.hpp:184
INVALID response.
Definition: liblives.hpp:133
bool setAudioFollowsVideoChanges(const livesApp &lives, bool setting)
Definition: liblives.cpp:2319