aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/index.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcrystfel/src/index.c')
-rw-r--r--libcrystfel/src/index.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libcrystfel/src/index.c b/libcrystfel/src/index.c
index eee2e814..20e7cf24 100644
--- a/libcrystfel/src/index.c
+++ b/libcrystfel/src/index.c
@@ -11,6 +11,7 @@
* 2010-2013 Thomas White <taw@physics.org>
* 2010-2011 Richard Kirian <rkirian@asu.edu>
* 2012 Lorenzo Galli
+ * 2013 Cornelius Gati <cornelius.gati@cfel.de>
*
* This file is part of CrystFEL.
*
@@ -44,6 +45,7 @@
#include "peaks.h"
#include "dirax.h"
#include "mosflm.h"
+#include "xds.h"
#include "detector.h"
#include "index.h"
#include "index-priv.h"
@@ -84,6 +86,11 @@ IndexingPrivate **prepare_indexing(IndexingMethod *indm, UnitCell *cell,
iprivs[n] = mosflm_prepare(&indm[n], cell, filename,
det, beam, ltl);
break;
+
+ case INDEXING_XDS :
+ iprivs[n] = indexing_private(indm[n]);
+ break;
+
case INDEXING_REAX :
iprivs[n] = reax_prepare(&indm[n], cell, filename,
det, beam, ltl);
@@ -153,6 +160,10 @@ void cleanup_indexing(IndexingMethod *indms, IndexingPrivate **privs)
mosflm_cleanup(privs[n]);
break;
+ case INDEXING_XDS :
+ free(priv[n]);
+ break;
+
case INDEXING_REAX :
reax_cleanup(privs[n]);
break;
@@ -213,6 +224,10 @@ static int try_indexer(struct image *image, IndexingMethod indm,
return run_mosflm(image, ipriv);
break;
+ case INDEXING_XDS :
+ run_XDS(image, cell);
+ break;
+
case INDEXING_REAX :
return reax_index(image, ipriv);
break;
@@ -385,6 +400,9 @@ IndexingMethod *build_indexer_list(const char *str)
} else if ( strcmp(methods[i], "grainspotter") == 0) {
list[++nmeth] = INDEXING_DEFAULTS_GRAINSPOTTER;
+ } else if ( strcmp(methods[i], "xds") == 0) {
+ list[i] = INDEXING_XDS;
+
} else if ( strcmp(methods[i], "reax") == 0) {
list[++nmeth] = INDEXING_DEFAULTS_REAX;