beginner – "multiple definition of" error

I am new to this forum, so please be kind. Recently I have been working on my first game in C (it is also my first programming language). I finished a course years ago and found a wonderful library called SDL2. It is ideal for graphics and all types. I've also been looking at other people's code and I've been learning from that too.

Anyway, my mistake is this "multiple definition of: function name"I think it's a classic mistake since some people have also experienced it. It seems to have problems with all the functions in" pong_function.c ", I'm also using the code block IDE if someone asks. But enough chit- chat I will post the code:

In my pong.c file:

#include "pong.h"

int main( int argc, char** argv ) {

    auto unsigned int col = 0x00;

    paddle(0).x = 575 ;
    paddle(0).y = 210 ;
    paddle(0).hit = false ;

    paddle(1).x = 0 ;
    paddle(1).y = 205 ;
    paddle(1).hit = false ;

    ball.x = WIDTH / 2 ;
    ball.y = HEIGHT / 2 ;
    ball.speedX = 3;
    ball.speedY = 0;
    ball.direction = 2 ;
    int n ;

    init( ) ;
    SDL_Window *window = SDL_CreateWindow( "Pong", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, FLAG ) ;
    SDL_Renderer *renderer = SDL_CreateRenderer( window, -1, SDL_RENDERER_ACCELERATED ) ;

    load_files( renderer );
    get_text( surface, renderer );

    bool running = true;
    while( running ) {
        SDL_Event e;
        while( SDL_PollEvent( &e ) ) {
            switch( e.type ) {
                case SDL_QUIT :
                    running = false;
                    break ;
                switch( e.key.keysym.sym ) {
                    case SDL_KEYDOWN:
                        case SDLK_ESCAPE :
                            running = false ;
                        break;
                }

                default:
                    running = true;
            }
        }

        input( );
        update( );
        draw_screen( renderer ) ;
    }

    surface = NULL; // Just in case
    delete_items( window, renderer ) ;
    return 0;
}

In my pong.h file:

#ifndef pong_h_
#define pong_h_

#include 
#include 
#include 
#include 
#include 
#include 
#include 

typedef struct {
    float x ;
    float y ;
    bool hit ;
} Paddle_t ;

typedef struct {
    float x, speedX ;
    float y , speedY ;
    short direction ;
} Ball_t ;

const int WIDTH = 640 ;
const int HEIGHT = 480 ;
const int FLAG = 0 ;
extern unsigned int col ;
int tWidth = 0, tHeight = 0, tX = 0, tY = 0;
SDL_Texture *f_text = NULL ;
SDL_Texture *p_text = NULL ;
SDL_Texture *b_text = NULL ;
SDL_Surface *surface ;
TTF_Font *test;
Paddle_t paddle( 2 );
Ball_t ball;

extern void draw_screen( SDL_Renderer *renderer ) ;
extern void update( void ) ;
extern void load_files( SDL_Renderer *renderer ) ;
extern void input( void ) ;
extern void init( void ) ;
extern void get_text( SDL_Surface *surface, SDL_Renderer *renderer ) ;
extern void delete_items( SDL_Window *win, SDL_Renderer* renderer ) ;

#endif // pong_h_

Finally, in my pong_func.c file:

#include "pong.h"
void draw_screen( SDL_Renderer *renderer ) {
        // Clear screen to black colour
        SDL_SetRenderDrawColor( renderer, col, col, col, col );
        SDL_RenderClear( renderer ) ;

        // Paddle (player 1)
        SDL_Rect src = { 0, 0, 32*2, 32*2 } ;
        SDL_Rect dRect = { paddle( 0 ).x, paddle( 0 ).y, 32*2, 32*2 } ;
        SDL_RenderCopy( renderer, p_text, &src, &dRect ) ;

        // Paddle (player 2)
        SDL_Rect src2 = { 0, 0, 32*2, 32*2 } ;
        SDL_Rect dRect2 = { paddle( 1 ).x, paddle( 1 ).y, 32*2, 32*2 } ;
        SDL_RenderCopy( renderer, p_text, &src2, &dRect2 ) ;

        // Ball
        SDL_Rect bRect = { 0, 0, 32, 32 } ;
        SDL_Rect bRect2 = { ball.x, ball.y, 32, 32 } ;
        SDL_RenderCopy( renderer, b_text, &bRect, &bRect2 ) ;

        // Font
        SDL_Rect dstRect = { tX, tY, tWidth, tHeight } ;
        SDL_RenderCopy( renderer, f_text, NULL, &dstRect ) ;

        SDL_RenderPresent( renderer ) ;
}

