  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 ~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 $\mu |0 \rangle + \nu |1\rangle$ in
arbitrary wave-packets, making them very attractive for quantum communication
applications.
