You are previewing Getting Started With JUCE.
O'Reilly logo
Getting Started With JUCE

Book Description

With a basic grasp of C++ and this tutorial, you can quickly and easily start developing cross-platform GUI applications using the JUCE framework. The book takes a totally practical approach to its subject with examples and illustrations.

  • Begin developing user interfaces in code or with a graphical editor

  • Build and run the Introjucer tool

  • Create a JUCE project with the Introjucer tool

  • In Detail

    There are a number of frameworks available for developing cross-platform applications. JUCE achieves this with a combination of consistency, ease-of-use, and breadth of functionality. JUCE is a C++ toolkit for building cross-platform applications on PC, Mac, Linux, iOS, and Android. It encourages you to write consistent code and is particularly good for complex, customized GUIs and audio/midi processing; it also includes a vast range of classes to help with all your day-to-day programming tasks.

    Getting Started with JUCE is a practical, hands-on guide to developing applications using JUCE which will help you get started with many of the core aspects of the JUCE library. The book guides you through the installation of JUCE and covers the structure of the source code tree including some of the useful tools available for creating JUCE projects.

    Getting Started with JUCE will guide you through how to use the JUCE library, from the installation of basic tools to developing examples using many of its classes. It will take you through a series of practical examples that show you how to create user interfaces, illustrating the key features.

    You will also learn how to deal with files, text strings, and other fundamental data using the JUCE library. In particular, you will learn how to create user interfaces both using code and using the Introjucer tool to layout and configure user interface functionality. You will also manipulate image and audio data and learn how to read and write common media file formats. With this book, you will learn everything you need to know to understand some of the additional helpful utilities offered by JUCE and how to use the JUCE documentation to get started with such classes.

    Table of Contents

    1. Getting Started With JUCE
      1. Table of Contents
      2. Getting Started With JUCE
      3. Credits
      4. About the Author
      5. About the Reviewers
        1. Support files, eBooks, discount offers, and more
          1. Why Subscribe?
          2. Free Access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Installing JUCE and the Introjucer Application
        1. Installing JUCE for Mac OS X and Windows
        2. Building and running the JUCE Demo application
          1. Running the JUCE Demo application on Windows
          2. Running the JUCE Demo application on Mac OS X
          3. The JUCE Demo application overview
          4. Customizing the look and feel
        3. Building and running the Introjucer application
          1. Building the Introjucer application on Windows
          2. Building the Introjucer application on Mac OS X
          3. Examining the JUCE Demo Introjucer project
        4. Creating a JUCE project with the Introjucer application
        5. Documentation and other examples
        6. Summary
      9. 2. Building User Interfaces
        1. Creating buttons, sliders, and other components
          1. Adding child components
        2. Responding to user interaction and changes
          1. Broadcasters and listeners
          2. Filtering data entry
        3. Using other component types
        4. Specifying colors
          1. Component color IDs
          2. Setting colors using the LookAndFeel class
        5. Using drawing operations
          1. Intercepting mouse activity
        6. Configuring complex component arrangements
          1. Other component types
        7. Summary
      10. 3. Essential Data Structures
        1. Understanding the numerical types
        2. Specifying and manipulating text strings
          1. Posting log messages to the console
          2. String manipulation
        3. Measuring and displaying time
          1. Displaying and formatting time information
          2. Manipulating time data
          3. Measuring time
          4. Specifying file paths
          5. Accessing various special directory locations
          6. Obtaining various information about files
          7. Other special locations
          8. Navigating directory structures
        4. Using dynamically allocated arrays
          1. Finding the files in a directory
          2. Tokenizing strings
          3. Arrays of components
          4. Using the OwnedArray class
          5. Other banks of controls
        5. Employing smart pointer classes
        6. Summary
      11. 4. Using Media Files
        1. Using simple input and output streams
          1. Reading and writing text files
          2. Reading and writing binary files
        2. Reading and writing image files
          1. Manipulating image data
        3. Playing audio files
          1. Creating a GUI to control audio file play
          2. Adding audio file playback support
        4. Working with the Binary Builder tool
          1. Embedding an image file using the Introjucer application
        5. Summary
      12. 5. Helpful Utilities
        1. Using the dynamically typed objects
          1. Using the Value class
          2. Structuring hierarchical data
        2. Employing undo management
        3. Adding XML support
        4. Understanding how JUCE handles multiple threads
        5. Storing application properties
        6. Adding menu bar controls
        7. Summary
      13. Index