void update( void ) {
    // Nothing yet...
}

void load_files( SDL_Renderer *renderer ) {
    if( ( surface = IMG_Load( "paddle.png" ) ) == NULL ) {
        fprintf( stderr, "Unable to load filen" ) ;
        exit(-1);
    }
    p_text = SDL_CreateTextureFromSurface( renderer, surface ) ;

    if( ( surface = IMG_Load( "ball.png" ) ) == NULL ) {
        fprintf( stderr, "Unable to load filen" ) ;
        exit( -1 ) ;
    }
    b_text = SDL_CreateTextureFromSurface( renderer, surface ) ;
}

void input( void ) {
    // Input
    const Uint8 *state = SDL_GetKeyboardState( NULL ) ;
    if( state(SDL_SCANCODE_A) ) paddle( 0 ).y++;
    if( state(SDL_SCANCODE_D) ) paddle( 0 ).y--;

    if( state(SDL_SCANCODE_LEFT) ) paddle( 1 ).y++;
    if( state(SDL_SCANCODE_RIGHT) ) paddle( 1 ).y--;
}

void init( void ) {
    // Init random
    srand( time( NULL ) ) ;

    // Init TTF
    TTF_Init( ) ;

    // Init PNG
    IMG_Init( IMG_INIT_PNG ) ;

    // Init SDL
    if( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
        fprintf( stderr, "Unable to initialise SDL: %s", SDL_GetError() );
        exit( -1 ) ;
    }
}

void get_text( SDL_Surface *surface, SDL_Renderer *renderer ) {
    const char *string = "Welcome to pong!" ;
    SDL_Color clr = { 255, 255, 255 } ;
    test = TTF_OpenFont( "slkscr.ttf", 25 ) ;
    surface = TTF_RenderText_Solid(test, string, clr);
    f_text = SDL_CreateTextureFromSurface(renderer, surface);
    SDL_QueryTexture( f_text, NULL, NULL, &tWidth, &tHeight ) ;
}

void delete_items( SDL_Window *win, SDL_Renderer* renderer ) {
    // Delete items
    SDL_DestroyTexture( f_text ) ;
    SDL_DestroyTexture( b_text ) ;
    SDL_DestroyTexture( p_text ) ;
    TTF_CloseFont( test ) ;

    SDL_FreeSurface( surface ) ;
    SDL_DestroyWindow( win ) ;
    SDL_DestroyRenderer( renderer ) ;

    SDL_Quit( );
    IMG_Quit( );
    TTF_Quit( );
}
```

evf – How do I activate the "Multiple Mode Viewer" settings on Fujifilm X-T1?

The Fujifilm website documents an "Advanced feature" that it calls "Multimode Viewer." This allows you to use several viewer modes called "Full", "Normal", "Vertical" and "Dual".

Dual is particularly interesting:

In the "DUAL" mode of the viewfinder, you can enjoy a view of the subject different from everything seen through the traditional optical viewfinder. In Manual Focus, Dual intelligently displays a split screen that allows you to see a regular view of the scene, as well as the Focus Assist view (Maximum Focus and Digital Split Image Focus) at the same time, so the focus is easy and precise.

Dual mode

After having tracked forums and other sites on the Internet, I could not find how to activate this configuration. Going through all the various menus of the camera has also brought nothing to light.

Does anyone know how to turn it on?