@@ -104,26 +104,14 @@ namespace s3d
104
104
}
105
105
106
106
template <class T >
107
- std::future<T> s3dOpenDialog (const Array<FileFilter>& filters)
107
+ std::future<T> s3dOpenDialog (const Array<FileFilter>& filters, s3dOpenDialogCallback<T> callback = &OnOpenFileDialogClosed<T> )
108
108
{
109
109
const auto filter = TransformFileFilters (filters);
110
110
111
111
auto result = new std::promise<T>();
112
112
auto result_future = result->get_future ();
113
113
114
- s3dOpenDialogImpl<T>(filter.narrow ().c_str (), &OnOpenFileDialogClosed<T>, result);
115
-
116
- return result_future;
117
- }
118
-
119
- std::future<Audio> s3dOpenAudio (const Array<FileFilter>& filters)
120
- {
121
- const auto filter = TransformFileFilters (filters);
122
-
123
- auto result = new std::promise<Audio>();
124
- auto result_future = result->get_future ();
125
-
126
- s3dOpenDialogImpl<Audio>(filter.narrow ().c_str (), &OnOpenAudioDialogClosed, result);
114
+ s3dOpenDialogImpl<T>(filter.narrow ().c_str (), callback, result);
127
115
128
116
return result_future;
129
117
}
@@ -158,12 +146,12 @@ namespace s3d
158
146
159
147
std::future<Audio> OpenAudio (const FilePath& defaultPath, const String& title)
160
148
{
161
- return detail::s3dOpenAudio ({ FileFilter::AllAudioFiles () });
149
+ return detail::s3dOpenDialog<Audio> ({ FileFilter::AllAudioFiles () }, &detail::OnOpenAudioDialogClosed );
162
150
}
163
151
164
152
std::future<Audio> OpenAudio (const Arg::loop_<bool > loop, const FilePath& defaultPath, const String& title)
165
153
{
166
- return detail::s3dOpenAudio ({ FileFilter::AllAudioFiles () });
154
+ return detail::s3dOpenDialog<Audio> ({ FileFilter::AllAudioFiles () }, &detail::OnOpenAudioDialogClosed );
167
155
}
168
156
}
169
157
}
0 commit comments