/*
     Description: 共用的一些宏定义，全局变量等

     Copyright : All right reserved by ICT

     Author : Zhang Zhonghai
     Date : 2026/01/01
*/

#pragma once

#include "bqsr_args.h"
#include <htslib/sam.h>
#include "aux_arg.h"
#include "fastbqsr_version.h"

#define BAM_BLOCK_SIZE 16L * 1024 * 1024  // 16M
#define BAM_READ_MAX_THREAD 8
#define BAM_WRITE_MAX_THREAD 16

#define PROGRAM_NAME "FastBQSR"

namespace nsgv {

// 全局变量 for bqsr
extern BQSRArg gBqsrArg;         // bqsr arguments
extern samFile* gInBamFp;        // input BAM file pointer
extern sam_hdr_t* gInBamHeader;  // input BAM header
extern vector<AuxVar> gAuxVars;  // auxiliary variables，保存一些文件，数据等，每个线程对应一个
};  // namespace nsgv
