We propose two different setups to generate single photons on demand using an atom in front of a mirror, along with either a beam splitter or a tunable coupling. We show that photon-generation efficiency of ∼99% is straightforward to achieve. The proposed schemes are simple and easily tunable in frequency. The operation is relatively insensitive to dephasing and can be easily extended to generate correlated pairs of photons. They can also, in principle, be used to generate any photonic qubit of the form μ0+ν1 in arbitrary wave packets, making them very attractive for quantum communication applications.