summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/cross.cc43
-rw-r--r--src/lib/cross.h3
-rw-r--r--src/lib/film.cc1
-rw-r--r--src/lib/util.cc26
-rw-r--r--src/lib/util.h1
5 files changed, 47 insertions, 27 deletions
diff --git a/src/lib/cross.cc b/src/lib/cross.cc
index 2c66ab53a..1f1be907f 100644
--- a/src/lib/cross.cc
+++ b/src/lib/cross.cc
@@ -24,6 +24,12 @@
#ifdef DVDOMATIC_WINDOWS
#include "windows.h"
#endif
+#ifdef DVDOMATIC_OSX
+#include <sys/sysctl.h>
+#endif
+
+using std::pair;
+using std::string;
void
dvdomatic_sleep (int s)
@@ -35,3 +41,40 @@ dvdomatic_sleep (int s)
Sleep (s * 1000);
#endif
}
+
+/** @return A pair containing CPU model name and the number of processors */
+pair<string, int>
+cpu_info ()
+{
+ pair<string, int> info;
+ info.second = 0;
+
+#ifdef DVDOMATIC_LINUX
+ ifstream f (N_("/proc/cpuinfo"));
+ while (f.good ()) {
+ string l;
+ getline (f, l);
+ if (boost::algorithm::starts_with (l, N_("model name"))) {
+ string::size_type const c = l.find (':');
+ if (c != string::npos) {
+ info.first = l.substr (c + 2);
+ }
+ } else if (boost::algorithm::starts_with (l, N_("processor"))) {
+ ++info.second;
+ }
+ }
+#endif
+
+#ifdef DVDOMATIC_OSX
+ size_t N = sizeof (info.second);
+ sysctlbyname ("hw.ncpu", &info.second, &N, 0, 0);
+ char buffer[64];
+ N = sizeof (buffer);
+ if (sysctlbyname ("machdep.cpu.brand_string", buffer, &N, 0, 0) == 0) {
+ info.first = buffer;
+ }
+#endif
+
+ return info;
+}
+
diff --git a/src/lib/cross.h b/src/lib/cross.h
index 110660b16..970bf3e9d 100644
--- a/src/lib/cross.h
+++ b/src/lib/cross.h
@@ -17,8 +17,11 @@
*/
+#include <string>
+
#ifdef DVDOMATIC_WINDOWS
#define WEXITSTATUS(w) (w)
#endif
void dvdomatic_sleep (int);
+extern std::pair<std::string, int> cpu_info ();
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 5573ee9d2..8aedd7639 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -52,6 +52,7 @@
#include "audio_decoder.h"
#include "sndfile_decoder.h"
#include "analyse_audio_job.h"
+#include "cross.h"
#include "i18n.h"
diff --git a/src/lib/util.cc b/src/lib/util.cc
index b8b60c6f6..4cf57368a 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -942,32 +942,6 @@ still_image_file (string f)
return (ext == N_(".tif") || ext == N_(".tiff") || ext == N_(".jpg") || ext == N_(".jpeg") || ext == N_(".png") || ext == N_(".bmp"));
}
-/** @return A pair containing CPU model name and the number of processors */
-pair<string, int>
-cpu_info ()
-{
- pair<string, int> info;
- info.second = 0;
-
-#ifdef DVDOMATIC_POSIX
- ifstream f (N_("/proc/cpuinfo"));
- while (f.good ()) {
- string l;
- getline (f, l);
- if (boost::algorithm::starts_with (l, N_("model name"))) {
- string::size_type const c = l.find (':');
- if (c != string::npos) {
- info.first = l.substr (c + 2);
- }
- } else if (boost::algorithm::starts_with (l, N_("processor"))) {
- ++info.second;
- }
- }
-#endif
-
- return info;
-}
-
string
audio_channel_name (int c)
{
diff --git a/src/lib/util.h b/src/lib/util.h
index 3e1d7f4b4..0d745e50c 100644
--- a/src/lib/util.h
+++ b/src/lib/util.h
@@ -299,7 +299,6 @@ private:
extern int64_t video_frames_to_audio_frames (SourceFrame v, float audio_sample_rate, float frames_per_second);
extern bool still_image_file (std::string);
-extern std::pair<std::string, int> cpu_info ();
class LocaleGuard
{