7338c4e242
Add test for PBD::copy_file
...
From this I can see that PBD::copy_file is not working correctly on windows
as it is adding windows style line endings. Adding O_BINARY to ::open flags
would fix it, but perhaps there is a better way...
2014-06-25 12:40:11 -04:00
94d8dfa256
Add utility function to test lib to create a test directory
...
There is an identical function in libardour test support lib so we
should probably find a better place to put this at some point
2014-06-25 12:40:11 -04:00
3b1a98f0ec
Change PBD::get_files and PBD::get_paths to take a Searchpath instead of directory path
...
Both these functions use the internal function run_functor_for_paths
which takes a Searchpath so this avoids a temporary variable in cases
where a Searchpath is passed directly.
The usage is the same as the compiler will generate a temporary Searchpath
from a string(directory path) if necessary.
2014-06-25 12:40:11 -04:00
6d0cce528e
Add/Update docs in pbd/file_utils.h
2014-06-25 12:40:11 -04:00
851db83fc4
Use run_functor_for_paths in PBD::get_paths
2014-06-25 12:40:10 -04:00
04434f2b88
Rename PBD::get_files_in_directory to just PBD::get_files, change parameter order and fix docs
2014-06-25 12:40:10 -04:00
84d190b7cc
Rename PBD::get_directory_contents to PBD::get_paths
...
shorter name and change order of parameters to match other functions
2014-06-25 12:40:10 -04:00
26ec4038af
Use run_functor_for_paths in PBD::find_files_matching_pattern
2014-06-25 12:40:10 -04:00
24599c552d
Add function PBD::find_paths_matching_filter
2014-06-25 12:40:10 -04:00
54c0a0144c
Use run_functor_for_paths in PBD::find_files_matching_filter
2014-06-25 12:40:10 -04:00
e7141d2b80
Add function to file_utils intended to be used internally
2014-06-25 12:40:10 -04:00
ab6837665f
Add some debug output in file_utils.cc
2014-06-25 12:40:10 -04:00
e6c4b0e9e4
Remove reference to strtok_r now that it isn't used
2014-06-25 12:40:10 -04:00
a226068959
Change formatting of DEBUG_TRACE calls to match style guide
2014-06-25 12:40:10 -04:00
cb3a604936
Move functions in pbd/clear_dir.h/cc into pbd/file_utils.h/cc
2014-06-25 12:40:10 -04:00
257897392a
Add remove_directory_internal function and use it in PBD::clear_directory and PBD::remove_directory
2014-06-25 12:40:10 -04:00
64856a5862
Reimplement PBD::clear_dir using PBD::get_directory_contents
2014-06-25 12:40:10 -04:00
cd12698b9c
Rename PBD::find_file_in_search_path to just PBD::find_file
...
saves a bit of typing and not necessary if you look at how it is used.
2014-06-25 12:40:10 -04:00
8d0cba3384
Use PBD::find_files_matching_pattern instead of other variations
2014-06-25 12:40:10 -04:00
36fd67ab72
Add a variation of PBD::find_files_matching_pattern for convenience
2014-06-25 12:40:10 -04:00
077c09b105
Add new function PBD::find_files_matching_pattern
...
This new function is intended to replace the three existing
PBD::find_matching_files_* functions.
The order of parameters matches find_files_matching_regex and
find_files_matching_filter
2014-06-25 12:40:10 -04:00
d9a7d419b2
Change PBD::find_files_matching_regex and PBD::find_files_matching_filter to take a Searchpath
2014-06-25 12:40:10 -04:00
613162df6b
Reimplement PBD::find_files_matching_filter using SearchPath and get_directory_contents
2014-06-25 12:40:10 -04:00
56337eade4
Remove limit parameter from PBD::find_files_matching_regex
...
This limit was not used or documented. The same functionality can be
performed when iterating through the results.
2014-06-25 12:40:10 -04:00
0189ad7e29
Remove parameters from PBD::find_files_matching_regex
...
The only users of this API always used the same options so just remove
them.
2014-06-25 12:40:09 -04:00
769ee5c1f2
Change PBD::get_files_in_directory to return full paths in result
...
get_files_in_directory uses get_directory_contents internally now
2014-06-25 12:40:09 -04:00
d1dd5d3ee7
Add PBD::get_directory_contents to pbd/file_utils.h
2014-06-25 12:40:09 -04:00
592654936e
Remove (no longer needed) sources from an MSVC project
2014-06-19 11:49:51 +01:00
126ef72d05
Move the definition for 'strtok_r' (to avoid clashing with a different definition in pthread_win32)
2014-06-19 11:47:49 +01:00
3aa2a4ac8c
Remove PathScanner class from libpbd
2014-06-17 21:43:30 +10:00
547689a055
Replace all use of PathScanner with equivalent functions from pbd/file_utils.h
2014-06-17 21:41:29 +10:00
26285a3bc0
Add default arguments to match those in PathScanner::operator()
2014-06-17 21:29:41 +10:00
dc81ab8640
Move member functions from PathScanner to functions in pbd/file_utils.h
...
This allows us to remove PathScanner source file and keep PathScanner class
as header only until it is removed
2014-06-17 21:19:02 +10:00
ea5f9a8ea6
Move PathScanner::operator() into header
2014-06-17 21:14:13 +10:00
b457c938cd
Remove unused methods in PathScanner
...
Now that these methods are only a few lines it doesn't make much sense
to keep them seeing as they are unused. There are also functions with
near identical functionality in pbd/file_utils.h
2014-06-17 21:14:03 +10:00
cde8776e80
Rename PathScanner::run_scan_internal to PathScanner::find_files_matching_filter
2014-06-17 21:13:50 +10:00
3066bd48da
Remove PathScanner::run_scan and use PathScanner::run_scan_internal directly
2014-06-17 21:13:41 +10:00
f54092dada
Add PathScanner::find_files_matching_regex and move regexp usage to one place
2014-06-17 21:13:32 +10:00
f220d01132
Remove member filter argument from PathScanner methods and use normal filter for regex
...
Also use regfree to free memory of compiled patterns
2014-06-17 21:13:16 +10:00
0e96d84079
Change PBD::PathScanner API to return results by value to avoid inadvertent memory leaks
2014-06-17 21:13:05 +10:00
36be1a3a9b
plug some leaks
2014-06-15 13:24:41 +02:00
12cf9d5be8
fix pathscanner / stl_vector related memory leaks
2014-06-15 13:24:39 +02:00
62ba8d23e3
tracking down concurrency issus is fun.
2014-06-14 16:38:47 +02:00
f0dbd6c085
Export dialog: tidy code, & remove some superfluous debug output
...
Remove some debug output, tidy up a few whitespace inconsistencies, use
DEBUG::Soundcloud in one more place, and zap a couple of unused variables.
2014-06-12 23:20:05 +01:00
724a69a8d5
Search $PATH for command when creating SystemExec from command line
...
When creating a SystemExec from a command-line, search $PATH for the
command to execute, so that post-export hooks don't need to specify a full
path.
2014-06-12 23:20:05 +01:00
915bb2f641
close dir opened with opendir() - fixes accumulated fd for plugin state saves
2014-06-10 02:21:22 +02:00
3813c7afae
increase system-exec timeouts for kill.
2014-06-05 02:22:13 +02:00
7f18913e6d
fix errors in manual conflict resolution
2014-06-02 11:42:35 -04:00
8c9749e42f
merge with master and fix 4 conflicts by hand
2014-06-02 11:32:13 -04:00
bc8ccea212
remove debug output from system_exec
...
remove the debug output from pbd/system_exec: it's of no further use, and
also breaks optimised builds.
2014-05-19 22:49:22 +01:00
0de7c8920b
Merge branch 'mingw-updates' of https://github.com/mojofunk/ardour into cairocanvas
2014-05-19 17:19:43 -04:00
5399425f53
Merge branch 'export-dialog' into cairocanvas
...
Fix merge conflicts in:
gtk2_ardour/export_range_markers_dialog.cc
gtk2_ardour/wscript
libs/ardour/ardour/export_handler.h
libs/ardour/system_exec.cc
libs/pbd/pbd/system_exec.h
libs/pbd/system_exec.cc
2014-05-19 20:54:36 +01:00
7c4259133d
SystemExec: copy last argument from command line to argv[]
...
Make sure to copy any part of the command line after the last delimiter
to argv[] when creating a SystemExec with an escaped command line.
2014-05-18 20:49:58 +01:00
e4442b45cf
Use COMPILER_MINGW define rather than __MINGW64__
...
This is necessary to build with win32 target using mingw-w64 version
on Fedora 19
2014-05-14 09:47:40 +10:00
86a0f10ac7
Reinstate code removed that allows building with mingw and the pthreads-win32 library
...
Newer versions of mingw-w64 can be built with an included pthread implementation
called winpthreads which uses an integer type for pthread_t but pthreads-win32 does
not.
2014-05-14 09:47:40 +10:00
b895a8f631
Always link to ole32 when building with mingw for get_win_special_folder
...
needed for CoTaskMemFree in get_win_special_folder
2014-05-14 09:47:40 +10:00
8d0ec2403f
Add a couple of pthread helper macros
...
(to accommodate the fact that in ptw-win32, 'pthread_t' is subtlely different from its non-Windows counterparts)
2014-05-06 09:31:11 +01:00
058986f77b
finish unfinished work at basing all install paths on the program name
2014-04-28 21:11:08 -04:00
f31c84a742
close stdin as first attempt to terminate process cleanly.
2014-04-20 23:02:32 +02:00
3552c17b91
fix SystemExec for windows
2014-04-20 02:51:27 +02:00
396fae31a9
Make sure that the input string doesn't go out of scope when using boost::tokenizer
2014-04-14 20:26:48 +01:00
99bf5d9eed
backport 1d85ab27a7
and ba128eea
from cairocanvas branch to remove GIO (possible hotfix release)
2014-04-14 12:53:30 -04:00
5d9c2104d2
Oops - correct some typos in my previous commit
...
(accidentally used G_DIR_SEPARATOR instead of G_SEARCHPATH_SEPARATOR)
2014-04-11 15:36:04 +01:00
d95de39339
Make sure we use the correct style of filepath separator on Windows
...
('libs/ardour/file_source.cc' still to be investigated)
2014-04-11 13:03:48 +01:00
c046b7c9d3
Remove 'pipex' from my pbd.vcproj as it's not needed for Ardour3
2014-04-11 12:59:03 +01:00
077a194430
Add the main VC project files for building Ardour3 with Microsoft Visual Studio
...
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
3e7fad52f5
fix conceptual error/thinko in EnvironmentalProtectionAgency when using unsetenv() while iterating over char** environ
2014-04-04 15:25:56 -04:00
6f3ebba3b6
comment tweak
2014-03-24 19:46:07 -04:00
87184ab80d
fix a race condition between the death of a thread that communicates with an UI event loop and the event loop itself.
...
The comment tries to explain it all. There may be a better solution, but I believe that this one is
(a) safe (b) better than the old approach.
2014-03-24 17:47:56 -04:00
ba128eea50
replace use of Gio:: for plugin state
2014-03-22 17:42:26 +01:00
1d85ab27a7
replace use of Gio:: with primitives (fix for #5889 part 1)
2014-03-22 17:42:26 +01:00
543099afba
rework SystemExec - use vfork wrapper (and lots of related stuff)
2014-03-13 16:58:07 +01:00
f15932a5c2
fix #ifdef in localtime_r header (from Valeriy)
2014-03-12 09:39:16 -04:00
d52eb5bf23
A few days ago a #define got changed because the relevant section of code was no longer needed when building with mingw. However, it's not needed for msvc either (in fact, msvc won't compile it) so hopefully, the code fragment can be safely removed
2014-03-12 13:22:25 +00:00
f6129ed0f4
prototype vfork exec-wrapper.
2014-03-11 15:48:41 +01:00
495c0de4ac
fix up waf build in wake of search path changes earlier today
2014-03-10 17:30:12 -04:00
b6a9bf5d04
add PBD::downcase() functions to libpbd
2014-03-10 17:30:12 -04:00
07d5a389fa
add missing include to define LIBPBD_API (mingw build)
2014-03-09 21:05:17 +01:00
944c32346b
Add a couple of visibility specifiers that were missing
2014-03-08 11:29:52 +00:00
c7bc009b30
Use LIBPBD_TEMPLATE_API and LIBPBD_TEMPLATE_MEMBER_API where appropriate
2014-03-08 11:28:54 +00:00
912f07b919
mingw build fixes (tested with i686-w64-mingw32 on linux-x86_64)
2014-03-04 15:25:58 +01:00
43421f0b46
minor fix for libpbd wscript on windows
2014-03-03 10:31:53 -05:00
8040df1897
move export_search_path(), previously in gtk2_ardour/main.cc, into libs/pbd
2014-03-02 11:25:54 -05:00
b8419ae7cd
use "new" VST search path code and adjust build system to reflect new source files
2014-03-02 10:53:25 -05:00
8ba449bc4e
remove fallback_folders code, add simpler more focused get_vst_search_path() and breakout get_win_special_folder() into its own file
2014-03-02 10:52:52 -05:00
c10e11eca5
for windows build, add fallback_folders.cc to libpbd source list
2014-03-01 22:47:19 -05:00
fc88eaf392
add likely stub code for adding linkage to libole when building libpbd on windows.
...
I may have gotten the precise linkflags string incorrect, but this my best guess.
2014-03-01 22:44:56 -05:00
fd64bba1de
add -DPROGRAM_NAME to libpbd compile flags
2014-03-01 22:43:46 -05:00
08c89809ee
REALLY REALLY CORRECT template export macros for libpbd
2014-03-01 22:31:47 -05:00
dbd89ed49d
REALLY CORRECT template export macros for libpbd
2014-03-01 18:59:44 -05:00
c1a540f34e
use template export forms for MemementoCommand
2014-03-01 18:59:37 -05:00
9526fef902
CORRECT template export macros for libpbd
2014-03-01 18:58:41 -05:00
9f121fac81
add template export macros for libpbd
2014-03-01 18:57:36 -05:00
db92e79deb
fix use of export macros to work with mingw(64). Template issues with msvc will require a different solution (if they exist)
2014-03-01 18:53:55 -05:00
a72482af09
fix use of export macros to work with mingw(64)
2014-03-01 18:53:26 -05:00
3e2ac89d22
fix correct export macro guard in libpbd for mingw64
2014-03-01 18:33:31 -05:00
19395ac258
when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control
2014-03-01 15:16:39 -05:00
3cf5dcb64c
move Paths Dialog to libgtkmm2ext
2014-02-28 00:05:47 +01:00
f8ec1d1f27
glib only allows <glib.h> these days; typedef enum in C++ code is redundant
2014-02-27 09:23:07 -05:00
ce32d5f17b
make PBD's path-scanner OS agnostic (use glib)
2014-02-26 18:07:45 +01:00
cfa94aeccc
fix system-exec (wait for app to start)
2014-02-25 14:57:57 +01:00
1d39cf7543
move SystemExec to libpbd
2014-02-19 03:38:43 +01:00
3eeaec5608
use boost::uuids method to get a string from a boost UUID
2014-02-17 15:29:18 -05:00
89d5be353a
equivalent change to realpath() error return as was done in master rev 60a9213035
2014-02-07 18:49:51 -05:00
5062a00c7d
move -fvisibility=hidden to the top of the source tree, and remove its internal use; use libtimecode as a shared lib again
2014-01-12 15:40:47 -05:00
658bb3ccd4
finished merge of cairocanvas with windows and windows+cc branches
2014-01-10 17:11:10 -05:00
3020b224fa
Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there
2014-01-10 16:07:57 -05:00
52003be369
Merge remote-tracking branch 'origin/master' into export-dialog
...
Fix conflicts in:
gtk2_ardour/export_dialog.cc
gtk2_ardour/export_dialog.h
libs/ardour/export_handler.cc
2014-01-08 15:50:34 +00:00
dfec88e1a3
add proper namespace to PBD::demangle for systems without execinfo
2013-12-29 13:59:37 -05:00
b0e4f81eb3
merge exportvis branch into cairocanvas, to reduce the number of "floating" branches.
...
Still need to add API export/visibility macros for the canvas library.
2013-12-27 14:29:06 -05:00
b1231696ca
Mingw64 has pthread_t available, and does not need a thread ID comparison function
2013-12-19 13:04:04 -05:00
dc60753dde
Use correct header include for _fullpath
...
According to http://msdn.microsoft.com/en-us/library/506720ff(v=vs.120).aspx
2013-12-07 20:48:02 +10:00
a7961f04cf
fix error in mingw version of realpath()
2013-12-05 17:43:15 -05:00
ef2c1ff92f
add (likely, partial) windows implementation of POSIX realpath() for COMPILER_MINGW where the latter is not available, to the only place realpath() is used
2013-12-05 17:40:21 -05:00
e0cc10540d
extra source no longer required
2013-12-05 17:24:39 -05:00
bab60c2e8c
we don't use realpath() anymore so there is need for a special mingw include
2013-12-05 17:23:18 -05:00
c0e5506994
we don't use realpath() anymore so there is need for a special mingw include
2013-12-05 17:21:50 -05:00
8970446d7e
additional source file for mingw build
2013-12-05 14:48:45 -05:00
597c9c9b25
make mingw-based pthread comparison function work with both 32 and 64 bit variants of mingw
2013-12-05 14:46:40 -05:00
b7835cd7b1
workaround compilation issues with assembler in fpu code and mingw
2013-12-05 14:45:17 -05:00
3a885d6177
Only use __declspec(dllimport/dllexport) for MSVC compiler
...
Use the gcc visibility attributes when building with the MinGW compiler(gcc).
GCC also supports the __declspec syntax but it will not compile at the moment
until the issues(which may not even be exactly the same issues as with MSVC)
are resolved.
2013-12-05 21:11:18 +10:00
6bd36896e7
'libs/pbd' - DLL visibility stuff and associated changes needed for building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date)
2013-12-01 14:26:08 +00:00
0cca272431
try to fix various warnings from gcc when optimization flags are enabled
2013-11-04 21:32:41 -05:00
f85c67501c
reverse the visibility.h files assumptions that we don't build shared libs by default
...
This avoids having to define define LIBFOO_DLL=1 all over the place. If we ever go with static libs we will
need to define LIBFOO_STATIC=1 but hopefully in some central location like the top level wscript.
Oh, and I also dropped support for gcc older than version 4.x because ardour will already not build
on such an old version.
2013-10-18 11:50:44 -04:00
b855e5f322
Merge remote-tracking branch 'remotes/origin/exportvis' into windows+cc
...
Conflicts (hopefully resolved):
gtk2_ardour/wscript
libs/ardour/ardour/audioregion.h
libs/ardour/ardour/debug.h
libs/ardour/ardour/directory_names.h
libs/ardour/ardour/filesystem_paths.h
libs/ardour/ardour/session_event.h
libs/gtkmm2ext/gtkmm2ext/utils.h
libs/panners/1in2out/wscript
libs/panners/2in2out/wscript
libs/panners/vbap/wscript
libs/pbd/pbd/debug.h
libs/pbd/pbd/file_utils.h
libs/pbd/pbd/pathexpand.h
libs/pbd/pbd/ringbuffer.h
libs/pbd/pbd/ringbufferNPT.h
libs/pbd/pbd/search_path.h
libs/pbd/pbd/stacktrace.h
libs/pbd/pbd/uuid.h
libs/pbd/pbd/uuid_boost.h
libs/surfaces/control_protocol/control_protocol/basic_ui.h
libs/surfaces/control_protocol/control_protocol/control_protocol.h
2013-10-18 10:03:22 +01:00
2fab8182cc
add -fvisibility=hidden to libgtkmm2ext, and make things work
2013-10-17 14:36:41 -04:00
2eabeebdc5
add -fvisibility=hidden to libpbd, and make things work
2013-10-17 13:51:02 -04:00
f3d2ca0d9a
get everything compiling with libardour built using -fvisibility=hidden
2013-10-17 12:41:28 -04:00
24d2b5ec92
add export visibility macros across libardour
2013-10-17 10:02:11 -04:00
c5115c9a3c
add export visibility control to libpbd (works thus far on linux/gcc)
2013-10-16 23:30:28 -04:00
e5888d3983
merge with master and fix 2 conflicts
2013-10-16 22:06:56 -04:00
97c68cc2b1
Merge branch 'windows' into windows+cc
...
Conflicts (hopefully resolved):
libs/pbd/stacktrace.cc
2013-10-15 17:38:08 +01:00
69a8fc43e2
Merge branch 'master' into windows
2013-10-15 11:17:12 -04:00
8a76441b0f
re-fix typo in PBD::demangle() for systems without execinfo.h
2013-10-15 10:52:29 -04:00
a29b83c124
fix namespace issue with demangle on systems without execinfo.h
2013-10-15 10:41:42 -04:00
89738cc3c2
fix typo in PBD::demangle() for systems without execinfo.h
2013-10-15 10:33:03 -04:00
e466ce40ad
Merge branch 'master' into windows+cc
...
Conflicts (hopefully resolved):
gtk2_ardour/ardour_ui.cc
2013-10-14 19:31:22 +01:00
4fac237fdc
'PBD::demangle()' - Minor modification to keep MSVC happy
2013-10-14 17:40:15 +01:00
b5f36f5788
fix up parsing of send gain MIDI bindings so that they actually work
2013-10-10 16:16:59 -04:00
e1562961c0
Add command-line parsing constructor to SystemExec
...
Add a new constructor to SystemExec which takes a complete command-line
and a map of substitutions for %<char>, and parses the command line,
taking account of some simple escape sequences and quoting.
2013-10-10 19:50:21 +01:00
2a6a16f980
merge with master, fixing conflicts in 3 wscript files
2013-10-09 14:00:42 -04:00
070bb7a8ab
Move system_exec from gtk2_ardour/ to libs/pbd/
2013-10-07 21:16:42 +01:00
300b484cf6
Merge branch 'master' into windows+cc
...
Conflicts (hopefully resolved):
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_options.cc
2013-10-06 11:56:03 +01:00
3aee160b19
provide PBD::demangle() even on platforms without HAVE_EXECINFO
2013-10-04 12:22:00 -04:00
19bb2b33a8
Merge remote-tracking branch 'remotes/origin/cairocanvas' into windows
...
Conflicts (hopefully resolved):
gtk2_ardour/marker.cc
gtk2_ardour/midi_region_view.h
gtk2_ardour/region_gain_line.h
gtk2_ardour/utils.cc
gtk2_ardour/video_image_frame.cc
gtk2_ardour/wscript
libs/backends/jack/wscript
2013-09-21 09:17:25 +01:00
7a30e63eaa
fix merge conflicts with master
2013-09-14 16:42:40 -04:00
8ddd12a60d
Rename SearchPath class Searchpath
...
Windows headers define SearchPath which means we have to undefine it
where necessary. This is a pain and can be tricksy, so I feel renaming
the class slightly is the easiest solution.
2013-09-06 14:31:11 +10:00
060c56cc3f
Minor tweaks to MSVC build (hopefully of little consequence)
2013-08-26 17:50:17 +01:00
ee1b49f87e
fix merge conflicts from master
2013-08-24 12:18:06 -04:00
04bf9d1e95
fix newly-appearing crash-at-close caused by muddled thinking in pbd/pthread_utils
...
threads created with this code can now just return a value as they normally would, and the
infrastructure will ensure cleanup. there is no longer any reason to call pthread_exit_pbd()
and so that has been removed.
2013-08-15 11:44:47 -04:00