mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Smart Pointers: Add a new enum for indicating if a smart point should increment a reference count or not
This commit is contained in:
parent
8931d45fe9
commit
e68627c9ed
68 changed files with 243 additions and 160 deletions
|
|
@ -1087,6 +1087,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
@ -3796,6 +3797,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
|
|||
|
|
@ -3936,6 +3936,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -6027,6 +6027,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3936,6 +3936,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -6027,6 +6027,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3936,6 +3936,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -6027,6 +6027,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -946,6 +946,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
@ -3269,6 +3270,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
|
|||
|
|
@ -3402,6 +3402,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5145,6 +5145,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3402,6 +3402,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5145,6 +5145,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -979,6 +979,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
@ -3455,6 +3456,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
|
|||
|
|
@ -3582,6 +3582,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5421,6 +5421,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3582,6 +3582,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5421,6 +5421,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3582,6 +3582,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5421,6 +5421,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -539,6 +539,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -549,6 +549,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -539,6 +539,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -549,6 +549,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -950,6 +950,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
@ -3353,6 +3354,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_core/containers/juce_Variant.cpp"
|
||||
"../../../../../modules/juce_core/containers/juce_Variant.h"
|
||||
"../../../../../modules/juce_core/detail/juce_CallbackListenerList.h"
|
||||
"../../../../../modules/juce_core/detail/juce_IncrementRef.h"
|
||||
"../../../../../modules/juce_core/detail/juce_LruCache.h"
|
||||
"../../../../../modules/juce_core/detail/juce_NativeFileHandle.h"
|
||||
"../../../../../modules/juce_core/files/juce_AndroidDocument.h"
|
||||
|
|
|
|||
|
|
@ -3493,6 +3493,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5286,6 +5286,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3493,6 +3493,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5286,6 +5286,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -2115,6 +2115,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -2775,6 +2775,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -2115,6 +2115,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -2775,6 +2775,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -2115,6 +2115,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -2775,6 +2775,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3694,6 +3694,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5580,6 +5580,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3694,6 +3694,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5580,6 +5580,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3694,6 +3694,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5580,6 +5580,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3469,6 +3469,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5253,6 +5253,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -3469,6 +3469,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_SparseSet.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_Variant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_NativeFileHandle.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_AndroidDocument.h"/>
|
||||
|
|
|
|||
|
|
@ -5253,6 +5253,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_CallbackListenerList.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_IncrementRef.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\detail\juce_LruCache.h">
|
||||
<Filter>JUCE Modules\juce_core\detail</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -606,7 +606,7 @@ private:
|
|||
if (audioSessionControl == nullptr)
|
||||
return;
|
||||
|
||||
sessionEventCallback = becomeComSmartPtrOwner (new SessionEventCallback (*this));
|
||||
sessionEventCallback = ComSmartPtr { new SessionEventCallback (*this), IncrementRef::no };
|
||||
audioSessionControl->RegisterAudioSessionNotification (sessionEventCallback);
|
||||
}
|
||||
|
||||
|
|
@ -1897,7 +1897,7 @@ private:
|
|||
if (! check (enumerator.CoCreateInstance (__uuidof (MMDeviceEnumerator))))
|
||||
return {};
|
||||
|
||||
notifyClient = becomeComSmartPtrOwner (new ChangeNotificationClient (this));
|
||||
notifyClient = ComSmartPtr (new ChangeNotificationClient (this), IncrementRef::no);
|
||||
enumerator->RegisterEndpointNotificationCallback (notifyClient);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -153,7 +153,10 @@ public:
|
|||
HRESULT hr = wmCreateSyncReader (nullptr, WMT_RIGHT_PLAYBACK, wmSyncReader.resetAndGetPointerAddress());
|
||||
|
||||
if (SUCCEEDED (hr))
|
||||
hr = wmSyncReader->OpenStream (becomeComSmartPtrOwner (new JuceIStream (*input)));
|
||||
{
|
||||
hr = wmSyncReader->OpenStream (ComSmartPtr { new JuceIStream (*input),
|
||||
IncrementRef::no });
|
||||
}
|
||||
|
||||
if (SUCCEEDED (hr))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
|||
#include "JucePluginDefines.h"
|
||||
#endif
|
||||
|
||||
#include <juce_core/detail/juce_IncrementRef.h>
|
||||
#include <juce_audio_processors_headless/format_types/juce_VST3Utilities.h>
|
||||
#include <juce_audio_processors_headless/utilities/juce_VST3Interface.h>
|
||||
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ public:
|
|||
{
|
||||
if (doUIDsMatch (entry.infoW.cid, cid))
|
||||
{
|
||||
if (auto instance = becomeVSTComSmartPtrOwner (createInstance (entry)))
|
||||
if (VSTComSmartPtr instance { createInstance (entry), IncrementRef::no })
|
||||
{
|
||||
if (instance->queryInterface (iidToQuery, obj) == Steinberg::kResultOk)
|
||||
return Steinberg::kResultOk;
|
||||
|
|
|
|||
|
|
@ -1231,7 +1231,7 @@ public:
|
|||
void setAudioProcessor (JuceAudioProcessor* audioProc)
|
||||
{
|
||||
if (audioProcessor.get() != audioProc)
|
||||
installAudioProcessor (addVSTComSmartPtrOwner (audioProc));
|
||||
installAudioProcessor ({ audioProc, IncrementRef::yes });
|
||||
}
|
||||
|
||||
tresult PLUGIN_API connect (IConnectionPoint* other) override
|
||||
|
|
@ -1794,7 +1794,7 @@ private:
|
|||
{
|
||||
jassert (hostContext != nullptr);
|
||||
|
||||
if (auto message = becomeVSTComSmartPtrOwner (allocateMessage()))
|
||||
if (VSTComSmartPtr message { allocateMessage(), IncrementRef::no })
|
||||
{
|
||||
message->setMessageID (idTag);
|
||||
message->getAttributes()->setInt (idTag, value);
|
||||
|
|
@ -1912,7 +1912,7 @@ private:
|
|||
return {};
|
||||
|
||||
const auto idToUse = parameter != nullptr ? processor.getVSTParamIDForIndex (parameter->getParameterIndex()) : 0;
|
||||
const auto menu = becomeVSTComSmartPtrOwner (handler->createContextMenu (view, &idToUse));
|
||||
VSTComSmartPtr menu { handler->createContextMenu (view, &idToUse), IncrementRef::no };
|
||||
return std::make_unique<EditorContextMenu> (editor, menu);
|
||||
}
|
||||
|
||||
|
|
@ -1932,7 +1932,7 @@ private:
|
|||
public:
|
||||
JuceVST3Editor (JuceVST3EditController& ec, JuceAudioProcessor& p)
|
||||
: EditorView (&ec, nullptr),
|
||||
owner (addVSTComSmartPtrOwner (&ec)),
|
||||
owner (&ec, IncrementRef::yes),
|
||||
pluginInstance (*p.get())
|
||||
{
|
||||
createContentWrapperComponentIfNeeded();
|
||||
|
|
@ -2689,7 +2689,7 @@ public:
|
|||
// and not AudioChannelSet::discreteChannels (2) etc.
|
||||
jassert (checkBusFormatsAreNotDiscrete());
|
||||
|
||||
comPluginInstance = addVSTComSmartPtrOwner (new JuceAudioProcessor (pluginInstance));
|
||||
comPluginInstance = VSTComSmartPtr (new JuceAudioProcessor (pluginInstance), IncrementRef::yes);
|
||||
|
||||
zerostruct (processContext);
|
||||
|
||||
|
|
@ -2780,7 +2780,8 @@ public:
|
|||
|
||||
if (message->getAttributes()->getInt ("JuceVST3EditController", value) == kResultTrue)
|
||||
{
|
||||
juceVST3EditController = addVSTComSmartPtrOwner ((JuceVST3EditController*) (pointer_sized_int) value);
|
||||
juceVST3EditController = VSTComSmartPtr ((JuceVST3EditController*) (pointer_sized_int) value,
|
||||
IncrementRef::yes);
|
||||
|
||||
if (juceVST3EditController != nullptr)
|
||||
juceVST3EditController->setAudioProcessor (comPluginInstance.get());
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ private:
|
|||
|
||||
ItemAndTarget newItem;
|
||||
newItem.item = item;
|
||||
newItem.target = addVSTComSmartPtrOwner (target);
|
||||
newItem.target = VSTComSmartPtr (target, IncrementRef::yes);
|
||||
|
||||
items.add (newItem);
|
||||
return kResultOk;
|
||||
|
|
@ -180,7 +180,9 @@ private:
|
|||
// Unfortunately, Steinberg's docs explicitly say this should be modal..
|
||||
handleResult (topLevelMenu->showMenu (options));
|
||||
#else
|
||||
topLevelMenu->showMenuAsync (options, ModalCallbackFunction::create (menuFinished, addVSTComSmartPtrOwner (this)));
|
||||
topLevelMenu->showMenuAsync (options,
|
||||
ModalCallbackFunction::create (menuFinished,
|
||||
VSTComSmartPtr (this, IncrementRef::yes)));
|
||||
#endif
|
||||
|
||||
return kResultOk;
|
||||
|
|
@ -616,13 +618,13 @@ public:
|
|||
if (getActiveEditor() != nullptr)
|
||||
return true;
|
||||
|
||||
auto view = becomeVSTComSmartPtrOwner (tryCreatingView());
|
||||
VSTComSmartPtr view { tryCreatingView(), IncrementRef::no };
|
||||
return view != nullptr;
|
||||
}
|
||||
|
||||
VST3PluginWindow* createEditor() override
|
||||
{
|
||||
if (auto view = becomeVSTComSmartPtrOwner (tryCreatingView()))
|
||||
if (VSTComSmartPtr view { tryCreatingView(), IncrementRef::no })
|
||||
return new VST3PluginWindow (this, view);
|
||||
|
||||
return nullptr;
|
||||
|
|
@ -635,7 +637,7 @@ void VST3PluginFormat::createPluginInstance (const PluginDescription& descriptio
|
|||
PluginCreationCallback callback)
|
||||
{
|
||||
createVst3InstanceImpl<VST3PluginInstance> (*this,
|
||||
becomeVSTComSmartPtrOwner (new VST3HostContextWithContextMenu),
|
||||
{ new VST3HostContextWithContextMenu, IncrementRef::no },
|
||||
description,
|
||||
callback);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ void VST3PluginFormatHeadless::findAllTypesForFile (OwnedArray<PluginDescription
|
|||
if (pluginFactory == nullptr)
|
||||
continue;
|
||||
|
||||
auto host = addVSTComSmartPtrOwner (new VST3HostContextHeadless());
|
||||
VSTComSmartPtr host { new VST3HostContextHeadless(), IncrementRef::yes };
|
||||
|
||||
for (const auto& d : DescriptionLister::findDescriptionsSlow (*host, *pluginFactory, File (file)))
|
||||
results.add (new PluginDescription (d));
|
||||
|
|
@ -111,7 +111,7 @@ void VST3PluginFormatHeadless::createPluginInstance (const PluginDescription& de
|
|||
PluginCreationCallback callback)
|
||||
{
|
||||
createVst3InstanceImpl<VST3PluginInstanceHeadless> (*this,
|
||||
becomeVSTComSmartPtrOwner (new VST3HostContextHeadless),
|
||||
{ new VST3HostContextHeadless(), IncrementRef::no },
|
||||
description,
|
||||
callback);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1096,7 +1096,7 @@ struct DLLHandle
|
|||
{
|
||||
if (factory == nullptr)
|
||||
if (auto* proc = (GetFactoryProc) getFunction (factoryFnName))
|
||||
factory = becomeVSTComSmartPtrOwner (proc());
|
||||
factory = VSTComSmartPtr (proc(), IncrementRef::no);
|
||||
|
||||
// The plugin NEEDS to provide a factory to be able to be called a VST3!
|
||||
// Most likely you are trying to load a 32-bit VST3 from a 64-bit host
|
||||
|
|
@ -1887,7 +1887,9 @@ class ParameterChanges final : public Vst::IParameterChanges
|
|||
|
||||
struct Entry
|
||||
{
|
||||
explicit Entry (std::unique_ptr<Queue> queue) : ptr (addVSTComSmartPtrOwner (queue.release())) {}
|
||||
explicit Entry (std::unique_ptr<Queue> queue)
|
||||
: ptr (queue.release(), IncrementRef::yes)
|
||||
{}
|
||||
|
||||
VSTComSmartPtr<Queue> ptr;
|
||||
Steinberg::int32 index = notInVector;
|
||||
|
|
@ -2632,7 +2634,7 @@ public:
|
|||
{
|
||||
if (trackInfoListener != nullptr)
|
||||
{
|
||||
auto l = addVSTComSmartPtrOwner (new TrackPropertiesAttributeList (properties));
|
||||
VSTComSmartPtr l { new TrackPropertiesAttributeList (properties), IncrementRef::yes };
|
||||
trackInfoListener->setChannelContextInfos (l.get());
|
||||
}
|
||||
}
|
||||
|
|
@ -2886,7 +2888,7 @@ public:
|
|||
|
||||
MemoryBlock getStateForPresetFile() const
|
||||
{
|
||||
auto memoryStream = becomeVSTComSmartPtrOwner (new MemoryStream());
|
||||
VSTComSmartPtr memoryStream { new MemoryStream(), IncrementRef::no };
|
||||
|
||||
if (memoryStream == nullptr || holder->component == nullptr)
|
||||
return {};
|
||||
|
|
@ -2905,7 +2907,8 @@ public:
|
|||
bool setStateFromPresetFile (const MemoryBlock& rawData) const
|
||||
{
|
||||
auto rawDataCopy = rawData;
|
||||
auto memoryStream = becomeVSTComSmartPtrOwner (new MemoryStream (rawDataCopy.getData(), (int) rawDataCopy.getSize()));
|
||||
VSTComSmartPtr memoryStream { new MemoryStream (rawDataCopy.getData(), (int) rawDataCopy.getSize()),
|
||||
IncrementRef::no };
|
||||
|
||||
if (memoryStream == nullptr || holder->component == nullptr)
|
||||
return false;
|
||||
|
|
@ -3042,7 +3045,7 @@ private:
|
|||
|
||||
if (mem.fromBase64Encoding (state->getAllSubText()))
|
||||
{
|
||||
auto stream = becomeVSTComSmartPtrOwner (new MemoryStream());
|
||||
VSTComSmartPtr stream { new MemoryStream(), IncrementRef::no };
|
||||
stream->setSize ((TSize) mem.getSize());
|
||||
mem.copyTo (stream->getData(), 0, mem.getSize());
|
||||
return stream;
|
||||
|
|
@ -3053,10 +3056,20 @@ private:
|
|||
}
|
||||
|
||||
CachedParamValues cachedParamValues;
|
||||
VSTComSmartPtr<ParameterChanges<HostToClientParamQueue>> inputParameterChanges = addVSTComSmartPtrOwner (new ParameterChanges<HostToClientParamQueue>);
|
||||
VSTComSmartPtr<ParameterChanges<ClientToHostParamQueue>> outputParameterChanges = addVSTComSmartPtrOwner (new ParameterChanges<ClientToHostParamQueue>);
|
||||
VSTComSmartPtr<MidiEventList> midiInputs = addVSTComSmartPtrOwner (new MidiEventList);
|
||||
VSTComSmartPtr<MidiEventList> midiOutputs = addVSTComSmartPtrOwner (new MidiEventList);
|
||||
VSTComSmartPtr<ParameterChanges<HostToClientParamQueue>> inputParameterChanges
|
||||
{
|
||||
new ParameterChanges<HostToClientParamQueue>,
|
||||
IncrementRef::yes
|
||||
};
|
||||
|
||||
VSTComSmartPtr<ParameterChanges<ClientToHostParamQueue>> outputParameterChanges
|
||||
{
|
||||
new ParameterChanges<ClientToHostParamQueue>,
|
||||
IncrementRef::yes
|
||||
};
|
||||
|
||||
VSTComSmartPtr<MidiEventList> midiInputs { new MidiEventList, IncrementRef::yes };
|
||||
VSTComSmartPtr<MidiEventList> midiOutputs { new MidiEventList, IncrementRef::yes };
|
||||
Vst::ProcessContext timingInfo; //< Only use this in processBlock()!
|
||||
bool isControllerInitialised = false, isActive = false, lastProcessBlockCallWasBypass = false;
|
||||
const bool hasMidiInput = getNumSingleDirectionBusesFor (holder->component.get(), MediaKind::event, Direction::input) > 0,
|
||||
|
|
|
|||
|
|
@ -173,8 +173,15 @@ public:
|
|||
source->release();
|
||||
}
|
||||
|
||||
VSTComSmartPtr (ObjectType* object, IncrementRef incrementRefCount) noexcept
|
||||
: source (object)
|
||||
{
|
||||
if (source != nullptr && incrementRefCount == IncrementRef::yes)
|
||||
source->addRef();
|
||||
}
|
||||
|
||||
VSTComSmartPtr (const VSTComSmartPtr& other) noexcept
|
||||
: VSTComSmartPtr (other.get(), true) {}
|
||||
: VSTComSmartPtr (other.get(), IncrementRef::yes) {}
|
||||
|
||||
template <typename Other, std::enable_if_t<! std::is_same_v<Other, ObjectType>, int> = 0>
|
||||
VSTComSmartPtr (const VSTComSmartPtr<Other>& other) noexcept
|
||||
|
|
@ -219,43 +226,10 @@ public:
|
|||
return factory->createInstance (uuid, ObjectType::iid, (void**) &source) == Steinberg::kResultOk;
|
||||
}
|
||||
|
||||
/** Increments refcount. */
|
||||
static auto addOwner (ObjectType* t)
|
||||
{
|
||||
return VSTComSmartPtr (t, true);
|
||||
}
|
||||
|
||||
/** Does not initially increment refcount; assumes t has a positive refcount. */
|
||||
static auto becomeOwner (ObjectType* t)
|
||||
{
|
||||
return VSTComSmartPtr (t, false);
|
||||
}
|
||||
|
||||
private:
|
||||
VSTComSmartPtr (ObjectType* object, bool autoAddRef) noexcept
|
||||
: source (object)
|
||||
{
|
||||
if (source != nullptr && autoAddRef)
|
||||
source->addRef();
|
||||
}
|
||||
|
||||
ObjectType* source = nullptr;
|
||||
};
|
||||
|
||||
/** Increments refcount. */
|
||||
template <class ObjectType>
|
||||
auto addVSTComSmartPtrOwner (ObjectType* t)
|
||||
{
|
||||
return VSTComSmartPtr<ObjectType>::addOwner (t);
|
||||
}
|
||||
|
||||
/** Does not initially increment refcount; assumes t has a positive refcount. */
|
||||
template <class ObjectType>
|
||||
auto becomeVSTComSmartPtrOwner (ObjectType* t)
|
||||
{
|
||||
return VSTComSmartPtr<ObjectType>::becomeOwner (t);
|
||||
}
|
||||
|
||||
// NOLINTEND(clang-analyzer-cplusplus.NewDelete)
|
||||
|
||||
JUCE_END_NO_SANITIZE
|
||||
|
|
|
|||
45
modules/juce_core/detail/juce_IncrementRef.h
Normal file
45
modules/juce_core/detail/juce_IncrementRef.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE framework.
|
||||
Copyright (c) Raw Material Software Limited
|
||||
|
||||
JUCE is an open source framework subject to commercial or open source
|
||||
licensing.
|
||||
|
||||
By downloading, installing, or using the JUCE framework, or combining the
|
||||
JUCE framework with any other source code, object code, content or any other
|
||||
copyrightable work, you agree to the terms of the JUCE End User Licence
|
||||
Agreement, and all incorporated terms including the JUCE Privacy Policy and
|
||||
the JUCE Website Terms of Service, as applicable, which will bind you. If you
|
||||
do not agree to the terms of these agreements, we will not license the JUCE
|
||||
framework to you, and you must discontinue the installation or download
|
||||
process and cease use of the JUCE framework.
|
||||
|
||||
JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
|
||||
JUCE Privacy Policy: https://juce.com/juce-privacy-policy
|
||||
JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
|
||||
|
||||
Or:
|
||||
|
||||
You may also use this code under the terms of the AGPLv3:
|
||||
https://www.gnu.org/licenses/agpl-3.0.en.html
|
||||
|
||||
THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
|
||||
WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
|
||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
/** @internal */
|
||||
enum class IncrementRef
|
||||
{
|
||||
no,
|
||||
yes
|
||||
};
|
||||
|
||||
} // namespace juce
|
||||
|
|
@ -375,6 +375,7 @@ JUCE_END_IGNORE_WARNINGS_MSVC
|
|||
|
||||
#include "detail/juce_CallbackListenerList.h"
|
||||
#include "detail/juce_LruCache.h"
|
||||
#include "detail/juce_IncrementRef.h"
|
||||
|
||||
#if JUCE_CORE_INCLUDE_OBJC_HELPERS && (JUCE_MAC || JUCE_IOS)
|
||||
#include "native/juce_CFHelpers_mac.h"
|
||||
|
|
|
|||
|
|
@ -106,9 +106,16 @@ public:
|
|||
ComSmartPtr() noexcept = default;
|
||||
ComSmartPtr (std::nullptr_t) noexcept {}
|
||||
|
||||
ComSmartPtr (ComClass* object, IncrementRef incrementRef) noexcept
|
||||
: p (object)
|
||||
{
|
||||
if (p != nullptr && incrementRef == IncrementRef::yes)
|
||||
p->AddRef();
|
||||
}
|
||||
|
||||
template <typename U>
|
||||
ComSmartPtr (const ComSmartPtr<U>& other) : ComSmartPtr (other, true) {}
|
||||
ComSmartPtr (const ComSmartPtr& other) : ComSmartPtr (other, true) {}
|
||||
ComSmartPtr (const ComSmartPtr<U>& other) : ComSmartPtr (other, IncrementRef::yes) {}
|
||||
ComSmartPtr (const ComSmartPtr& other) : ComSmartPtr (other, IncrementRef::yes) {}
|
||||
|
||||
~ComSmartPtr() noexcept { release(); }
|
||||
|
||||
|
|
@ -162,29 +169,10 @@ public:
|
|||
return destObject;
|
||||
}
|
||||
|
||||
/** Increments refcount. */
|
||||
static auto addOwner (ComClass* t)
|
||||
{
|
||||
return ComSmartPtr (t, true);
|
||||
}
|
||||
|
||||
/** Does not initially increment refcount; assumes t has a positive refcount. */
|
||||
static auto becomeOwner (ComClass* t)
|
||||
{
|
||||
return ComSmartPtr (t, false);
|
||||
}
|
||||
|
||||
private:
|
||||
template <typename U>
|
||||
friend class ComSmartPtr;
|
||||
|
||||
ComSmartPtr (ComClass* object, bool autoAddRef) noexcept
|
||||
: p (object)
|
||||
{
|
||||
if (p != nullptr && autoAddRef)
|
||||
p->AddRef();
|
||||
}
|
||||
|
||||
void release()
|
||||
{
|
||||
if (auto* q = std::exchange (p, nullptr))
|
||||
|
|
@ -196,20 +184,6 @@ private:
|
|||
ComClass* p = nullptr;
|
||||
};
|
||||
|
||||
/** Increments refcount. */
|
||||
template <class ObjectType>
|
||||
auto addComSmartPtrOwner (ObjectType* t)
|
||||
{
|
||||
return ComSmartPtr<ObjectType>::addOwner (t);
|
||||
}
|
||||
|
||||
/** Does not initially increment refcount; assumes t has a positive refcount. */
|
||||
template <class ObjectType>
|
||||
auto becomeComSmartPtrOwner (ObjectType* t)
|
||||
{
|
||||
return ComSmartPtr<ObjectType>::becomeOwner (t);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
template <class First, class... ComClasses>
|
||||
class ComBaseClassHelperBase : public First, public ComClasses...
|
||||
|
|
|
|||
|
|
@ -49,7 +49,20 @@ public:
|
|||
JNI, i.e. for native function callback parameters.
|
||||
*/
|
||||
explicit LocalRef (JavaType o) noexcept
|
||||
: LocalRef (o, false)
|
||||
: LocalRef (o, IncrementRef::no)
|
||||
{}
|
||||
|
||||
/* We cannot delete local references that were not created by JNI, e.g. references that were
|
||||
created by the VM and passed into the native function.
|
||||
|
||||
For these references we should use createNewLocalRef = true, which will create a new
|
||||
local reference that this wrapper is allowed to delete.
|
||||
|
||||
Doing otherwise will result in an "Attempt to remove non-JNI local reference" warning in the
|
||||
VM, which could even cause crashes in future VM implementations.
|
||||
*/
|
||||
LocalRef (JavaType o, IncrementRef incrementRefCount) noexcept
|
||||
: obj (incrementRefCount == IncrementRef::yes ? retain (o) : o)
|
||||
{}
|
||||
|
||||
LocalRef (const LocalRef& other) noexcept : obj (retain (other.obj)) {}
|
||||
|
|
@ -91,59 +104,15 @@ public:
|
|||
return std::exchange (obj, nullptr);
|
||||
}
|
||||
|
||||
/** Creates a new internal local reference. */
|
||||
static auto addOwner (JavaType o)
|
||||
{
|
||||
return LocalRef { o, true };
|
||||
}
|
||||
|
||||
/** Takes ownership of the passed in local reference, and deletes it when the LocalRef goes out
|
||||
of scope.
|
||||
*/
|
||||
static auto becomeOwner (JavaType o)
|
||||
{
|
||||
return LocalRef { o, false };
|
||||
}
|
||||
|
||||
private:
|
||||
static JavaType retain (JavaType obj)
|
||||
{
|
||||
return obj == nullptr ? nullptr : (JavaType) getEnv()->NewLocalRef (obj);
|
||||
}
|
||||
|
||||
/* We cannot delete local references that were not created by JNI, e.g. references that were
|
||||
created by the VM and passed into the native function.
|
||||
|
||||
For these references we should use createNewLocalRef = true, which will create a new
|
||||
local reference that this wrapper is allowed to delete.
|
||||
|
||||
Doing otherwise will result in an "Attempt to remove non-JNI local reference" warning in the
|
||||
VM, which could even cause crashes in future VM implementations.
|
||||
*/
|
||||
LocalRef (JavaType o, bool createNewLocalRef) noexcept
|
||||
: obj (createNewLocalRef ? retain (o) : o)
|
||||
{}
|
||||
|
||||
JavaType obj = nullptr;
|
||||
};
|
||||
|
||||
/* Creates a new local reference that shares ownership with the passed in pointer.
|
||||
|
||||
Can be used for wrapping function parameters that were created outside the JNI.
|
||||
*/
|
||||
template <class JavaType>
|
||||
auto addLocalRefOwner (JavaType t)
|
||||
{
|
||||
return LocalRef<JavaType>::addOwner (t);
|
||||
}
|
||||
|
||||
/* Wraps a local reference and destroys it when it goes out of scope. */
|
||||
template <class JavaType>
|
||||
auto becomeLocalRefOwner (JavaType t)
|
||||
{
|
||||
return LocalRef<JavaType>::becomeOwner (t);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
template <typename JavaType>
|
||||
class GlobalRefImpl
|
||||
|
|
|
|||
|
|
@ -216,8 +216,8 @@ private:
|
|||
explicit OwningLayer (const D2D1_LAYER_PARAMETERS1& p) : params (p) {}
|
||||
|
||||
D2D1_LAYER_PARAMETERS1 params;
|
||||
ComSmartPtr<ID2D1Geometry> geometry = params.geometricMask != nullptr ? addComSmartPtrOwner (params.geometricMask) : nullptr;
|
||||
ComSmartPtr<ID2D1Brush> brush = params.opacityBrush != nullptr ? addComSmartPtrOwner (params.opacityBrush) : nullptr;
|
||||
ComSmartPtr<ID2D1Geometry> geometry { params.geometricMask, IncrementRef::yes };
|
||||
ComSmartPtr<ID2D1Brush> brush { params.opacityBrush, IncrementRef::yes };
|
||||
};
|
||||
|
||||
struct Layer
|
||||
|
|
|
|||
|
|
@ -150,7 +150,8 @@ public:
|
|||
if (FAILED (factory->GetSystemFontFallback (fallback.resetAndGetPointerAddress())) || fallback == nullptr)
|
||||
return {};
|
||||
|
||||
auto analysisSource = becomeComSmartPtrOwner (new AnalysisSource (c, language));
|
||||
ComSmartPtr analysisSource { new AnalysisSource (c, language), IncrementRef::no };
|
||||
|
||||
const auto originalName = getLocalisedFamilyName (*dwFont);
|
||||
|
||||
const auto mapped = factories->getFonts().mapCharacters (fallback,
|
||||
|
|
|
|||
|
|
@ -1067,7 +1067,8 @@ DirectWriteCustomFontCollectionLoader::~DirectWriteCustomFontCollectionLoader()
|
|||
|
||||
Uuid DirectWriteCustomFontCollectionLoader::addRawFontData (Span<const std::byte> blob)
|
||||
{
|
||||
const auto loader = becomeComSmartPtrOwner (new MemoryFontFileLoader { { blob.data(), blob.size() } });
|
||||
ComSmartPtr loader { new MemoryFontFileLoader { { blob.data(), blob.size() } },
|
||||
IncrementRef::no };
|
||||
|
||||
factory.RegisterFontFileLoader (loader);
|
||||
|
||||
|
|
@ -1148,7 +1149,9 @@ Direct2DFactories::Direct2DFactories()
|
|||
}) },
|
||||
collectionLoader { std::invoke ([&]() -> ComSmartPtr<DirectWriteCustomFontCollectionLoader>
|
||||
{
|
||||
auto result = becomeComSmartPtrOwner (new DirectWriteCustomFontCollectionLoader { *directWriteFactory });
|
||||
ComSmartPtr result { new DirectWriteCustomFontCollectionLoader { *directWriteFactory },
|
||||
IncrementRef::no };
|
||||
|
||||
directWriteFactory->RegisterFontCollectionLoader (result);
|
||||
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ class AccessibilityHandler::AccessibilityNativeImpl
|
|||
{
|
||||
public:
|
||||
explicit AccessibilityNativeImpl (AccessibilityHandler& owner)
|
||||
: accessibilityElement (becomeComSmartPtrOwner (new AccessibilityNativeHandle (owner)))
|
||||
: accessibilityElement (new AccessibilityNativeHandle (owner), IncrementRef::no)
|
||||
{
|
||||
++providerCount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class UIAProviderBase
|
|||
{
|
||||
public:
|
||||
explicit UIAProviderBase (AccessibilityNativeHandle* nativeHandleIn)
|
||||
: nativeHandle (addComSmartPtrOwner (nativeHandleIn))
|
||||
: nativeHandle (nativeHandleIn, IncrementRef::yes)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ private:
|
|||
public:
|
||||
UIATextRangeProvider (UIATextProvider& textProvider, Range<int> range)
|
||||
: UIAProviderBase (textProvider.getHandler().getNativeImplementation()),
|
||||
owner (addComSmartPtrOwner (&textProvider)),
|
||||
owner (&textProvider, IncrementRef::yes),
|
||||
selectionRange (range)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -357,8 +357,8 @@ public:
|
|||
|
||||
static jobjectArray JNICALL contentSharerGetStreamTypes (JNIEnv*, jobject /*contentProvider*/, jobject uri, jstring mimeTypeFilter)
|
||||
{
|
||||
return getInstance().getStreamTypes (addLocalRefOwner (uri),
|
||||
addLocalRefOwner (mimeTypeFilter));
|
||||
return getInstance().getStreamTypes (LocalRef (uri, IncrementRef::yes),
|
||||
LocalRef (mimeTypeFilter, IncrementRef::yes));
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ private:
|
|||
{
|
||||
HWND hwnd = nullptr;
|
||||
|
||||
if (auto window = addComSmartPtrOwner (d).getInterface<IOleWindow>())
|
||||
if (auto window = ComSmartPtr (d, IncrementRef::yes).getInterface<IOleWindow>())
|
||||
window->GetWindow (&hwnd);
|
||||
|
||||
ScopedLock lock (owner.deletingDialog);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,6 @@ namespace ActiveXHelpers
|
|||
JUCE_COMRESULT GetBorder (LPRECT) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT RequestBorderSpace (LPCBORDERWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetBorderSpace (LPCBORDERWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetActiveObject (IOleInPlaceActiveObject* a, LPCOLESTR) override { activeObject = addComSmartPtrOwner (a); return S_OK; }
|
||||
JUCE_COMRESULT InsertMenus (HMENU, LPOLEMENUGROUPWIDTHS) override { return E_NOTIMPL; }
|
||||
JUCE_COMRESULT SetMenu (HMENU, HOLEMENU, HWND) override { return S_OK; }
|
||||
JUCE_COMRESULT RemoveMenus (HMENU) override { return E_NOTIMPL; }
|
||||
|
|
@ -83,6 +82,12 @@ namespace ActiveXHelpers
|
|||
JUCE_COMRESULT EnableModeless (BOOL) override { return S_OK; }
|
||||
JUCE_COMRESULT TranslateAccelerator (LPMSG, WORD) override { return E_NOTIMPL; }
|
||||
|
||||
JUCE_COMRESULT SetActiveObject (IOleInPlaceActiveObject* a, LPCOLESTR) override
|
||||
{
|
||||
activeObject = ComSmartPtr (a, IncrementRef::yes);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT OfferKeyTranslation (LPMSG lpmsg)
|
||||
{
|
||||
if (activeObject != nullptr)
|
||||
|
|
|
|||
|
|
@ -671,7 +671,7 @@ public:
|
|||
Callback<ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler> (
|
||||
[&result] (HRESULT, ICoreWebView2Environment* env) -> HRESULT
|
||||
{
|
||||
result.environment = addComSmartPtrOwner (env);
|
||||
result.environment = ComSmartPtr (env, IncrementRef::yes);
|
||||
return S_OK;
|
||||
}).Get());
|
||||
|
||||
|
|
@ -857,8 +857,10 @@ private:
|
|||
{
|
||||
method = "POST";
|
||||
|
||||
auto content = becomeComSmartPtrOwner (SHCreateMemStream ((BYTE*) urlRequest.postData.getData(),
|
||||
(UINT) urlRequest.postData.getSize()));
|
||||
auto content = ComSmartPtr (SHCreateMemStream ((BYTE*) urlRequest.postData.getData(),
|
||||
(UINT) urlRequest.postData.getSize()),
|
||||
IncrementRef::no);
|
||||
|
||||
request->put_Content (content);
|
||||
}
|
||||
|
||||
|
|
@ -884,8 +886,9 @@ private:
|
|||
{
|
||||
if (auto responseData = owner.impl->handleResourceRequest (resourceRequestUri))
|
||||
{
|
||||
auto stream = becomeComSmartPtrOwner (SHCreateMemStream ((BYTE*) responseData->data.data(),
|
||||
(UINT) responseData->data.size()));
|
||||
ComSmartPtr stream { SHCreateMemStream ((BYTE*) responseData->data.data(),
|
||||
(UINT) responseData->data.size()),
|
||||
IncrementRef::no };
|
||||
|
||||
StringArray headers { "Content-Type: " + responseData->mimeType };
|
||||
|
||||
|
|
@ -1063,7 +1066,7 @@ private:
|
|||
|
||||
if (controller != nullptr)
|
||||
{
|
||||
weakThis->webViewController = addComSmartPtrOwner (controller);
|
||||
weakThis->webViewController = ComSmartPtr (controller, IncrementRef::yes);
|
||||
controller->get_CoreWebView2 (weakThis->webView.resetAndGetPointerAddress());
|
||||
|
||||
auto allUserScripts = weakThis->userScripts;
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ struct CameraDevice::Pimpl : public ChangeBroadcaster
|
|||
sampleGrabber->SetMediaType (&mt);
|
||||
}
|
||||
|
||||
callback = becomeComSmartPtrOwner (new GrabberCallback (*this));
|
||||
callback = ComSmartPtr (new GrabberCallback (*this), IncrementRef::no);
|
||||
hr = sampleGrabber->SetCallback (callback, 1);
|
||||
|
||||
hr = graphBuilder->AddFilter (sampleGrabberBase, _T ("Sample Grabber"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue